zoukankan      html  css  js  c++  java
  • x64 寄存器使用

    http://blog.csdn.net/cosmoslife/article/details/8771773

    http://blog.csdn.net/herx1/article/details/3134889

    x64 结构提供了 16 个通用寄存器(以后称为整数寄存器),以及 16 个可供浮点使用的 XMM 寄存器。易失寄存器是由调用方假想的临时寄存器,并要在调用过程中销毁。非易失寄存器需要在整个函数调用过程中保留其值,并且一旦使用,则必须由被调用方保存。

    下表说明了每种寄存器在整个函数调用过程中的使用方法:

    Register 状态 请使用
    RAX 易失的 返回值寄存器
    RCX 易失的 第一个整型参数
    RDX 易失的 第二个整型参数
    R8 易失的 第三个整型参数
    R9 易失的 第四个整型参数
    R10:R11 易失的 必须根据需要由调用方保留;在 syscall/sysret 指令中使用
    R12:R15 非易失的 必须由被调用方保留
    RDI 非易失的 必须由被调用方保留
    RSI 非易失的 必须由被调用方保留
    RBX 非易失的 必须由被调用方保留
    RBP 非易失的 可用作帧指针;必须由被调用方保留
    RSP 非易失的 堆栈指针
    XMM0 易失的 第一个 FP 参数
    XMM1 易失的 第二个 FP 参数
    XMM2 易失的 第三个 FP 参数
    XMM3 易失的 第四个 FP 参数
    XMM4:XMM5 易失的 必须根据需要由调用方保留
    XMM6:XMM15 非易失的 必须根据需要由被调用方保留。
  • 相关阅读:
    C语言 · 报时助手
    C语言 · 完美的代价
    C语言 · 十六进制转八进制
    C语言 · 十六进制转十进制
    C语言 · 芯片测试
    C语言 · 素数求和
    C语言 · 五次方数
    Lodop多分出空白页的可能(情况1)
    C-Lodop提示“网页还没下载完毕,请稍等一下再操作.”
    Lodop简答问答大全
  • 原文地址:https://www.cnblogs.com/zengkefu/p/7087376.html
Copyright © 2011-2022 走看看