Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: [AVR-Chat] Back to basics - math questions

2004-08-30 by James Wagner

There are several Atmel app notes on multi-byte math. I
think there are examples in both assy and C.

Jim

On Mon, 30 Aug 2004 12:31:12 -0300
 "Mark Jordan" <mark@cpovo.net> wrote:
> 
> 
> 
> 
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I'm dealing with
> two-complement math using 16bit registers.
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Please take a look at my
> routines and tell me if I'm doing
> anything wrong or if there is a better way of doing it:
> 
> ---------
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Adding two signed numbers
> is:
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numl, fatl
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> adc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numh, fath
> 
> ---------
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For subtracting two signed
> numbers I'm using this:
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> sub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numl, fatl
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> sbc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numh, fath
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Maybe I should use this
> instead (I guess the result is the same):
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fatl
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fath
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> adiw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fatl, $01
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numl, fatl
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> adc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numh, fath
> 
> ---------
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For 16x16bit signed
> multiply&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> clr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> muls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auxh,
> genh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; (signed)S1h *
> (signed)S0h
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> movw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matl, prdl
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> mul&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auxl,
> genl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; S1l * S0l
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inth, prdh
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> mulsu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; genh,
> auxl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; (signed)S0h * S1l
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> sbc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; math,
> zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; Sign extend
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inth, prdl
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> adc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matl, prdh
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> adc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; math, zero
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> mulsu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auxh,
> genl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; (signed)S1h * S0l
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> sbc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; math,
> zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; Sign extend
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inth, prdl
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> adc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matl, prdh
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> adc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; math,
> zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; Result here
> 
> ---------
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thanks,
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mark Jordan
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Yahoo! Groups Sponsor
> 
> 
>   ADVERTISEMENT 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Yahoo! Groups Links
> 
> To visit your group on the web, go
> to:http://groups.yahoo.com/group/AVR-Chat/&nbsp;
> To unsubscribe from this group, send an email
> to:AVR-Chat-unsubscribe@yahoogroups.com&nbsp;
> Your use of Yahoo! Groups is subject to the Yahoo! Terms
> of Service.
> 
> 
> 
> 
> 
> 
> 
> 
> 

---------------------------------------------------------------
The Think Different Store
http://www.thinkdifferentstore.com/
For All Your Mac Gear
---------------------------------------------------------------

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.