Описание процессора i8086 для программиста

Коды операций


Код команды

Команда

1-й байт

2-й байт

3–6-й байты



Шестн.

Двоичный

00

00000000

ModRegR/M

[disp8/16]

ADD r/m8, r8

01

00000001

ModRegR/M

[disp8/16]

ADD r/m16, r16

02

00000010

ModRegR/M

[disp8/16]

ADD r8, r/m8

03

00000011

ModRegR/M

[disp8/16]

ADD r16, r/m16

04

00000100

imm8

ADD AL, imm8

05

00000101

imm16

ADD AX, imm16

06

00000110

PUSH ES

07

00000111

POP ES

08

00001000

ModRegR/M

[disp8/16]

OR r/m8, r8

09

00001001

ModRegR/M

[disp8/16]

OR r/m16, r16

0A

00001010

ModRegR/M

[disp8/16]

OR r8, r/m8

0B

00001011

ModRegR/M

[disp8/16]

OR r16, r/m16

0C

00001100

imm8

OR AL, imm8

0D

00001101

imm16

OR AX, imm16

0E

00001110

PUSH CS

0F

00001111

не используется

10

00010000

ModRegR/M

[disp8/16]

ADC r/m8, r8

11

00010001

ModRegR/M

[disp8/16]

ADC r/m16, r16

12

00010010

ModRegR/M

[disp8/16]

ADC r8, r/m8

13

00010011

ModRegR/M

[disp8/16]

ADC r16, r/m16

14

00010100

imm8

ADC AL, imm8

15

00010101

imm16

ADC AX, imm16

16

00010110

PUSH SS

17

00010111

POP SS

18

00011000

ModRegR/M

[disp8/16]

SBB r/m8, r8

19

00011001

ModRegR/M

[disp8/16]

SBB r/m16, r16

1A

00011010

ModRegR/M

[disp8/16]

SBB r8, r/m8

1B

00011011

ModRegR/M

[disp8/16]

SBB r16, r/m16

1C

00011100

imm8

SBB AL, imm8

1D

00011101

imm16

SBB AX, imm16

1E

00011110

PUSH DS

1F

00011111

POP DS

20

00100000

ModRegR/M

[disp8/16]

AND r/m8, r8

21

00100001

ModRegR/M

[disp8/16]

AND r/m16, r16

22

00100010

ModRegR/M

[disp8/16]

AND r8, r/m8

23

00100011

ModRegR/M

[disp8/16]

AND r16, r/m16

24

00100100

imm8

AND AL, imm8

25

00100101

imm16

AND AX, imm16

26

00100110

ES:

27

00100111

DAA

28

00101000

ModRegR/M

[disp8/16]

SUB r/m8, r8

29

00101001

ModRegR/M

[disp8/16]

SUB r/m16, r16

2A

00101010

ModRegR/M

[disp8/16]

SUB r8, r/m8

2B

00101011

ModRegR/M

[disp8/16]

SUB r16, r/m16

2C

00101100

imm8

SUB AL, imm8

2D

00101101

imm16

SUB AX, imm16

2E

00101110

CS:

2F

00101111

DAS

30

00110000

ModRegR/M

[disp8/16]

XOR r/m8, r8

31

00110001

ModRegR/M

[disp8/16]

XOR r/m16, r16

32

00110010

ModRegR/M

[disp8/16]

XOR r8, r/m8

33

00110011

ModRegR/M

[disp8/16]

XOR r16, r/m16

34

00110100

imm8

XOR AL, imm8

35

00110101

imm16

XOR AX, imm16

36

00110110

SS:

37

00110111

AAA

38

00111000

ModRegR/M

[disp8/16]

CMP r/m8, r8

39

00111001

ModRegR/M

[disp8/16]

CMP r/m16, r16

3A

00111010

ModRegR/M

[disp8/16]

CMP r8, r/m8

3B

00111011

ModRegR/M

[disp8/16]

CMP r16, r/m16

3C

00111100

imm8

CMP AL, imm8

3D

00111101

imm16

CMP AX, imm16

3E

00111110

SS:

3F

00111111

AAS

40

01000000

INC AX

41

01000001

INC CX

42

01000010

INC DX

43

01000011

INC BX

44

01000100

INC SP

45

01000101

INC BP

46

01000110

