读书人

POP/PUSH与MOV,该怎么解决

发布时间: 2012-02-09 18:22:27 作者: rapoo

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

立即数不能直接送至段寄存器

读书人网 >汇编语言

热点推荐