Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб2012 / 319433-011.pdf
Скачиваний:
27
Добавлен:
02.02.2015
Размер:
2.31 Mб
Скачать

OPCODE MAP

B.4 OPCODE EXTENSIONS FOR ONE-BYTE AND TWOBYTE OPCODES

Some 1-byte and 2-byte opcodes use bits 3-5 of the ModR/M byte (the nnn field in Figure B-1) as an extension of the opcode.

mod

nnn

R/M

 

 

 

Figure B-1. ModR/M Byte nnn Field (Bits 5, 4, and 3)

Opcodes that have opcode extensions are indicated in Table B-6 and organized by group number. Group numbers (from 1 to 16, second column) provide a table entry point. The encoding for the r/m field for each instruction can be established using the third column of the table.

B.4.1 Opcode Look-up Examples Using Opcode Extensions

An Example is provided below.

Example B-4. Interpreting an ADD Instruction

An ADD instruction with a 1-byte opcode of 80H is a Group 1 instruction:

Table B-6 indicates that the opcode extension field encoded in the ModR/M byte for this instruction is 000B.

The r/m field can be encoded to access a register (11B) or a memory address using a specified addressing mode (for example: mem = 00B, 01B, 10B).

Example B-5. Looking Up 0F01C3H

Look up opcode 0F01C3 for a VMRESUME instruction by using Table B-2, Table B-3 and Table B-6:

0F tells us that this instruction is in the 2-byte opcode map.

01 (row 0, column 1 in Table B-3) reveals that this opcode is in Group 7 of Table B-6.

C3 is the ModR/M byte. The first two bits of C3 are 11B. This tells us to look at the second of the Group 7 rows in Table B-6.

The Op/Reg bits [5,4,3] are 000B. This tells us to look in the 000 column for Group 7.

Finally, the R/M bits [2,1,0] are 011B. This identifies the opcode as the VMRESUME instruction.

B-20

Ref. # 319433-011

 

OPCODE MAP

B.4.2 Opcode Extension Tables

See Table B-6 below.

Table B-6. Opcode Extensions for Oneand Two-byte Opcodes by Group Number *

 

 

 

 

Encoding of Bits 5,4,3 of the ModR/M Byte (bits 2,1,0 in parenthesis)

Opcode

Group

Mod 7,6

pfx

 

 

 

 

 

 

 

 

000

001

010

011

100

101

110

111

80-83

1

mem,

 

ADD

OR

ADC

SBB

AND

SUB

XOR

CMP

11B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8F

1A

mem,

 

POP

 

 

 

 

 

 

 

11B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C0,C1 reg, imm

 

mem,

 

ROL

ROR

RCL

RCR

SHL/SAL

SHR

 

SAR

D0, D1 reg, 1

2

11B

 

 

 

 

 

 

 

 

 

D2, D3 reg, CL

 

 

 

 

 

 

 

 

 

 

 

F6, F7

3

mem,

 

TEST

 

NOT

NEG

MUL

IMUL

DIV

IDIV

11B

 

Ib/Iz

 

 

 

AL/rAX

AL/rAX

AL/rAX

AL/rAX

 

 

 

 

 

 

FE

4

mem,

 

INC

DEC

 

 

 

 

 

 

11B

 

Eb

Eb

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FF

5

mem,

 

INC

DEC

CALLNf64

CALLF

JMPNf64

JMPF

PUSHd64

 

11B

 

Ev

Ev

Ev

Ep

Ev

Mp

Ev

 

 

 

 

 

0F 00

6

mem,

 

SLDT

STR

LLDT

LTR

VERR

VERW

 

 

11B

 

Rv/Mw

Rv/Mw

Ew

Ew

Ew

Ew

 

 

 

 

 

 

 

 

 

mem

 

SGDT

SIDT

LGDT

LIDT

SMSW

 

LMSW

INVLPG

 

 

 

 

Ms

Ms

Ms

Ms

Mw/Rv

 

Ew

Mb

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11B

 

VMCALL (001)

MONITOR

XGETBV

 

 

 

 

SWAPGS

0F 01

7

 

 

VMLAUNCH

(000)

(000)

 

 

 

 

o64(000)

 

 

(010)

MWAIT (001)

XSETBV

 

 

 

 

RDTSCP (001)

 

 

 

 

