linux平台学x86汇编(十七):在汇编中使用linux系统调用
$ cat /usr/include/asm/unistd_32.h #ifndef _ASM_X86_UNISTD_32_H #define _ASM_X86_UNISTD_32_H /* * This file contains the system call numbers. */ #define __NR_restart_syscall 0 #define __NR_exit 1 #define __NR_fork 2 #define __NR_read 3 #define __NR_write 4 #define __NR_open 5 #define __NR_close 6 #define __NR_waitpid 7 #define __NR_creat 8 #define __NR_link 9 #define __NR_unlink 10 ......
_start: #函数在屏幕上输出hello world! movl $len, %edx #第三个参数: 字符串长度 movl $msg, %ecx #第二个参数: hello world!字符串 movl $1, %ebx #第一个参数: 输出文件描述符 movl $4, %eax #系统调用号sys_write int $0x80 #调用内核功能输入值被依次分配到了ebx、ecx、edx寄存器中,而系统调用号4被分配到了eax寄存器中。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。