INC SI

47

01000111

INC DI

48

01001000

DEC AX

49

01001001

DEC CX

4A

01001010

DEC DX

4B

01001011

DEC BX

4C

01001100

DEC SP

4D

01001101

DEC BP

4E

01001110

DEC SI

4F

01001111

DEC DI

50

01010000

PUSH AX

51

01010001

PUSH CX

52

01010010

PUSH DX

53

01010011

PUSH BX

54

01010100

PUSH SP

55

01010101

PUSH BP

56

01010110

PUSH SI

57

01010111

PUSH DI

58

01011000

POP AX

59

01011001

POP CX

5A

01011010

POP DX

5B

01011011

POP BX

5C

01011100

POP SP

5D

01011101

POP BP

5E

01011110

POP SI

5F

01011111

POP DI

60

/

6F

01100000

/

01101111

не используются

70

01110000

rel8

JO rel8

71

01110001

rel8

JNO rel8

72

01110010

rel8

JB rel8

JNAE rel8

JC rel8

73

01110011

rel8

JNB rel8

JAE rel8

JNC rel8

74

01110100

rel8

JE rel8

JZ rel8

75

01110101

rel8

JNE rel8

JNZ rel8

76

01110110

rel8

JBE rel8

JNA rel8

77

01110111

rel8

JNBE rel8

JA rel8

78

01111000

rel8

JS rel8

79

01111001

rel8

JNS rel8

7A

01111010

rel8

JP rel8

JPE rel8

7B

01111011

rel8

JNP rel8

JPO rel8

7C

01111100

rel8

JL rel8

JNGE rel8

7D

01111101

rel8

JNL rel8

JGE rel8

7E

01111110

rel8

JLE rel8

JNG rel8

7F

01111111

rel8

JNLE rel8

JG rel8

80

10000000

Mod000R/M

[disp8/16] imm8

ADD r/m8, imm8

Mod001R/M

[disp8/16] imm8

OR r/m8, imm8

Mod010R/M

[disp8/16] imm8

ADC r/m8, imm8

Mod011R/M

[disp8/16] imm8

SBB r/m8, imm8

Mod100R/M

[disp8/16] imm8

AND r/m8, imm8

Mod101R/M

[disp8/16] imm8

SUB r/m8, imm8

Mod110R/M

[disp8/16] imm8

XOR r/m8, imm8

Mod111R/M

[disp8/16] imm8

CMP r/m8, imm8

81

10000001

Mod000R/M

[disp8/16] imm8

ADD r/m16, imm16

Mod001R/M

[disp8/16] imm8

OR r/m16, imm16

Mod010R/M

[disp8/16] imm8

ADC r/m16, imm16

Mod011R/M

[disp8/16] imm8

SBB r/m16, imm16

Mod100R/M

[disp8/16] imm8

AND r/m16, imm16

Mod101R/M

[disp8/16] imm8

SUB r/m16, imm16

Mod110R/M

[disp8/16] imm8

XOR r/m16, imm16

Mod111R/M

[disp8/16] imm8

CMP r/m16, imm16

82

10000010

не используется

83

10000011

Mod000R/M

[disp8/16] imm8

ADD r/m16, imm8

xx001xxx

не используется

Mod010R/M

[disp8/16] imm8

ADC r/m16, imm8

Mod011R/M

[disp8/16] imm8

SBB r/m16, imm8

xx100xxx

не используется

Mod101R/M

[disp8/16] imm8

SUB r/m16, imm8

xx110xxx

не используется

xx111xxx

не используется

84

10000100

ModRegR/M

[disp8/16]

TEST r/m8, r8

85

10000101

ModRegR/M

[disp8/16]

TEST r/m16, r16

86

10000110

ModRegR/M

[disp8/16]

XCHG r/m8, r8

87

10000111

ModRegR/M

[disp8/16]

XCHG r/m16, r16

88

10001000

ModRegR/M

[disp8/16]

MOV r/m8, r8

89

10001001

ModRegR/M

[disp8/16]

MOV r/m16, r16

8A

10001010

ModRegR/M

[disp8/16]

MOV r8, r/m8

8B

10001011

ModRegR/M

[disp8/16]

MOV r16, r/m16

8C

10001100

Mod0SRR/M

[disp8/16]

