<<<    Index    >>>
4-6
PROCEDURE CALLS, INTERRUPTS, AND EXCEPTIONS
4.3.2.Far CALL and RET Operation
When executing a far call, the processor performs these actions (refer to Figure 4-2):
1.Pushes current value of the CS register on the stack.
2.Pushes the current value of the EIP register on the stack.
3.Loads the segment selector of the segment that contains the called procedure in the CS
register.
4.Loads the offset of the called procedure in the EIP register.
5.Begins execution of the called procedure.
Figure 4-2.  Stack on Near and Far Calls
Param 1
Param 2
ESP Before Call
Stack During
Near Call
Stack During
Far Call
Calling CS
Param 1
Param 2
Calling EIP
Param 3
Param 3
ESP After Return
Calling CS
Param 1
Param 2
Calling EIP
Param 3
Param 1
Param 2
Param 3
Note: On a near or far return, parameters are
Calling EIP
ESP After Call
Stack During
Near Return
Calling EIP
released from the stack if the correct
value is given for the n operand in
the RET n instruction.
ESP Before Return
ESP Before Call
ESP After Call
ESP Before Return
ESP After Return
Stack During
Far Return
Stack
Frame
Before
Call
Stack
Frame
Before
Call
Stack
Frame
After
Call
Stack
Frame
After
Call
<<<    Index    >>>