汇编 lea指令有啥用

80386处理器的lea指令是取指针的地址 如:
lea eax,[ebp-4]
该指令在运行时按照ebp的值实际计算出地址放到eax中
此指令用在存储局部变量

但我认为这个指令没啥用,
可以用mov 指令代替。
直接把ebp的值减4再放到eax中,
在任何时候都没问题。

不知道我推断是不是对的,请高手纠正。
干脆解释程序用个伪指令不更好,把cpu指令弄那么庞大干啥。

4楼假的吧 250倍! 那干脆全用lea算了

实际上,楼主是知道这两条指令的差别的,只是觉得用lea指令有些多此一举。事实不然。

当源操作数很简单的情况下,完全可以用mov指令代替lea指令,如lea esi,Buffer,完全可以用指令mov esi,offset Buffer代替;但当源操作数稍微复杂一点的话,单用mov指令就代替不了了,至少要用到算术运算指令。指令集中提供lea指令,就是为了减少这些计算上的麻烦。

制造出来的设备、工具是为了减轻人们的劳动强度和提高工作效率。犹如,用原始的铁锅、烧柴禾能够烧菜、做饭,用煤气灶、电饭锅也能烧菜、做饭,你愿意用哪个呢?
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-08-13
你这样推断是不正确的,lea eax,[ebp-4]和mov eax,[ebp-4]
这两条语句在功能上是一样的,但是mov指令在数据传送路径和类型上与 lea有很大的不同,比如在move 中字类型不能与双字类型传送,否则编译出错,但是lea可以字类型不能向双字类型传送,具体的不同其实很多教材上都有的,你自己下去仔细看看~
第2个回答  2009-08-13
lea比mov运算速度快上大约250倍
第3个回答  2012-12-30
一般用于获取指针的地址,请参考汇编或C的编程实例。
第4个回答  2009-08-13
lea传送的地址
mov传送的是内容

汇编lea指令有啥用
汇编指令中的LEA指令用于加载有效地址。LEA指令的具体功能如下:一、LEA指令的基本含义 LEA指令是一种将有效地址值加载到寄存器中的指令。在计算机汇编语言中,LEA指令用于将操作数的有效地址直接传送到目标寄存器中。有效地址通常是一个操作数的偏移量或者间接地址,例如在数组操作或者复杂内存访问中常见。通过...

汇编语言lea是什么意思
LEA就是目标地址传送指令: 将一个近地址指针写入到指定的寄存器。指令的功能是将源操作数、即存储单元的有效地址传送到目的操作数。LEA有两个操作数,分别为:1、左边是目的操作数,表示操作结果保存在此,该指令目的操作数只能是8个通用寄存器之一;2、右边的是源操作数,该指令的源操作数只能是一个...

汇编语言lea是什么意思
在汇编语言中,LEA是一种指令,用于加载有效地址。详细解释:1. 基本含义:LEA指令用于将一个有效地址加载到指定的寄存器中。在汇编程序中,间接寻址是一种常用的内存访问方式,它允许程序通过寄存器间接访问内存中的值。LEA指令允许程序员快速计算和操作这些间接地址。2. 指令格式:LEA指令的标准格式是 `L...

LEA指令汇编
LEA指令是汇编语言中用于有效地址传送的重要组成部分。它的基本格式是LEA OPRD1,OPRD2,其中OPRD1是目标操作数,可以是16位通用寄存器中的任意一个,它的作用是接收从OPRD2传递过来的有效地址信息。OPRD2,即源操作数,可以灵活多变,既可以是变量名,也可以是标号,甚至是地址表达式。例如,当我们使用LE...

lea是什么意思,汇编里的
一、LEA指令的基本含义 LEA是一条用于加载有效地址的指令。在汇编语言中,有效地址通常指的是操作数的内存地址或者偏移量。这条指令的功能是将一个有效地址值传送到指定的寄存器中。例如,它可以把一个内存变量的地址值加载到某个寄存器里。这条指令常常用于设置其他指令的间接操作数。所谓的间接操作数就...

lea指令什么意思
LEA指令是一种汇编语言指令,其全称为“Load Effective Address”。详细解释如下:1. 基本定义 LEA指令是一种用于加载有效地址的指令。在汇编语言中,它用于将一个有效地址加载到寄存器中。有效地址可以是一个内存地址或者是一个偏移量。这条指令在计算机执行时,会将操作数所指向的内存地址直接传送到目标...

汇编语言lea是什么意思?
汇编语言是一种低级编程语言,用于直接与计算机硬件交互。在汇编语言中,LEA是一个重要的指令。LEA指令的基本作用 LEA指令的主要功能是将有效地址加载到指定的寄存器中。在计算机系统中,内存地址是非常重要的概念,它用于定位存储在内存中的数据和程序。LEA指令使得程序员能够方便地获取和操作内存地址。LEA...

汇编语言lea是什么意思
汇编语言中的LEA,全称是Load Effective Address,即有效地址加载指令。它的核心功能是将存储单元的地址信息从源操作数传递到目的操作数,实质上是实现数据地址的转移,而非数据本身。LEA指令有两个关键组成部分:首先,目标操作数,即指令执行后结果存放的位置,这通常指的是CPU的8个通用寄存器之一,因为LEA...

汇编里面lea和offset有什么区别?
1、lea:是微机8086\/8088系列的一条指令,取有效地址,也就是取偏移地址。2、offset:变量名或标号,汇编程序将回送变量或标号的偏移地址。二、规则不同 1、lea:在微机8086\/8088中有20位物理地址,由16位段基址向左偏移4位再与偏移地址之和得到。2、offset:Reference作为偏移量参照系的引用区域。

汇编lea指令有啥用
汇编语言中的lea指令并非如一些人所认为的多余,它在特定情况下发挥着不可或缺的作用。当源操作数较为简单,比如直接指向存储器地址时,mov指令确实能满足需求,如"lea esi, [Buffer]",可以被"mov esi, offset Buffer"所替代。然而,当源操作数涉及到复杂的地址计算时,mov指令就显得力不从心,这时...

相似回答