6-44
INSTRUCTION SET SUMMARY
The POP and MOV instructions cannot place a value in the CS register. Only the far control-
transfer versions of the JMP, CALL, and RET instructions (refer to Section 6.14.2., Far Control
Transfer Instructions) affect the CS register directly.
6.14.2.Far Control Transfer Instructions
The JMP and CALL instructions (refer to Section 6.9., Control Transfer Instructions) both
accept a far pointer as a source operand to transfer program control to a segment other than the
segment currently being pointed to by the CS register. When a far call is made with the CALL
instruction, the current values of the EIP and CS registers are both pushed on the stack.
The RET instruction (refer to Section 6.9.1.2., Call and Return Instructions) can be used to
execute a far return. Here, program control is transferred from a code segment that contains a
called procedure back to the code segment that contained the calling procedure. The RET
instruction restores the values of the CS and EIP registers for the calling procedure from the
stack.
6.14.3.Software Interrupt Instructions
The software interrupt instructions INT, INTO, BOUND, and IRET (refer to Section 6.9.3.,
Software Interrupts) can also call and return from interrupt and exception handler procedures
that are located in a code segment other than the current code segment. With these instructions,
however, the switching of code segments is handled transparently from the application program.
6.14.4.Load Far Pointer Instructions
The load far pointer instructions LDS (load far pointer using DS), LES (load far pointer using
ES), LFS (load far pointer using FS), LGS (load far pointer using GS), and LSS (load far pointer
using SS) load a far pointer from memory into a segment register and a general-purpose general
register. The segment selector part of the far pointer is loaded into the selected segment register
and the offset is loaded into the selected general-purpose register.
6.15.MISCELLANEOUS INSTRUCTIONS
The following instructions perform miscellaneous operations that are of interest to applications
programmers.
6.15.1.Address Computation Instruction
The LEA (load effective address) instruction computes the effective address in memory (offset
within a segment) of a source operand and places it in a general-purpose register. This instruc-
tion can interpret any of the Pentium
®
Pro processors addressing modes and can perform any
indexing or scaling that may be needed. It is especially useful for initializing the ESI or EDI