LEA              Load Effective Address              Flags: not altered

LEA destination,source

Logic:       destination   Addr(source)

LEA transfers the offset of the source operand (rather than its value)
to the destination operand. The source must be a memory reference, and
the destination must be a 16-bit general register.

                                                                          
Operands                  Clocks   Transfers  Bytes   Example
reg16, mem16              2 + EA       -       2-4    LEA BX,MEM_ADDR
                                                                          

Notes:         This instruction has an advantage over using the
OFFSET operator with the MOV instruction, in that
the source operand can be subscripted. For example,
this is legal:

LEA  BX, TABLE[SI]                ;Legal

whereas

MOV  BX, OFFSET TABLE[SI]         ;Not legal

is illegal, since the OFFSET operator performs its
calculation at assembly time and this address is not
known until run time.

                                 Example                                  

The DOS print string routine, Function 09h, requires a pointer to the
string to be printed in DS:DX. If the string you wished to print was
at address "PRINT-ME" in the same data segment, you could load DS:DX
with the required pointer using this instruction:

LEA     DX, PRINT-ME

See also: LDS
See also: LES
See also: OFFSET
See also: EA

LEA Load Effective Address