.data
output: .ascii "hello world\n"
.text
.globl _start
_start:
movl $4, %eax
movl $1, %ebx
movl $output, %ecx
movl $12, %edx
int $0x80
movl $1, %eax
int $0x80
能具体解释下上面的代码部分么,尤其是给寄存器赋值4,1,12 的意思
mr_tianwei 于 2012-10-11 10:13:17发表:
2# jinger7281
这些概念我知道了,能把他们联系起来 解释下吗?每一行代码间的联系,因为我还是不知道怎么打印出 hello world 的
jinger7281 于 2012-10-10 12:02:04发表:
ebx = file descriptor
ecx = pointer to buffer
edx = buffer size
eax = system call - sys_read
其中你的:
4代表的是你的系统调用sys_read。
1代表的是文件描述符-这里代表的是标准输出,linux系统中所有东西都是文件,不要纠结。
12代表的是你的传入的字符大小-12个字符。
int $0x80则是系统的中断。