アセンブラで簡単なプログラムを作ろうとしているのですが、なぜかわからなくてエラーが出てしまいます。私は 64 ビット マシンで Ubuntu 12.04 を実行しており、アセンブリ コンパイラとして "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
なぜこれが起こると思いますか?何か案が?