能力值:
( LV2,RANK:10 )
|
-
-
2 楼
DWORD PTR 类型控制 DWORD表示输入的长度是4个字节 正好32Bit 跟寄存器的长度一样!
例如MOV AX,WORD PTR DS:[ESI-4]
DS SS 只是指出是数据段 还是堆栈段 DWORD DS:[ESI-4]、DWORD PTR DS:[ESI] 区别就是这个两个地址相差4字节 或者值大小相差4 好像漏掉PTR
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢!DWORD PTR 类型控制 DWORD表示输入的长度是4个字节 正好32Bit 跟寄存器的长度最多是不是8位数
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
寄存器的长度取决你的CPU 有16Bit 32Bit 48Bit 64Bit 128Bit.....最多要查下资料
|
能力值:
( LV3,RANK:30 )
|
-
-
5 楼
dword 是双字的意思,1个二进制位称为1个bit,8个二进制位称为1个Byte,也就是1个字节(8位),2个字节就是1个Word(1个字,16位),则DWORD(DOUBLE WORD)就是双字的意思,两个字(32位)。
eax 是32位寄存器,ax是16位寄存器,ah/al是8位寄存器,mov EAX,DWORD PTR DS:[ESI-4]中eax是32位寄存器,那么后面要送入的也必须是32位。不能16位送32位,也就是说应该对应起来。
它们送入的长度上面已经解释,其它的说一例就明白了mov eax,DWORD PTR DS:[ESI-4]的意思是将地址为DWORD PTR DS:[ESI-4]下的内容送入eax,DWORD PTR DS:[ESI-4]代表的地址是这样计算的:ds的内容*10H+(esi的内容-4),而DWORD PTR DS:[ESI]代表的物理地址是:ds的内容*10H+(esi的内容,就是寄存器间接寻址)
|
|
|