在汇编程序中使用linux系统调用:

  • 将系统调用号码存入 EAX 寄存器。
  • 将系统调用的参数存入寄存器 EBX、ECX、EDX等。
  • 调用相应的中断(80h)。
  • 通常,结果会返回到 EAX 寄存器中。

比如说我想调用linux中的write函数来输出一个字符串string
ssize_t write(int fd, const void *buf, size_t length);
以上是write函数的函数声明

wirte(STDOUT, string, 4);

汇编语言版本:

mov eax, 4    ; system call number(sys_write), 调用write函数
mov ebx, 1    ; 文件描述符,stdout(标准输出),write函数的参数---fd
mov ecx, string    ; 要输出的字符串,write函数的参数---buf
mov edx, 4    ; 字符串的长度,write函数的参数---length
int 80h       ; 调用中断
 posted on 2024-07-02 18:41  Dylaris  阅读(81)  评论(0)    收藏  举报