Вот кусок листинга:
- Код: Выделить всё
a(z1);
da: 60 91 64 00 lds r22, 0x0064
de: ce 01 movw r24, r28
e0: 45 96 adiw r24, 0x15 ; 21
e2: 70 e0 ldi r23, 0x00 ; 0
e4: bc df rcall .-136 ; 0x5e <a>
z32+=z1;
e6: 20 91 64 00 lds r18, 0x0064
ea: 80 91 7c 00 lds r24, 0x007C
ee: 90 91 7d 00 lds r25, 0x007D
f2: a0 91 7e 00 lds r26, 0x007E
f6: b0 91 7f 00 lds r27, 0x007F
fa: 82 0f add r24, r18
fc: 91 1d adc r25, r1
fe: a1 1d adc r26, r1
100: b1 1d adc r27, r1
102: 80 93 7c 00 sts 0x007C, r24
106: 90 93 7d 00 sts 0x007D, r25
10a: a0 93 7e 00 sts 0x007E, r26
10e: b0 93 7f 00 sts 0x007F, r27
Если функция a() запишет в R1 что-то отличное от нуля, то z32+=z1 будет неверно вычислено