在masm中,PTR伪指令只能修饰内存变量类型,因为任何寄存器的大小都是已知的且不能改变的(如果PTR修饰的是寄存器,则它修饰的是寄存器本身而不是其指向的内容)所以不能用PTR改变寄存器的大小,例如:
mov bx,word ptr eax
;错误!不能将eax大小改为word尺寸。
mov ebx,dword ptr eax;正确!但没有意义。
mov ebx,(pos ptr [eax]).x;正确!你不能改变eax的大小,但可以改变其指向空间的大小。
另外,还有一种预先说明寄存器类型的方法:
assume eax:ptr pos
mov ebx,[eax].x
assume eax:NOTHING
时间: 2024-10-31 12:32:41