【发布时间】:2016-04-07 14:16:53
【问题描述】:
我是使用 Raspberry Pi 的汇编语言的新手。我试图在 Raspberry Pi 3(ARM 8086)上运行这个简单的程序。它不会导致错误,但是当我在编译和运行as _o example.o example.s、gcc _o example examle.s 和./example 后尝试在终端中查看结果时。执行结果是segmentation fault,能帮帮我吗?
.align 2
.text
.global main
main:
stmfd r13!, {r14}
mov r0,#1
bl print
mov r0,#2
bl print
mov r0,#3
bl print
ldmfd r13!,{pc} @ return to OS
print:
stmfd r13!, {r0-r3,r12,r14}
mov r1,r0
ldr r0, =num_str
bl printf
ldmfd r13!, {r0-r3,r12,pc}
.data
.align 2
num_str:
.asciz “%d\n”
.end
【问题讨论】:
-
"8086" 嗯?此外,您所说的命令中有很多拼写错误(
_o、examle.s、first与example不匹配)。 -
@Michael 你是对的,非常感谢你注意到这一点,我已经把它改成了例子,结果是分段错误。
-
这段代码对我来说很好用,前提是
“”引号被替换为语法正确的""引号 - 我认为这些只是此处发布的人工制品,而不是您的实际代码,因为它们使汇编器抛出你说不会发生的错误。 -
我改变了它,我得到了同样的错误。谢谢。
标签: assembly arm raspberry-pi