This preview shows page 1. Sign up to view the full content.
Unformatted text preview: n operand. Writes a component to the VMCS (the encoding of that field is given in a register operand) from a source operand. Allows a guest in VMX non-root operation to call the VMM for service. A VM exit occurs, transferring control to the VMM. Launches a virtual machine managed by the VMCS. A VM entry occurs, transferring control to the VM. Resumes a virtual machine managed by the VMCS. A VM entry occurs, transferring control to the VM. Causes the processor to leave VMX operation. Takes a single 64-bit source operand in memory. It causes a logical processor to enter VMX root operation and to use the memory referenced by the operand to support VMX operation. VMWRITE The behavior of the VMX management instructions is summarized below: VMCALL VMLAUNCH VMRESUME VMXOFF VMXON 5-32 Vol. 1 CHAPTER 6 PROCEDURE CALLS, INTERRUPTS, AND EXCEPTIONS
This chapter describes the facilities in the Intel 64 and IA-32 architectures for executing calls to procedures or subroutines. It also describes how interrupts and exceptions are handled from the perspective of an application programmer. 6.1 PROCEDURE CALL TYPES The processor supports procedure calls in the following two different ways: CALL and RET instructions. ENTER and LEAVE instructions, in conjunction with the CALL and RET instructions. Both of these procedure call mechanisms use the procedure stack, commonly referred to simply as "the stack," to save the state of the calling procedure, pass parameters to the called procedure, and store local variables for the currently executing procedure. The processor's facilities for handling interrupts and exceptions are similar to those used by the CALL and RET instructions. 6.2 STACKS The stack (see Figure 6-1) is a contiguous array of memory locations. It is contained in a segment and identified by the segment selector in the SS register. When using the flat memory model, the stack can be located anywhere in the linear address space for the program. A stack can be up to 4 GBytes long, the maximum size of a segment. Items are placed on the stack using the PUSH instruction and removed from the stack using the POP instruction. When an item is pushed onto the stack, the processor decrements the ESP register, then writes the item at the new top of stack. When an item is popped off the stack, the processor reads the item from the top of stack, then increments the ESP register. In this manner, the stack grows down in memory (towards lesser addresses) when items are pushed on the stack and shrinks up (towards greater addresses) when the items are popped from the stack. A program or operating system/executive can set up many stacks. For example, in multitasking systems, each task can be given its own stack. The number of stacks in a system is limited by the maximum number of segments and the available physical memory. Vol. 1 6-1 PROCEDURE CALLS, INTERRUPTS, AND EXCEPTIONS When a system sets up many stacks, only one stack--the current stack--is available at a time. Th...
View Full Document
- Winter '11