POP/PUSH与MOV
_SuperClassproc
local@stWC:WNDCLASSEX
mov@stWC.cbSize,sizeof @stWC
invokeGetClassInfoEx,NULL,addr szEditClass,addr @stWC
push@stWC.lpfnWndProc
poplpOldProcEdit
mov@stWC.lpfnWndProc,offset _ProcEdit
pushhInstance
pop@stWC.hInstance
mov@stWC.lpszClassName,offset szClass
invokeRegisterClassEx,addr @stWC
ret
_SuperClassendp
问下
pushhInstance
pop@stWC.hInstance
这里为什么不能用mov @stWC.hInstance,hInstance
[解决办法]
使用MOV指令要遵循以下的规则:
两个操作数的尺寸必须一致
两个操作数不能同时为内存操作数(应该是不符合这一条)
目的操作数不能是CS,EIP和IP
立即数不能直接送至段寄存器