- •1.4. NOTATIONAL CONVENTIONS
- •1.4.1. Bit and Byte Order
- •1.4.2. Reserved Bits and Software Compatibility
- •1.4.3. Instruction Operands
- •1.4.4. Hexadecimal and Binary Numbers
- •1.4.5. Segmented Addressing
- •1.4.6. Exceptions
- •1.5. RELATED LITERATURE
- •2.1. GENERAL INSTRUCTION FORMAT
- •2.2. INSTRUCTION PREFIXES
- •2.3. OPCODE
- •2.4. MODR/M AND SIB BYTES
- •2.5. DISPLACEMENT AND IMMEDIATE BYTES
- •3.1. INTERPRETING THE INSTRUCTION REFERENCE PAGES
- •3.1.1. Instruction Format
- •3.1.1.1. OPCODE COLUMN
- •3.1.1.2. INSTRUCTION COLUMN
- •3.1.1.3. DESCRIPTION COLUMN
- •3.1.1.4. DESCRIPTION
- •3.1.2. Operation
- •3.1.3. Flags Affected
- •3.1.4. FPU Flags Affected
- •3.1.5. Protected Mode Exceptions
- •3.2. INSTRUCTION REFERENCE
- •A.1. KEY TO ABBREVIATIONS
- •A.1.1. Codes for Addressing Method
- •A.1.2. Codes for Operand Type
- •A.1.3. Register Codes
- •A.2. ONE-BYTE OPCODE INTEGER INSTRUCTIONS
- •A.3. TWO-BYTE OPCODE INTEGER INSTRUCTIONS
- •A.5. ESCAPE OPCODE INSTRUCTIONS
- •A.5.1. Escape Opcodes with D8 as First Byte
- •A.5.2. Escape Opcodes with D9 as First Byte
- •A.5.3. Escape Opcodes with DA as First Byte
- •A.5.4. Escape Opcodes with DB as First Byte
- •A.5.5. Escape Opcodes with DC as First Byte
- •A.5.6. Escape Opcodes with DD as First Byte
- •A.5.7. Escape Opcodes with DE as First Byte
- •A.5.8. Escape Opcodes with DF As First Byte
- •B.1. MACHINE INSTRUCTION FORMAT
- •B.1.1. Reg Field (reg)
- •B.1.2. Encoding of Operand Size Bit (w)
- •B.1.3. Sign Extend (s) Bit
- •B.1.4. Segment Register Field (sreg)
- •B.1.5. Special-Purpose Register (eee) Field
- •B.1.6. Condition Test Field (tttn)
- •B.1.7. Direction (d) Bit
- •B.2. INTEGER INSTRUCTION FORMATS AND ENCODINGS
- •B.3. MMX™ INSTRUCTION FORMATS AND ENCODINGS
- •B.3.1. Granularity Field (gg)
- •B.3.3. MMX™ Instruction Formats and Encodings Table
- •B.4. FLOATING-POINT INSTRUCTION FORMATS AND ENCODINGS
- •INDEX
OPCODE MAP
A.5.7. Escape Opcodes with DE as First Byte
Tables A-6 and A-13 contain the opcodes maps for the escape instruction opcodes that begin with DEH. Table A-6 shows the opcode map if the accompanying ModR/M byte within the range of 00H through BFH. Here, the value of bits 5, 4, and 3 (the nnn field in Figure A-1) selects the instruction.
Table A-16. DE Opcode Map When ModR/M Byte is Within 00H to BFH1
nnn Field of ModR/M Byte (see Figure A-1)
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
|
|
|
|
|
|
|
|
FIADD |
FIMUL |
FICOM |
FICOMP |
FISUB |
FISUBR |
FIDIV |
FIDIVR |
word-integer |
word-integer |
word-integer |
word-integer |
word-integer |
word-integer |
word-integer |
word-integer |
|
|
|
|
|
|
|
|
NOTE:
1.All blanks in the opcode map are reserved and should not be used. Do not depend on the operation of these undefined opcodes.
Table A-13 shows the opcode map if the accompanying ModR/M byte is outside the range of 00H to BFH. In this case the first digit of the ModR/M byte selects the row in the table and the second digit selects the column.
A-22
OPCODE MAP
Table A-17. DE Opcode Map When ModR/M Byte is Outside 00H to BFH1
|
0 |
1 |
2 |
3 |
4 |
5 |
|
7 |
|
|
|
|
|
|
|
|
|
C |
|
|
|
FADDP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(0),ST(0) |
ST(1),ST(0) |
ST(2),ST(0) |
ST(3),ST(0) |
ST(4),ST(0) |
ST(5),ST(0) |
ST(6),ST(0) |
ST(7),ST(0) |
|
|
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
|
|
|
FSUBRP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(0),ST(0) |
ST(1),ST(0) |
ST(2),ST(0) |
ST(3),ST(0) |
ST(4),ST(0) |
ST(5),ST(0) |
ST(6),ST(0) |
ST(7),ST(0) |
|
|
|
|
|
|
|
|
|
F |
|
|
|
FDIVRP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(0),ST(0) |
ST(1),ST(0) |
ST(2),ST(0) |
ST(3),ST(0) |
ST(4),ST(0) |
ST(5),ST(0) |
ST(6),ST(0) |
ST(7),ST(0) |
|
|
|
|
|
|
|
|
|
|
8 |
9 |
A |
B |
C |
D |
E |
F |
|
|
|
|
|
|
|
|
|
C |
|
|
|
FMULP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(0),ST(0) |
ST(1),ST(0) |
ST(2),ST(0) |
ST(3),ST(0) |
ST(4),ST(0) |
ST(5),ST(0) |
ST(6),ST(0) |
ST(7),ST(0) |
|
|
|
|
|
|
|
|
|
D |
|
FCOMPP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
|
|
|
FSUBP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(0),ST(0) |
ST(1),ST(0) |
ST(2),ST(0) |
ST(3),ST(0) |
ST(4),ST(0) |
ST(5),ST(0) |
ST(6),ST(0) |
ST(7),ST(0) |
|
|
|
|
|
|
|
|
|
F |
|
|
|
FDIVP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(0),ST(0) |
ST(1),ST(0) |
ST(2),ST(0). |
ST(3),ST(0) |
ST(4),ST(0) |
ST(5),ST(0) |
ST(6),ST(0) |
ST(7),ST(0) |
|
|
|
|
|
|
|
|
|
NOTE:
1.All blanks in the opcode map are reserved and should not be used. Do not depend on the operation of these undefined opcodes.
A-23
OPCODE MAP
A.5.8. Escape Opcodes with DF As First Byte
Tables A-6 and A-13 contain the opcodes maps for the escape instruction opcodes that begin with DFH. Table A-6 shows the opcode map if the accompanying ModR/M byte within the range of 00H through BFH. Here, the value of bits 5, 4, and 3 (the nnn field in Figure A-1) selects the instruction.
Table A-18. DF Opcode Map When ModR/M Byte is Within 00H to BFH1
nnn Field of ModR/M Byte (see Figure A-1)
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
|
|
|
|
|
|
|
|
FILD |
|
FIST |
FISTP |
FBLD |
FILD |
FBSTP |
FISTP |
word-integer |
|
word-integer |
word-integer |
packed-BCD |
long-integer |
packed-BCD |
long-integer |
|
|
|
|
|
|
|
|
NOTE:
1.All blanks in the opcode map are reserved and should not be used. Do not depend on the operation of these undefined opcodes.
Table A-13 shows the opcode map if the accompanying ModR/M byte is outside the range of 00H to BFH. In this case the first digit of the ModR/M byte selects the row in the table and the second digit selects the column.
A-24
|
|
|
|
|
|
|
OPCODE MAP |
|
|
Table A-19. DF Opcode Map When ModR/M Byte is Outside 00H to BFH1 |
|||||||
|
0 |
1 |
2 |
3 |
4 |
5 |
|
7 |
|
|
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
FSTSW |
|
|
|
|
|
|
|
|
AX |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
|
|
FCOMIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(0),ST(0) |
ST(0),ST(1) |
ST(0),ST(2) |
ST(0),ST(3) |
ST(0),ST(4) |
ST(0),ST(5) |
ST(0),ST(6) |
ST(0),ST(7) |
|
|
|
|
|
|
|
|
|
|
8 |
9 |
A |
B |
C |
D |
E |
F |
|
|
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
|
|
|
FUCOMIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ST(0),ST(0) |
ST(0),ST(1) |
ST(0),ST(2) |
ST(0),ST(3) |
ST(0),ST(4) |
ST(0),ST(5) |
ST(0),ST(6) |
ST(0),ST(7) |
|
|
|
|
|
|
|
|
|
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NOTE:
1.All blanks in the opcode map are reserved and should not be used. Do not depend on the operation of these undefined opcodes.
A-25
B
Instruction Formats
and Encodings