Computes the effective address of the second operand (the source operand) and stores it in the first operand (destination operand). The source operand is a memory address (offset part) specified with one of the processors addressing modes; the destination operand is a general-purpose register. The address-size and operand-size attributes affect the action performed by this instruction, as shown in the following table. The operand-size attribute of the instruction is determined by the chosen register; the address-size attribute is determined by the attribute of the code segment.
Address and Operand Size Attributes
|Operand Size||Address Size||Action Performed|
|16||16||16-bit effective address is calculated and stored in requested 16-bit register destination.|
|16||32||32-bit effective address is calculated. The lower 16 bits of the address are stored in the requested 16-bit register destination.|
|32||16||16-bit effective address is calculated. The 16-bit address is zeroextended and stored in the requested 32-bit register destination.|
|32||32||32-bit effective address is calculated and stored in the requested 32-bit register destination.|
Different assemblers may use different algorithms based on the size attribute and symbolic reference of the source operand.