mem64 - 11 11 11 5
LIDT - Load Interrupt Descriptor Table (286+ privileged) Usage: LIDT src Modifies flags: None
Loads a value from an operand into the Interrupt Descriptor Table (IDT) register.
Clocks Size Operands 808x 286 386 486 Bytes mem64 - 12 11 11 5
LGS - Load Pointer Using GS (386+) Usage: LGS dest,src Modifies flags: None
Loads 32-bit pointer from memory source to destination register and GS. The offset is placed in the destination register and the segment is placed in GS. To use this instruction the word at the lower memory address must contain the offset and the word at the higher address must contain the segment. This simplifies the loading of far pointers from the stack and the interrupt vector table. Clocks Size Operands 808x 286 386 486 Bytes reg,mem - - 7 6 5-7 reg,mem (PM) - - 22 12 5-7
LLDT - Load Local Descriptor Table (286+ privileged) Usage: LLDT src Modifies flags: None
Loads a value from an operand into the Local Descriptor Table Register (LDTR).
Clocks Size Operands 808x 286 386 486 Bytes reg16 - 17 20 11 3 mem16 - 19 24 11 5
LMSW - Load Machine Status Word (286+ privileged) Usage: LMSW src Modifies flags: None
Loads the Machine Status Word (MSW) from data found at \ Clocks Size Operands 808x 286 386 486 Bytes reg16 - 3 10 13 3 mem16 - 6 13 13 5
LOCK - Lock Bus
Usage: LOCK
LOCK: (386+ prefix) Modifies flags: None
This instruction is a prefix that causes the CPU assert bus lock signal during the execution of the next instruction. Used to
avoid two processors from updating the same data location. The
286 always asserts lock during an XCHG with memory operands. This should only be used to lock the bus prior to XCHG, MOV, IN and OUT instructions.
Clocks Size Operands 808x 286 386 486 Bytes none 2 0 0 1 1
LODS - Load String (Byte, Word or Double) Usage: LODS src LODSB LODSW
LODSD (386+) Modifies flags: None
Transfers string element addressed by DS:SI (even if an operand is supplied) to the accumulator. SI is incremented based on the size of the operand or based on the instruction used. If the Direction Flag is set SI is decremented, if the Direction Flag is clear SI is incremented. Use with REP prefixes.
Clocks Size Operands 808x 286 386 486 Bytes src 12/16 5 5 5 1
LOOP - Decrement CX and Loop if CX Not Zero Usage: LOOP label Modifies flags: None
Decrements CX by 1 and transfers control to \ Zero. The \ instruction following the loop instruction
Clocks Size Operands 808x 286 386 486 Bytes label: jump 18 8+m 11+m 6 2 no jump 5 4 ? 2
LOOPE/LOOPZ - Loop While Equal / Loop While Zero Usage: LOOPE label LOOPZ label Modifies flags: None
Decrements CX by 1 (without modifying the flags) and transfers control to \ The
\ following the loop instruction.
Clocks Size Operands 808x 286 386 486 Bytes label: jump 18 8+m 11+m 9 2 no jump 5 4 ? 6
LOOPNZ/LOOPNE - Loop While Not Zero / Loop While Not Equal Usage: LOOPNZ label LOOPNE label Modifies flags: None
Decrements CX by 1 (without modifying the flags) and transfers control to \ The
\ following the loop instruction.
Clocks Size Operands 808x 286 386 486 Bytes label: jump 19 8+m 11+m 9 2 no jump 5 4 ? 6
LSL - Load Segment Limit (286+ protected) Usage: LSL dest,src Modifies flags: ZF
Loads the segment limit of a selector into the destination register if the selector is valid and visible at the current privilege level. If loading is successful the Zero Flag is set, otherwise it is cleared.
Clocks Size Operands 808x 286 386 486 Bytes reg16,reg16 - 14 20/25 10 3 reg32,reg32 - - 20/25 10 3 reg16,mem16 - 16 21/26 10 5 reg32,mem32 - - 21/26 10 5 - 386 times are listed \
LSS - Load Pointer Using SS (386+) Usage: LSS dest,src Modifies flags: None
Loads 32-bit pointer from memory source to destination register and SS. The offset is placed in the destination register and the segment is placed in SS. To use this instruction the word at the lower memory address must contain the offset and the word at the
higher address must contain the segment. This simplifies the loading of far pointers from the stack and the interrupt vector table. Clocks Size Operands 808x 286 386 486 Bytes reg,mem - - 7 6 5-7 reg,mem (PM) - - 22 12 5-7
LTR - Load Task Register (286+ privileged) Usage: LTR src Modifies flags: None
Loads the current task register with the value specified in \ Clocks Size Operands 808x 286 386 486 Bytes reg16 - 17 23 20 3 mem16 - 19 27 20 5
MOV - Move Byte or Word
Usage: MOV dest,src Modifies flags: None
Copies byte or word from the source operand to the destination operand. If the destination is SS interrupts are disabled except on early buggy 808x CPUs. Some CPUs disable interrupts if the destination is any of the segment registers
Clocks Size Operands 808x 286 386 486 Bytes reg,reg 2 2 2 1 2
mem,reg 9+EA 3 2 1 2-4 (W88=13+EA) reg,mem 8+EA 5 4 1 2-4 (W88=12+EA) mem,immed 10+EA 3 2 1 3-6 (W88=14+EA) reg,immed 4 2 2 1 2-3
mem,accum 10 3 2 1 3 (W88=14) accum,mem 10 5 4 1 3 (W88=14) segreg,reg16 2 2 2 3 2
segreg,mem16 8+EA 5 5 9 2-4 (W88=12+EA) reg16,segreg 2 2 2 3 2
mem16,segreg 9+EA 3 2 3 2-4 (W88=13+EA) reg32,CR0/CR2/CR3 - - 6 4 CR0,reg32 - - 10 16
CR2,reg32 - - 4 4 3 CR3,reg32 - - 5 4 3 reg32,DR0/DR1/DR2/DR3 - 22 10 3 reg32,DR6/DR7 - - 22 10 3 DR0/DR1/DR2/DR3,reg32 - 22 11 3 DR6/DR7,reg32 - - 16 11 3
reg32,TR6/TR7 - - 12 4 3 TR6/TR7,reg32 - - 12 4 3 reg32,TR3 3 TR3,reg32 6
- when the 386 special registers are used all operands are 32 bits
MOVS - Move String (Byte or Word) Usage: MOVS dest,src MOVSB MOVSW
MOVSD (386+) Modifies flags: None
Copies data from addressed by DS:SI (even if operands are given) to the location ES:DI destination and updates SI and DI based on the size of the operand or instruction used. SI and DI are incremented when the Direction Flag is cleared and decremented when the Direction Flag is Set. Use with REP prefixes.
Clocks Size Operands 808x 286 386 486 Bytes
dest,src 18 5 7 7 1 (W88=26)
MOVSX - Move with Sign Extend (386+) Usage: MOVSX dest,src Modifies flags: None
Copies the value of the source operand to the destination register with the sign extended.
Clocks Size Operands 808x 286 386 486 Bytes reg,reg - - 3 3 3 reg,mem - - 6 3 3-7
MOVZX - Move with Zero Extend (386+) Usage: MOVZX dest,src Modifies flags: None
Copies the value of the source operand to the destination register with the zeroes extended.
Clocks Size Operands 808x 286 386 486 Bytes reg,reg - - 3 3 3 reg,mem - - 6 3 3-7
MUL - Unsigned Multiply
Usage: MUL src
Modifies flags: CF OF (AF,PF,SF,ZF undefined)