何时应该将PTR与间接操作数一起使用



我对将"xxxx-PTR"与间接操作数一起使用的规则有点困惑。有人能说清楚吗?感谢

也许您参考了这种助记符语法(例如objdump -Mintel):

add DWORD PTR [eax],0x5

这里的重点是[eax]只是内存中的一个位置,但它不携带大小的信息。所以我们不知道是给一个字节、一个字、一个dword还是一个qword加5。如果我们使用带注释的操作码名称(addbaddwaddladdq),则会很清楚,但这种特定的成员方言会选择注释内存操作数。在这种情况下,它说,"处理eax是一个指向dword的指针"。

相比之下,寄存器操作数不需要这样的注释,因为寄存器名称暗示其大小:

add  al,0x5    ; addb
add  ax,0x5    ; addw
add eax,0x5    ; addl
add rax,0x5    ; addq

最新更新