[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-gcc-list] inline asm
From: |
Muhammed |
Subject: |
[avr-gcc-list] inline asm |
Date: |
Thu, 27 May 2004 12:55:18 +0300 |
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] inline asm,
Muhammed <=