x64dbg 中的“r8d”是啥?
Posted
技术标签:
【中文标题】x64dbg 中的“r8d”是啥?【英文标题】:What is this "r8d" in x64dbg?x64dbg 中的“r8d”是什么? 【发布时间】:2021-12-31 04:55:53 【问题描述】:我正在调试我的 x64 c++ 程序以了解它在 x64dbg 中的外观。我在右侧窗口看到一些 r8-r15 寄存器,但我没有看到 r8d
。还有其他像r15d
这样的人。那是什么?
这是我的 x64dbg 的屏幕截图。
【问题讨论】:
请注意,xor r8d, r8d
实际上具有将整个 64 位 r8
寄存器归零的效果,请参见 ***.com/questions/11177137/…,就像 xor r8, r8
一样。对于“低”通用寄存器 rax-rdx、rsi、rdi、rsp、rbp,这个技巧可以节省代码空间:xor edx, edx
与 xor rdx, rdx
做同样的事情,但前者缩短了一个字节,因为需要一个 REX 前缀。对于“高”寄存器 r8-r15,实际上没有区别,因为在这两种情况下都需要 REX 前缀。
【参考方案1】:
d
后缀表示其(64 位寄存器的)低位双字。例如,r8d
正在访问 r8
的低 32 位,就好像它是一个 32 位寄存器一样。
您可以找到更多信息here。
【讨论】:
以上是关于x64dbg 中的“r8d”是啥?的主要内容,如果未能解决你的问题,请参考以下文章