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
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. Uses Client_CS, Client_EIP, Client_ESP, Client_Flags, Flags.
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
Simulate_Far_Call