Code:
.global flash
.section .progmem.data,"a",@progbits
.size flash, 70
flash:
.skip 70,0
/*************************************************/
.text
.global foo
foo:
ldi r25,lo8(7) ; tmp48,
mul r24,r25 ; num, tmp48
movw r30,r0 ; tmp54
clr r1
ldi r26,lo8(sram) ; tmp53,
ldi r27,hi8(sram) ; tmp53,
subi r30,lo8(-(flash)) ; tmp54,
sbci r31,hi8(-(flash)) ; tmp54,
ldi r25,lo8(6) ; i,
.L161:
lpm r24, Z ; __result
st X+,r24 ; sram, __result
subi r25,lo8(-(-1)) ; i,
adiw r30,1 ; tmp54,
sbrs r25,7 ; i,
rjmp .L161 ;
ret
/*************************************************/
.global foo2
foo2:
ldi r25,lo8(7) ; tmp45,
mul r24,r25 ; num, tmp45
movw r30,r0 ; addr
clr r1
subi r30,lo8(-(flash)) ; addr,
sbci r31,hi8(-(flash)) ; addr,
ldi r26,lo8(sram) ; tmp51,
ldi r27,hi8(sram) ; tmp51,
ldi r25,lo8(6) ; i,
.L168:
lpm r24, Z+ ; __result
st X+,r24 ; sram, __result
subi r25,lo8(-(-1)) ; i,
sbrs r25,7 ; i,
rjmp .L168 ;
ret
/*************************************************/
.global foo3
foo3:
ldi r25,lo8(7) ; tmp45,
mul r24,r25 ; num, tmp45
movw r30,r0 ; addr
clr r1
subi r30,lo8(-(flash)) ; addr,
sbci r31,hi8(-(flash)) ; addr,
lpm r24, Z+ ; __result
sts sram,r24 ; sram, __result
lpm r24, Z+ ; __result
sts sram+1,r24 ; sram, __result
lpm r24, Z+ ; __result
sts sram+2,r24 ; sram, __result
lpm r24, Z+ ; __result
sts sram+3,r24 ; sram, __result
lpm r24, Z+ ; __result
sts sram+4,r24 ; sram, __result
lpm r24, Z+ ; __result
sts sram+5,r24 ; sram, __result
lpm r24, Z+ ; __result
sts sram+6,r24 ; sram, __result
ret
/*************************************************/
sram:
.skip 7,0
Lesezeichen