MOV r/m16, Sreg

xx1xxxxx

не используется

8D

10001101

ModRegR/M

[disp8/16]

LEA r16, m

8E

10001110

Mod0SRR/M

[disp8/16]

MOV r/m16, Sreg

xx1xxxxx

не используется

8F

10001111

Mod000R/M

[disp8/16]

POP r/m16

xx001xxx

/

xx111xxx

не используется

90

10010000

NOP (XCHG AX, AX)

91

10010001

XCHG AX, CX

92

10010010

XCHG AX, DX

93

10010011

XCHG AX, BX

94

10010100

XCHG AX, SP

95

10010101

XCHG AX, BP

96

10010110

XCHG AX, SI

97

10010111

XCHG AX, DI

98

10011000

CBW

99

10011001

CWD

9A

10011010

ptr16:16

CALL ptr16:16

9B

10011011

WAIT

9C

10011100

PUSHF

9D

10011101

POPF

9E

10011110

SAHF

9F

10011111

LAHF

A0

10100000

m8

MOV AL, m8

A1

10100001

m16

MOV AX, m16

A2

10100010

m8

MOV m8, AL

A3

10100011

m16

MOV m16, AX

A4

10100100

MOVSB

A5

10100101

MOVSW

A6

10100110

CMPSB

A7

10100111

CMPSW

A8

10101000

imm8

TEST AL, imm8

A9

10101001

imm16

TEST AX, imm16

AA

10101010

STOSB

AB

10101011

STOSW

AC

10101100

LODSB

AD

10101101

LODSW

AE

10101110

SCASB

AF

10101111

SCASW

B0

10110000

imm8

MOV AL, imm8

B1

10110001

imm8

MOV CL, imm8

B2

10110010

imm8

MOV DL, imm8

B3

10110011

imm8

MOV BL, imm8

B4

10110100

imm8

MOV AH, imm8

B5

10110101

imm8

MOV CH, imm8

B6

10110110

imm8

MOV DH, imm8

B7

10110111

imm8

MOV BH, imm8

B8

10111000

imm16

MOV AX, imm16

B9

10111001

imm16

MOV CX, imm16

BA

10111010

imm16

MOV DX, imm16

BB

10111011

imm16

MOV BX, imm16

BC

10111100

imm16

MOV SP, imm16

BD

10111101

imm16

MOV BP, imm16

BE

10111110

imm16

MOV SI, imm16

BF

10111111

imm16

MOV DI, imm16

C0

11000000

не используется

C1

11000001

не используется

C2

11000010

imm16

RET imm16 (ближний)

C3

11000011

RET

(ближний)

C4

11000100

ModRegR/M

[disp8/16]

LES r16, m16:16

C5

11000101

ModRegR/M

[disp8/16]

LDS r16, m16:16

C6

11000110

Mod000R/M

[disp8/16] imm8

MOV m8, imm8

xx001xxx

/

xx111xxx

не используется

C7

11000111

Mod000R/M

[disp8/16] imm16

MOV m16, imm16

xx001xxx

/

xx111xxx

не используется

C8

11001000

не используется

C9

11001001

не используется

CA

11001010

imm16

RET imm16 (дальний)

CB

11001011

RET (дальний)

CC

11001100

INT 3

CD

11001101

imm8

INT imm8

CE

11001110

INTO

CF

11001111

IRET

D0

11010000

Mod000R/M

[disp8/16]

ROL r/m8, 1

Mod001R/M

[disp8/16]

ROR r/m8, 1

Mod010R/M

[disp8/16]

RCL r/m8, 1

Mod011R/M

[disp8/16]

RCR r/m8, 1

Mod100R/M

[disp8/16]

SAL r/m8, 1

SHL r/m8, 1

Mod101R/M

[disp8/16]

SHR r/m8, 1

xx110xxx

не используется

Mod111R/M

[disp8/16]

SAR r/m8, 1

D1

11010001

Mod000R/M

[disp8/16]

ROL r/m16, 1

Mod001R/M

[disp8/16]

ROR r/m16, 1

Mod010R/M

[disp8/16]

RCL r/m16, 1

Mod011R/M

[disp8/16]

RCR r/m16, 1

Mod100R/M

[disp8/16]

SAL r/m16, 1

SHL r/m16, 1

Mod101R/M

