目的
1、学习查看系统调用的原型
2、使用系统调用
系统调用查看
命令行语法:man [系统调用所在页] [系统调用名称]
例:man 2 exit,查看系统调用exit的相关信息
例:man 3 printf,查看系统调用printf的相关信息
系统调用使用
传参
向系统调用传递参数的方法有两种:
1、参数数量 ≤ 5时
EAX:系统调用号
EBX:第1个参数
ECX:第2个参数
EDX:第3个参数
ESI:第4个参数
EDI:第5个参数
2、参数数量 > 5时
EAX:系统调用号
EBX:EBX寄存器指向参数列表的内存地址
调用
try3.s
.section .data
output0:
.ascii "This is a test message.\n"
output1:
.equ len, output1 - output0
.section .text
.global main
main:
movl $4, %eax
movl $1, %ebx
movl $output0, %ecx
movl $len, %edx
int $0x80
movl $1, %eax
movl $0, %ebx
int $0x80
编译链接执行
总结
1、系统调用由操作系统直接提供
2、Linux系统调用由C与汇编一起实现