- •5.1 Overview
- •5.2 Conventions
- •5.3 VMX Instructions
- •A.1 Using Opcode Tables
- •A.2 Key to Abbreviations
- •A.2.1 Codes for Addressing Method
- •A.2.2 Codes for Operand Type
- •A.2.3 Register Codes
- •A.2.4 Opcode Look-up Examples for One, Two, and Three-Byte Opcodes
- •A.2.4.1 One-Byte Opcode Instructions
- •A.2.4.2 Two-Byte Opcode Instructions
- •A.2.4.3 Three-Byte Opcode Instructions
- •A.2.5 Superscripts Utilized in Opcode Tables
- •A.3 One, Two, and THREE-Byte Opcode Maps
- •A.4 Opcode Extensions For One-Byte And Two-byte Opcodes
- •A.4.1 Opcode Look-up Examples Using Opcode Extensions
- •A.4.2 Opcode Extension Tables
- •A.5 Escape Opcode Instructions
- •A.5.1 Opcode Look-up Examples for Escape Instruction Opcodes
- •A.5.2 Escape Opcode Instruction Tables
- •A.5.2.1 Escape Opcodes with D8 as First Byte
- •A.5.2.2 Escape Opcodes with D9 as First Byte
- •A.5.2.3 Escape Opcodes with DA as First Byte
- •A.5.2.4 Escape Opcodes with DB as First Byte
- •A.5.2.5 Escape Opcodes with DC as First Byte
- •A.5.2.6 Escape Opcodes with DD as First Byte
- •A.5.2.7 Escape Opcodes with DE as First Byte
- •A.5.2.8 Escape Opcodes with DF As First Byte
- •Appendix B Instruction Formats and Encodings
- •B.1 Machine Instruction Format
- •B.1.1 Legacy Prefixes
- •B.1.2 REX Prefixes
- •B.1.3 Opcode Fields
- •B.1.4 Special Fields
- •B.1.4.1 Reg Field (reg) for Non-64-Bit Modes
- •B.1.4.2 Reg Field (reg) for 64-Bit Mode
- •B.1.4.3 Encoding of Operand Size (w) Bit
- •B.1.4.4 Sign-Extend (s) Bit
- •B.1.4.5 Segment Register (sreg) Field
- •B.1.4.6 Special-Purpose Register (eee) Field
- •B.1.4.7 Condition Test (tttn) Field
- •B.1.4.8 Direction (d) Bit
- •B.1.5 Other Notes
- •B.2 General-Purpose Instruction Formats and Encodings for Non-64-Bit Modes
- •B.2.1 General Purpose Instruction Formats and Encodings for 64-Bit Mode
- •B.3 Pentium® Processor Family Instruction Formats and Encodings
- •B.4 64-bit Mode Instruction Encodings for SIMD Instruction Extensions
- •B.5 MMX Instruction Formats and Encodings
- •B.5.1 Granularity Field (gg)
- •B.5.2 MMX Technology and General-Purpose Register Fields (mmxreg and reg)
- •B.5.3 MMX Instruction Formats and Encodings Table
- •B.6 P6 Family INstruction Formats and Encodings
- •B.7 SSE Instruction Formats and Encodings
- •B.8 SSE2 Instruction Formats and Encodings
- •B.8.1 Granularity Field (gg)
- •B.9 SSE3 Formats and Encodings Table
- •B.10 SSSE3 Formats and Encoding Table
- •B.11 Special Encodings for 64-Bit Mode
- •B.12 Floating-Point Instruction Formats and Encodings
- •B.13 VMX Instructions
- •Appendix C InteL® C/C++ Compiler Intrinsics and Functional Equivalents
- •C.1 Simple Intrinsics
- •Intel Sales Offices
- •Index for Volumes 2A & 2B
INSTRUCTION FORMATS AND ENCODINGS
B.13 VMX INSTRUCTIONS
Table B-35 describes virtual-machine extensions (VMX).
Table B-35. Encodings for VMX Instructions
Instruction and Format |
|
Encoding |
|
|
|
VMCALL—Call to VM Monitor |
|
|
|
|
|
Call VMM: causes VM exit. |
00001111 |
00000001 11000001 |
|
|
|
VMCLEAR—Clear Virtual-Machine Control |
|
|
Structure |
|
|
|
|
|
mem32:VMCS_data_ptr |
01100110 |
00001111 11000111: mod 110 r/m |
|
|
|
mem64:VMCS_data_ptr |
01100110 |
00001111 11000111: mod 110 r/m |
|
|
|
VMLAUNCH—Launch Virtual Machine |
|
|
|
|
|
Launch VM managed by Current_VMCS |
00001111 |
00000001 11000010 |
|
|
|
VMRESUME—Resume Virtual Machine |
|
|
|
|
|
Resume VM managed by Current_VMCS |
00001111 |
00000001 11000011 |
|
|
|
VMPTRLD—Load Pointer to Virtual- |
|
|
Machine Control Structure |
|
|
|
|
|
mem32 to Current_VMCS_ptr |
00001111 |
11000111: mod 110 r/m |
|
|
|
mem64 to Current_VMCS_ptr |
00001111 |
11000111: mod 110 r/m |
|
|
|
VMPTRST—Store Pointer to Virtual- |
|
|
Machine Control Structure |
|
|
|
|
|
Current_VMCS_ptr to mem32 |
00001111 |
11000111: mod 111 r/m |
|
|
|
Current_VMCS_ptr to mem64 |
00001111 |
11000111: mod 111 r/m |
|
|
|
VMREAD—Read Field from Virtual- |
|
|
Machine Control Structure |
|
|
|
|
|
r32 (VMCS_fieldn) to r32 |
00001111 |
01111000: 11 reg2 reg1 |
r32 (VMCS_fieldn) to mem32 |
00001111 |
01111000: mod r32 r/m |
r64 (VMCS_fieldn) to r64 |
00001111 |
01111000: 11 reg2 reg1 |
r64 (VMCS_fieldn) to mem64 |
00001111 |
01111000: mod r64 r/m |
|
|
|
VMWRITE—Write Field to Virtual-Machine |
|
|
Control Structure |
|
|
|
|
|
r32 to r32 (VMCS_fieldn) |
00001111 |
01111001: 11 reg1 reg2 |
mem32 to r32 (VMCS_fieldn) |
00001111 |
01111001: mod r32 r/m |
r64 to r64 (VMCS_fieldn) |
00001111 |
01111001: 11 reg1 reg2 |
mem64 to r64 (VMCS_fieldn) |
00001111 |
01111001: mod r64 r/m |
|
|
|
B-102 Vol. 2B
|
INSTRUCTION FORMATS AND ENCODINGS |
Table B-35. Encodings for VMX Instructions |
|
|
|
Instruction and Format |
Encoding |
|
|
VMXOFF—Leave VMX Operation |
|
|
|
Leave VMX. |
00001111 00000001 11000100 |
|
|
VMXON—Enter VMX Operation |
|
|
|
Enter VMX. |
11110011 000011111 11000111: mod 110 r/m |
|
|
Vol. 2B B-103
INSTRUCTION FORMATS AND ENCODINGS
B-104 Vol. 2B