私はコマンドラインから10の整数を読み込み、その値の合計をサブルーチンで出力します。ARMサブルーチン内でスタック上の値にアクセスするにはどうすればよいですか?
私は、次の適切なコードを持っている:あなたがいることをどのように行うのですか、私は戻ってスタックを通じ10回反復し、私はちょうどで読み値の合計を取得したいと思い、私の和サブルーチンで
...
sub sp, sp, #40 // making room on the stack
mov r4, sp // use r4 as our working register for where we are in our space
loop:
(looping through this 10 times)
ldr r0, =rdfmt
mov r1, r4
bl scanf
add r4, r4 #4
done:
bl sum
sum:
push {lr}
(how do I load those back in from the stack?)
...
を。 ?
あなたは 'sum'に戻ります。(' bx lr'または 'pop {pc}'を省略したと思いますあなたの最初の関数の最後に、あなたがループの一番下のループブランチを残したようなのでしょうか?) 'sum'がリーフ関数であれば' lr 'を押す必要はありません。 bx lr'または 'mov pc、lr' –