[disp8/16]

SHR r/m16, 1

xx110xxx

не используется

Mod111R/M

[disp8/16]

SAR r/m16, 1

D2

11010010

Mod000R/M

[disp8/16]

ROL r/m8, CL

Mod001R/M

[disp8/16]

ROR r/m8, CL

Mod010R/M

[disp8/16]

RCL r/m8, CL

Mod011R/M

[disp8/16]

RCR r/m8, CL

Mod100R/M

[disp8/16]

SAL r/m8, CL

SHL r/m8, CL

Mod101R/M

[disp8/16]

SHR r/m8, CL

xx110xxx

не используется

Mod111R/M

[disp8/16]

SAR r/m8, CL

D3

11010011

Mod000R/M

[disp8/16]

ROL r/m16, CL

Mod001R/M

[disp8/16]

ROR r/m16, CL

Mod010R/M

[disp8/16]

RCL r/m16, CL

Mod011R/M

[disp8/16]

RCR r/m16, CL

Mod100R/M

[disp8/16]

SAL r/m16, CL

SHL r/m16, CL

Mod101R/M

[disp8/16]

SHR r/m16, CL

xx110xxx

не используется

Mod111R/M

[disp8/16]

SAR r/m16, CL

D4

11010100

AAM

D5

11010101

AAD

D6

11010110

не используется

D7

11010111

XLATB

D8

/

DF

11011xxx

ModRegR/M

[disp8/16]

ESC

E0

11100000

rel8

LOOPNE rel8

LOOPNZ rel8

E1

11100001

rel8

LOOPE rel8

LOOPZ rel8

E2

11100010

rel8

LOOP rel8

E3

11100011

rel8

JCXZ rel8

E4

11100100

imm8

IN AL, imm8

E5

11100101

imm8

IN AX, imm8

E6

11100110

imm8

OUT AL, imm8

E7

11100111

imm8

OUT AX, imm8

E8

11101000

rel16

CALL rel16

E9

11101001

rel16

JMP rel16

EA

11101010

ptr16:16

JMP ptr16:16

EB

11101011

rel8

JMP rel8

EC

11101100

IN AL, DX

ED

11101101

IN AX, DX

EE

11101110

OUT AL, DX

EF

11101111

OUT AX, DX

F0

11110000

LOCK

F1

11110001

не используется

F2

11110010

REPNE

REPNZ

F3

11110011

REP

REPE

REPZ

F4

11110100

HLT

F5

11110101

CMC

F6

11110110

Mod000R/M

[disp8/16] imm8

TEST r/m8, imm8

xx001xxx

не используется

Mod010R/M

[disp8/16]

NOT r/m8

Mod011R/M

[disp8/16]

NEG r/m8

Mod100R/M

[disp8/16]

MUL r/m8

Mod101R/M

[disp8/16]

IMUL r/m8

Mod110R/M

[disp8/16]

DIV r/m8

Mod111R/M

[disp8/16]

IDIV r/m8

F7

11110111

Mod000R/M

[disp8/16] imm8

TEST r/m16, imm16

xx001xxx

не используется

Mod010R/M

[disp8/16]

NOT r/m16

Mod011R/M

[disp8/16]

NEG r/m16

Mod100R/M

[disp8/16]

MUL r/m16

Mod101R/M

[disp8/16]

IMUL r/m16

Mod110R/M

[disp8/16]

DIV r/m16

Mod111R/M

[disp8/16]

IDIV r/m16

F8

11111000

CLC

F9

11111001

STC

FA

11111010

CLI

FB

11111011

STI

FC

11111100

CLD

FD

11111101

STD

FE

11111110

Mod000R/M

[disp8/16]

INC r/m8

Mod001R/M

[disp8/16]

DEC r/m8

xx010xxx

/

xx111xxx

не используется

FF

11111111

Mod000R/M

[disp8/16]

INC r/m16

Mod001R/M

[disp8/16]

DEC r/m16

Mod010R/M

[disp8/16]

CALL r/m16

Mod011R/M

[disp8/16]

CALL m16:16

Mod100R/M

[disp8/16]

JMP r/m16

Mod101R/M

[disp8/16]

JMP m16:16

Mod110R/M

[disp8/16]

PUSH r/m16

xx111xxx

не используется



Содержание раздела