我正在尝试用汇编程序编写一个简单的程序,但我不明白为什么,我出错了。我有一台运行 Ubuntu 12.04 的 64 位机器,并将“as”作为汇编编译器。我的目标只是在屏幕上打印字符串“Hello”。
我写了这个:
#print.s
.section .data
.globl StringToPrint
StringToPrint: .asciz "Hello"
.globl _start
_start:
movq $4, %rax
movq $1, %rbx
movq $StringToPrint, %rcx
movq $5, %rdx
int $0x80
_done:
ret
但这就是我得到的:
$ as print.s -o print.o
$ ld print.o -o print
$ ./print
Hello[1] 10679 segmentation fault (core dumped) ./print
你认为为什么会发生这种情况?任何的想法?