VMRESUME

 

(001)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(011)

 

 

 

 

 

 

 

 

 

 

 

VMXOFF

 

 

 

 

 

 

 

 

 

 

 

(100)

 

 

 

 

 

 

 

0F BA

8

mem,

 

 

 

 

 

BT

BTS

BTR

BTC

11B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CMPXCH8B

 

 

 

 

VMPTRLD

VMPTRST

 

 

 

 

 

Mq

 

 

 

 

Mq

Mq

 

 

 

 

 

CMPXCHG16B

 

 

 

 

 

 

 

 

mem

 

 

Mdq

 

 

 

 

 

 

0F C7

9

66

 

 

 

 

 

 

VMCLEAR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Mq

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F3

 

 

 

 

 

 

VMXON

VMPTRST

 

 

 

 

 

 

 

 

 

 

Mq

Mq

 

 

11B

 

 

 

 

 

 

 

RDRAND

 

 

 

 

 

 

 

 

 

 

Rv

 

 

 

 

 

 

 

 

 

 

 

 

0F B9

10

mem

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C6

 

mem,

 

MOV

 

 

 

 

 

 

 

 

11B

 

Eb, Ib

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

C7

mem

 

MOV

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ev, Iz

 

 

 

 

 

 

 

 

11B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ref. # 319433-011

B-21

 

OPCODE MAP

Table B-6. Opcode Extensions for Oneand Two-byte Opcodes by Group Number *

 

 

 

 

Encoding of Bits 5,4,3 of the ModR/M Byte (bits 2,1,0 in parenthesis)

Opcode

Group

Mod 7,6

pfx

 

 

 

 

 

 

 

 

000

001

010

011

100

101

110

111

 

 

mem

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

psrlw

 

psraw

 

psllw

 

0F 71

12

11B

 

 

 

Nq, Ib

 

Nq, Ib

 

Nq, Ib

 

 

 

 

 

 

 

 

 

 

 

 

 

 

66

 

 

vpsrlw

 

vpsraw

 

vpsllw

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hx,Ux,Ib

 

Hx,Ux,Ib

 

Hx,Ux,Ib

 

 

 

mem

 

 

 

 

 

 

 

 

 

0F 72

13

 

 

 

 

psrld

 

psrad

 

pslld

 

11B

 

 

 

Nq, Ib

 

Nq, Ib

 

Nq, Ib

 

 

 

 

 

 

 

 

 

 

 

 

 

 

66

 

 

vpsrld

 

vpsrad

 

vpslld

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hx,Ux,Ib

 

Hx,Ux,Ib

 

Hx,Ux,Ib

 

 

 

mem

 

 

 

 

 

 

 

 

 

0F 73

14

 

 

 

 

psrlq

 

 

 

psllq

 

11B

 

 

 

Nq, Ib

 

 

 

Nq, Ib

 

 

 

66

 

 

vpsrlq

vpsrldq

 

 

vpsllq

vpslldq

 

 

 

 

 

 

 

 

 

 

 

 

 

Hx,Ux,Ib

Hx,Ux,Ib

 

 

Hx,Ux,Ib

Hx,Ux,Ib

 

 

mem

 

fxsave

fxrstor

ldmxcsr

stmxcsr

XSAVE

XRSTOR XSAVEOPT

clflush

0F AE

15

 

 

 

 

 

 

 

lfence

mfence

sfence

11B

 

 

 

 

 

 

 

 

 

 

 

F3

RDFSBASE RDGSBASE WRFSBASE WRGSBASE

 

 

 

 

 

 

 

 

Ry

Ry

Ry

Ry

 

 

 

 

 

 

mem

 

prefetch

prefetch

prefetch

prefetch

 

 

 

 

0F 18

16

 

NTA

T0

T1

T2

 

 

 

 

 

 

 

 

 

 

 

 

11B

 

 

 

 

 

 

 

 

 

VEX.0F38 F3

17

mem

F3

 

BLSRv

BLSMSKv

BLSIv

 

 

 

 

11B

F3

 

By, Ey

By, Ey

By, Ey

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NOTES:

*All blanks in all opcode maps are reserved and must not be used. Do not depend on the operation of undefined or reserved locations.

B-22

Ref. # 319433-011

 

Соседние файлы в папке Лаб2012