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 非易失的 必須根據需要由被調用方保留。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM