我对将"xxxx-PTR"与间接操作数一起使用的规则有点困惑。有人能说清楚吗?感谢
也许您参考了这种助记符语法(例如objdump -Mintel
):
add DWORD PTR [eax],0x5
这里的重点是[eax]
只是内存中的一个位置,但它不携带大小的信息。所以我们不知道是给一个字节、一个字、一个dword还是一个qword加5。如果我们使用带注释的操作码名称(addb
、addw
、addl
、addq
),则会很清楚,但这种特定的成员方言会选择注释内存操作数。在这种情况下,它说,"处理eax
是一个指向dword的指针"。
相比之下,寄存器操作数不需要这样的注释,因为寄存器名称暗示其大小:
add al,0x5 ; addb
add ax,0x5 ; addw
add eax,0x5 ; addl
add rax,0x5 ; addq