[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
AW: [avr-gcc-list] inline asm
From: |
Peter Hierholzer |
Subject: |
AW: [avr-gcc-list] inline asm |
Date: |
Fri, 28 May 2004 20:56:01 +0200 |
Hi Muhammed,
There are 2 chapters ("avr-libc and assembler programs" and "Inline Asm")
the avr-libc documentation
There is also a cookbook in the net. Look in google for "avr inline
assembler cookbook"
mfg
Peter
> -----Ursprüngliche Nachricht-----
> Von: address@hidden [mailto:address@hidden
> Im Auftrag von Muhammed
> Gesendet: Donnerstag, 27. Mai 2004 11:55
> An: address@hidden
> Betreff: [avr-gcc-list] inline asm
>
> How can I convert this code into inline assembly compatible with AVR-gcc
> compiler. Is there a tool for that? Or a manual? Thanks in advance,
>
> Here is my AVR assembler code:
> START: ldi r16, 0x12
> ldi r17, 0x52
> ldi r18, 0xF3
> ldi r19, 0xFF
> ldi r20, 0xA7
> ldi r21, 0x5B
> ldi r22, 0x13
> ldi r23, 0xC9
>
> Add32: add a0,b0 ;Add low bytes
> mov tmp0,a0
> adc a1,b1 ;Add higher bytes with carry
> mov tmp1,a1
> adc a2,b2 ;
> mov tmp2,a2
> adc a3,b3
> mov tmp3,a3 ;
> ldi r16, 0x73
> ldi r17, 0xD8
> ldi r18, 0x49
> ldi r19, 0xE4
> ldi r20, 0xFF
> ldi r21, 0x91
> ldi r22, 0x5A
> ldi r23, 0x73
>
> add a0, b0
> adc a1, b1
> adc a2, b2
> adc a3, b3
> mov b0, tmp0
> mov b1, tmp1
> mov b2, tmp2
> mov b3, tmp3
>
> Mul32: clr res7 ;clear 4 highest bytes of result
> clr res6 ;
> clr res5 ;
> sub res4,res4 ;and carry
> ldi counter,33 ;init loop counter
>
> m32u_loop: ror res3 ;rotate result and multiplier
> ror res2 ;
> ror res1 ;
> ror res0 ;
> dec counter ;decrement loop counter
> breq Return32u ;if counter zero return
> brcc m32u_skip ;if bit 0 of multiplier set
> add res4, b0 ;add multiplicand to result
> adc res5, b1 ;
> adc res6, b2 ;
> adc res7, b3 ;
> m32u_skip: ror res7 ;shift right result byte 7
> ror res6 ;rotate right result
> ror res5 ;
> ror res4 ;
> rjmp m32u_loop ;
> Return32u: ret
>
> .EXIT
>
> _______________________________________________
> avr-gcc-list mailing list
> address@hidden
> http://www.avr1.org/mailman/listinfo/avr-gcc-list