_SuperClass proc
local @stWC:WNDCLASSEX
mov @stWC.cbSize,sizeof @stWC
invoke GetClassInfoEx,NULL,addr szEditClass,addr @stWC
push @stWC.lpfnWndProc
pop lpOldProcEdit
mov @stWC.lpfnWndProc,offset _ProcEdit
push hInstance
pop @stWC.hInstance
mov @stWC.lpszClassName,offset szClass
invoke RegisterClassEx,addr @stWC
ret
_SuperClass endp
问下
push hInstance
pop @stWC.hInstance
这里为什么不能用mov @stWC.hInstance,hInstance
------解决方案--------------------------------------------------------
使用MOV指令要遵循以下的规则:
两个操作数的尺寸必须一致
两个操作数不能同时为内存操作数(应该是不符合这一条)
目的操作数不能是CS,EIP和IP
立即数不能直接送至段寄存器