类似Lea EAX,[EBX+10]的作用



Lea是返回偏移地址,对于 Lea EAX,s1 这样很好解释,就是返回变量s1的偏移地址

Lea EAX,[EBX+10]就比较复杂了

[EBX+10]表示EBX+10后作为地址,此地址指向位置的值,取的是EBX+10地址内的内容。

那Lea究竟是把这个内容作为地址存入EAX,还是把这个内容的地址赋给EAX呢?如果是后者,那不是跟MOV EAX,EBX+10的效果一样了?

 

实际的效果应该是后者,Mov EAX,EBX+10是非法的语句,汇编不允许操作数有2个寄存器和立即数存在。

 

Lea EAX,[EBX+10]的作用就是把EBX+10作为地址存入EAX。

 

以下是E语言代码

' mov eax,908a00   
' mov [12f344],eax
' mov eax,12f344     原来是lea eax, [12f344]
' mov ecx,1000000    //头0,面1.链2....以此类推
' mov [12f345],ecx
' push eax
' mov edx,1d
' mov [12f347],edx
' call 00538A50
' add esp,0x4

 

E语言里面有些汇编命令有PTR,PTR的意思就是取地址里的值

mov eax,908a00     MOV EAX,908a00

mov eax,[908a00]     MOV EAX_PTR 908A00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值