avr-8bit用の次のCコードがあると仮定します。
int v1=1;
int v2=2;
v2=v2+v1;
次の分解が予想されました
ldi r18, 1;
ldi r19, 2;
add r19, r18;
しかし、私が走った後:
avr-gcc -mmcu=atmega2560 Test.c -o Test.elf
そして
avr-objdump -S Test.elf > Test.lss
私は次のものを分解しました
    ldi r24, 0x01   ; 1
    ldi r25, 0x00   ; 0
    std Y+2, r25    ; 0x02
    std Y+1, r24    ; 0x01
    ldi r24, 0x02   ; 2
    ldi r25, 0x00   ; 0
    std Y+4, r25    ; 0x04
    std Y+3, r24    ; 0x03
    ldd r18, Y+3    ; 0x03
    ldd r19, Y+4    ; 0x04
    ldd r24, Y+1    ; 0x01
    ldd r25, Y+2    ; 0x02
    add r24, r18
    adc r25, r19
    std Y+4, r25    ; 0x04
    std Y+3, r24    ; 0x03
逆アセンブラの結果を理解するのに役立つ人はいますか?
編集:charを使用すると、アセンブリは次のようになります。
ldi r24, 0x01
std Y+1, r24
ldi r24, 0x02
std Y+2, r24
ldd r25, Y+2
ldd r24, Y+1
add r24, r25
std Y+2, r24
std命令はいつありますか?