假设有一个参数指向一个POINT结构,如:
p POINT

invoke Temp,addr p
在访问p.x/p.y时,要注意一定要先把lp放入一个寄存器再访问:
Temp proc lp
    mov ecx,lp
    mov eax,(POINT ptr [ecx]).x
    mov edx,(POINT ptr [ecx]).y
ret
Temp endp
这是因为,如果直接使用mov eax,(POINT ptr lp).x,它其实是把参数lp的地址指向的双字放入eax,而不是把lp指向的地址指向的双字放入eax,你可以把lp当成是c语言中的指针。