我有一个用 ARM 汇编程序编写的简单函数。第一次运行时,一切都按预期工作(打印BOOT\n
)。但是,第二次执行该函数时,没有打印任何内容。
.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 上调用系统调用的函数。svc