linux汇编:如何调用syscall?

 丶玛骝 发布于 2023-02-13 14:22
  • php
  • 1 个回答
    • 要在64位Linux中进行系统调用,请将系统调用号放在rax中,然后将其参数按顺序放在rdi,rsi,rdx,r10,r8和r9中,然后调用syscall.

      这是一个例子

              .global _start
      
              .text
      _start:
              # write(1, message, 13)
              mov     $1, %rax                # system call 1 is write
              mov     $1, %rdi                # file handle 1 is stdout
              lea     message(%rip), %rsi     # address of string to output
              mov     $13, %rdx               # number of bytes
              syscall
      
              # exit(0)
              mov     $60, %rax               # system call 60 is exit
              xor     %rdi, %rdi              # return code 0
              syscall
      
      .section .rodata           # read-only data section
      message:
              .ascii  "Hello, World\n"
      

      2023-02-13 14:25 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有