我为ARM编写了一个“Hello World”程序,它运行得很好。但是,当我重复printf调用(以打印两次“Hello World”)时,程序开始出现“分段错误”。
这是带有双重printf调用的代码:
.extern printf
.global main
main:
push {ip,lr}
ldr r0, =test
bl printf
bl printf
mov r0, #0
pop {ip,pc}
test: .asciz "hello world\n"
有什么线索可以找出问题的原因并解决它吗?
R0
。printf
可以改变它,就像打印的字符一样。 - artless noise