1
fmt0:   
    .asciz "%d\n"
    .align 4

    .global main, printf

main:
    save %sp, -76 & -8, %sp
    mov 5, %l0
    st %l0, [%fp-4]

    mov 7, %l1
    st %l1, [%fp-8]

    add %l0, %l1, %l2
    st %l2, [%fp-12]

    clr %l3
    clr %l4
    clr %l5
    mov 1, %l3
    mov 3, %l4
mov 0, %l5

test:
    cmp %l3, %l4
    bg exit
    sub %l5, 4, %l5
    set fmt0, %o0
    ld [%fp + %l5], %o1
    call printf
    inc %l3
    ba test
    nop

exit:
    mov 1, %g1
    ta 0

期待値は
5
7
12 です

しかし、結果の値は
5
5
12 でした

コードの何が問題になっていますか?
前もって感謝します

4

1 に答える 1