間接オペランドで「xxxx PTR」を使用する規則に少し混乱しています。誰でも明確にできますか?ありがとう
1 に答える
1
おそらく、次のニーモニック構文を参照しているでしょう (例: objdump -Mintel
):
add DWORD PTR [eax],0x5
ここでのポイントは、これは単なるメモリ内の場所であり、サイズ情報[eax]
を保持していないということです。したがって、バイト、ワード、dword、または qword のいずれに 5 を加算するかはわかりません。注釈付きのオペコード名 ( 、、、 )を使用した場合は明らかですが、アセンバーのこの特定の方言では、代わりにメモリ オペランドに注釈を付けています。この場合、「treatは dword へのポインタです」と表示されます。addb
addw
addl
addq
eax
対照的に、レジスタ名はそのサイズを暗示しているため、レジスタ オペランドにはそのような注釈は必要ありません。
add al,0x5 ; addb
add ax,0x5 ; addw
add eax,0x5 ; addl
add rax,0x5 ; addq
于 2013-07-16T13:57:03.953 に答える