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.
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.
This service has no return value.
The following example executes the interrupt routine in the code segment specified by My_Segment at the offset My_Offset:
mov cx, [My_Segment]
mov edx, [My_Offset]
VMMcall Build_Int_Stack_Frame
Client_CS, Client_EIP, Client_ESP, Client_Flags, Flags