zoukankan      html  css  js  c++  java
  • x86_64 Assembler Calling Convention

    x86_64 Assembler Calling Convention

     1、x86_64 registers

      

      (r8-r15 follow the same convention.) The rip register is the instruction pointer register which points to the instruction being executed.

     2、x86_64寄存器特性表

      

     3、特性要点:

      1)常用寄存器有16个,分为x86通用寄存器以及r8-r15寄存器。

      2)通用寄存器中,函数执行前后必须保持原始的寄存器有3个:是rbx、rbp、rsp。rx寄存器中,最后4个必须保持原值:r12、r13、r14、r15。

              保持原值的意义是为了让当前函数有可信任的寄存器,减小在函数调用过程中的保存&恢复操作。除了rbp、rsp用于特定用途外,其余5个寄存器可随意使用。

      3)通用寄存器中,不必假设保存值可随意使用的寄存器有5个:是rax、rcx、rdx、rdi、rsi。其中rax用于第一个返回寄存器(当然也可以用于其它用途),rdx用于第二个返回寄存器(在调用函数时也用于第三个参数寄存器)。rcx用于第四个参数。rdi用于第一个参数。rsi用于第二个函数参数。

      4)r8、r9分配用于第5、第6个参数。

  • 相关阅读:
    三层浅析及演示样例分析
    WIN7 以下创建cocos2d-x3.0+lua项目
    hdu1814 Peaceful Commission,2-sat
    卸载mysql残留
    OA 权限控制
    开源 java CMS
    BestCoder Round #3 A,B
    K-近邻算法python实现
    04-08移动字母
    移动web开发前准备知识了解(html5、jquery)笔记
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3083560.html
Copyright © 2011-2022 走看看