LEA

Cargar dirección efectiva

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
8D /rLEA r16,mRMValidoValidoGuardar dirección efectiva para m en el registro r16.
8D /rLEA r32,mRMValidoValidoGuardar dirección efectiva para m en el registro r32.
REX.W + 8D /rLEA r64,mRMValidoNo codificableGuardar dirección efectiva para m en el registro r64.

Codificacion de operandos

Cada modo es un valor de la columna Op/En de arriba. Dice en que campo de la instruccion codificada va cada operando, en el orden en que se escriben, y si la instruccion lo lee, lo escribe o ambas cosas.

RM

  1. modrm.reg escriturabyte ModRM, campo reg (bits 5-3)
  2. modrm.rm lecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide

Coste medido

Cargando las mediciones de arch-data...

Descripción

Cubre la dirección efectiva del segundo operando (el operando de origen) y la almacena en el primer operando (operando de destino). El operando de origen es una dirección de memoria (parte de inicio) especificada con uno de los procesadores que se dirigen modos; el operando de destino es un registro de proposito general. Los atributos de tamaño de dirección y tamaño operando afectan la acción realizada por esta instrucción, como se muestra en la tabla siguiente. El atributo de tamaño el operando de la instrucción es determinado por el registro elegido; el atributo de tamaño de dirección se determina por el atributo del segmento de código.

Modo de 64 bits LEA Operación con Dirección y Atributos tamaño de operando

Tamaño de operandoTamaño de la direcciónAction Performed
1616 dirección efectiva de 16 bits se calcula and almacenado en el destino de registro solicitado de 16 bits.
16Se calcula una dirección efectiva de 32 bits.Los 16 bits inferiores de la dirección se almacenan en el
32Se calcula la dirección efectiva de 16 bits.La dirección de 16 bits es cero-extended y almacenado en el

Modo de 64 bits LEA Operación con Dirección y Atributos tamaño de operando

Tamaño de operandoTamaño de la direcciónAction Performed
16Se calcula una dirección efectiva de 32 bits (32 bits)usando el prefijo 67H). Los 16 bits inferiores de la dirección son
almacenado en el registro solicitado de 16 bitsdestino (utilizando el prefijo 66H).
16Se calcula una dirección eficaz de 64 bits (tamaño de la dirección predeterminada). Los 16 bits inferiores de la dirección

Operación

IF OperandSize = 16 and AddressSize = 16

    THEN
          DEST := EffectiveAddress(SRC); (* 16-bit address *)

   ELSE IF OperandSize = 16 and AddressSize = 32

          THEN
                temp := EffectiveAddress(SRC); (* 32-bit address *)
                DEST := temp[0:15]; (* 16-bit address *)

          FI;

   ELSE IF OperandSize = 32 and AddressSize = 16

          THEN
                temp := EffectiveAddress(SRC); (* 16-bit address *)
                DEST := ZeroExtend(temp); (* 32-bit address *)

          FI;

   ELSE IF OperandSize = 32 and AddressSize = 32

          THEN
                DEST := EffectiveAddress(SRC); (* 32-bit address *)

          FI;

   ELSE IF OperandSize = 16 and AddressSize = 64

          THEN
                temp := EffectiveAddress(SRC); (* 64-bit address *)
                DEST := temp[0:15]; (* 16-bit address *)

          FI;

   ELSE IF OperandSize = 32 and AddressSize = 64

          THEN
                temp := EffectiveAddress(SRC); (* 64-bit address *)
                DEST := temp[0:31]; (* 16-bit address *)

          FI;

   ELSE IF OperandSize = 64 and AddressSize = 64

          THEN
                DEST := EffectiveAddress(SRC); (* 64-bit address *)

          FI;
FI;

Banderas afectadas

None.

Excepciones

Modo protegido
#UDSi operando de origen no es una ubicación de memoria. Si el prefijo LOCK es usado.
Modo real
Las mismas excepciones que en modo protegido.
Modo virtual-8086
Las mismas excepciones que en modo protegido.
Modo de compatibilidad
Las mismas excepciones que en modo protegido.
Modo de 64 bits
Las mismas excepciones que en modo protegido.

Fuentes