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, edxxor rdx, rdx 做同样的事情,但前者缩短了一个字节,因为需要一个 REX 前缀。对于“高”寄存器 r8-r15,实际上没有区别,因为在这两种情况下都需要 REX 前缀。 【参考方案1】:

d 后缀表示其(64 位寄存器的)低位双字。例如,r8d 正在访问 r8 的低 32 位,就好像它是一个 32 位寄存器一样。

您可以找到更多信息here。

【讨论】:

以上是关于x64dbg 中的“r8d”是啥?的主要内容,如果未能解决你的问题,请参考以下文章

x64dbg

如何使用 x64dbg 记录程序执行的 CPU 指令?

通过批处理文件启动的调试软件(x64dbg)

在x64dbg中设置条件断点

x64dbg入门学习

x64dbg使用心得