x64 暫存器速查表

x64 暫存器速查表

💡 原文中文,约1800字,阅读约需5分钟。
📝

内容提要

本文总结了x64架构下核心寄存器的状态与ABI约定,包括通用寄存器的用途、调用约定及关键状态标志。寄存器向下兼容,低32位写入会清零高32位,调用者与被调用者需管理寄存器值。系统调用和参数传递顺序在不同平台上有所不同。

🎯

关键要点

  • 本文总结了x64架构下核心寄存器的状态与ABI约定。
  • x64寄存器向下兼容,低32位写入会清零高32位。
  • 通用寄存器(GPRs)的用途包括返回值、基址、循环计数、I/O等。
  • Caller Saved寄存器需由调用者在调用前保存,Callee Saved寄存器需由被调用者在返回时恢复。
  • System V AMD64 ABI的参数传递顺序为RDI, RSI, RDX, RCX, R8, R9,超过6个参数需压入栈。
  • Microsoft x64的参数传递顺序为RCX, RDX, R8, R9,超过4个参数需压入栈,并需预留32字节的Shadow Space。
  • 返回值在RAX寄存器中,若结果为128位,高位在RDX。
  • 关键状态标志包括ZF(零标志)、SF(符号标志)、OF(溢出标志)、CF(进位标志)。
➡️

继续阅读