私はARMアセンブラで書かれた単純な関数を持っています。初めて実行すると、すべてが期待どおりに機能します (出力されますBOOT\n
)。ただし、関数が 2 回目に実行されると、何も出力されません。
.globl __printTest
.text
.align 2
__printTest:
sub sp, #64 /* yes, I know this is too much */
mov r0, #66
str r0, [sp]
mov r0, #79
str r0, [sp, #1]
mov r0, #79
str r0, [sp, #2]
mov r0, #84
str r0, [sp, #3]
mov r0, #10
str r0, [sp, #4]
mov r0, #0
mov r1, sp
mov r2, #5
bl _write
add sp, #64
bx lr
問題は何ですか?これにより、バッファが機能しなくなったことがどういうわけか台無しになっているのではないかと思います。Write は、命令write
を使用して Linux で syscallを呼び出す関数です。svc