Build_Int_Stack_Frame

include vmm.inc

mov cx, Segment ; code segment of routine to call

mov edx, Offset ; offset of routine to call

VMMcall Build_Int_Stack_Frame


The Build_Int_Stack_Frame service prepares the current virtual machine to execute an interrupt routine. This service saves the current Client_CS, Client_IP, and Client_Flags registers on the virtual machine's stack and sets the Client_CS and Client_IP registers to the address of the interrupt routine specified by the Segment and Offset parameters. When execution resumes in the virtual machine (such as when the Resume_Exec service is called), the virtual machine executes the interrupt routine. The interrupt routine continues to run until it executes an iret instruction.

Parameters

Segment

Specifies the segment address, or segment selector for the code segment containing the interrupt routine.

Offset

Specifies the offset of interrupt routine. If the specified code segment is a 16-bit segment, the high word of this parameter must be 0.

Return Value

This service has no return value.

Example

The following example executes the interrupt routine in the code segment specified by My_Segment at the offset My_Offset:

VMMcall Begin_Nest_Exec

mov cx, [My_Segment]

mov edx, [My_Offset]

VMMcall Build_Int_Stack_Frame

VMMcall Resume_Exec

VMMcall End_Nest_Exec

Uses

Client_CS, Client_EIP, Client_ESP, Client_Flags, Flags

See Also

Simulate_Far_Call