【发布时间】:2013-07-25 02:43:58
【问题描述】:
我想知道是否有人可以帮助我理解为什么我的汇编程序给我一个分段错误。 (别担心,这是一个相当短的程序。)
segment .data
a dq 175
b dq 4096
segment .text
global _start
_start:
mov rax, [a] ; move *a into rax
add rax, [b] ; add *b to rax
xor rax, rax ; set to zero
ret ; return
它应该将 a 和 b 的值相加,然后在程序终止时将它们作为最后的退出代码返回,对吗?所以echo $? 应该打印它应该打印0,因为4271?xor。
但是,是的,编译使用:nasm -f elf64 -l main.lst main.asm -o main.o && ld main.o -o main.exec
然后运行:./main.exec && echo $?
我们一如既往地非常感谢您的帮助。
【问题讨论】: