【原创】汇编指令 lea 和 mov 指令的区别是什么?

blogdaren 2021-04-18 抢沙发 247人次

问题背景:

lea指令是 load effective address 首字母的缩写简称,这有助于加深我们记忆以及理解其语义:用来将一个内存地址直接赋给目的操作数。假设我们采用的汇编风格是ATT风格。

举个例子:

【0x01】mov eax, [ebp-5] 代表将ebp寄存器指向的位置之后的第5个字节处的内存位置(内存地址)里的数据赋值给eax寄存器,即:

1、首先ebp寄存器永远指向栈基;

2、获取ebp上面的的第5个字节的位置,即得到最新的内存位置假如叫m;

3、获取内存位置m处的数据,然后将这个数据赋值给eax寄存器;

0x02】lea eax, [ebp55] 代表将ebp寄存器指向的位置之后的第5个字节处的内存位置(内存地址)赋值给eax寄存器,即:

1、首先ebp寄存器永远指向栈基;

2、获取ebp上面的的第5个字节的(内存)位置,即得到最新的内存位置假如叫n;

3、将内存位置n赋给eax寄存器;


版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:【原创】汇编指令 lea 和 mov 指令的区别是什么?

发表评论:

您的昵称:
电子邮件:
个人主页:

Free Web Hosting