在标签分配期间使用 PTR x86

use of PTR during label assignment x86

所以我反汇编了一个小的 c++ 程序(自从我开始这个程序以来学习了很多关于汇编的知识)并且汇编在主过程顶部做的第一件事是

var_E4= byte ptr -0E4h

我知道 ptr 用于声明汇编器无法隐式知道的数据大小,但经过大量查找后,我还没有找到此特定设置的示例或解释。 byte ptr 是否告诉汇编程序将 -228 分配给 var_E4 (本质上是告诉将其视为单个带符号的十六进制值)?如果不是,发生了什么?

这只是一个宏定义,允许它编写 [rsp + var_E4] 而不是 [rsp - 0E4h],以帮助提高访问堆栈上局部变量的指令的反汇编输出的可读性。

您没有告诉我们您具体使用了哪个反汇编程序,也没有提供任何上下文(例如使用此宏的行)。不过,我认为可能没有太多要说的了。以这种方式编写与在使用宏的任何地方替换值对您从汇编中获得的二进制机器代码的影响为零。