Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФОРМАТ КОМАНД.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
616 Кб
Скачать
☆

II. Команды обработки данных

1. Команды арифметических операций

КОП

Команда

Действие команды

Комментарии

Операции сложения

imm8 - знакорас-

ширяется до 16(32) бит

04 ib

ADD AL,imm8

AL+imm8  AL

05 iw(id)

ADD AX(EAX),imm16(32)

AX(EAX)+imm16(32)

AX(EAX)

80 /0 ib

ADD r/m8,imm8

r/m8+imm8  r/m8

81 /0 iw(id)

ADD r/m16(32),imm16(32)

r/m16(32)+imm16(32)→

r/m16(32)

83 /0 ib

ADD r/m16(32),imm8

r/m16(32)+imm8 

r/m16(32)

00 /r

ADD r/m8,r8

r8+r/m8  r/m8

01 /r

ADD r/m16(32),r16(32)

r16(32)+r/m16(32) 

r/m16(32)

02 /r

ADD r8,r/m8

r8+r/m8  r8

03 /r

ADD r16(32),r/m16(32)

r16(32)+r/m16(32) →

r16(32)

Сложение с переносом

imm8-знакорасши-

ряется до 16(32)бит

14 ib

ADC AL,imm8

AL+imm8+CF  AL

15 iw(id)

ADC AX(EAX),imm16(32)

AX(EAX)+imm16(32)+CF  AX(EAX)

80 /2 ib

ADC r/m8,imm8

r/m8+imm8+CF  r/m8

81 /2 iw(id)

ADC r/m16(32),imm16(32)

r/m16(32)+imm16(32)+CF

 r/m16(32)

83 /2 ib

ADC r/m16(32),imm8

r/m16(32)+imm8+CF 

 r/m16(32)

10 /r

ADC r/m8,r8

r/m8+r8+CF  r/m8

11 /r

ADC r/m16(32),r16(32)

r/m16(32)+r16(32)+CF 

 r/m16(32)

12 /r

ADC r8,r/m8

r8+r/m8+CF  r8

13 /r

ADC r16(32),r/m16(32)

r16(32)+r/m16(32)+CF 

 r16(32)

Операции вычитания

imm8-знакорас-

ширяется до

16(32) бит

2C ib

SUB AL,imm8

AL- imm8AL

2D iw(id)

SUB AX(EAX),imm16(32)

AX(EAX) - imm16(32)

AX(EAX)

80 /5 ib

SUB r/m8,imm8

r/m8-imm8r/m8

81 /5 iw(id)

SUB r/m16(32),imm16(32)

r/m16(32)-imm16(32)

r/m16(32)

83 /5 ib

SUB r/m16(32),imm8

r/m16(32)-imm8 r/m16(32)

28 /r

SUB r/m8,r8

r/m8-r8  r/m8

29 /r

SUB r/m16(32),r16(32)

r/m16(32)-r16(32) 

 r/m16(32)

2A /r

SUBr8,r/m8

r8-r/m8  r8

2B /r

SUB r16(32),r/m16(32)

r16(32)-r/m16(32) →r16(32)

Вычитание с заемом

imm-знакорасши-

ряется до

16(32) бит

1С ib

SBB AL,imm8

AL-imm8-CF  AL

1D iw(id)

SBB AX(EAX),imm16(32)

AX(EAX)-imm16(32) -

- CF  AX(EAX)

80 /3 ib

SBB r/m8,imm8

r/m8-imm8-CF  r/m8

81 /3 iw(id)

SBB r/m16(32),imm16(32)

r/m16(32)-imm16(32)-CF  r/m16(32)

83 /3 ib

SBB r/m16(32),imm8

r/m16(32)-imm8-CF  r/m16(32)

18 /r

SBB r/m8,r8

r/m8-r8-CF  r/m8

19 /r

SBB r/m16(32),r16(32)

r/m16(32)-r16(32)-CF  r/m16(32)

1A /r

SBB r8,r/m8

r8-r/m8-CF  r8

1B /r

SBB r16(32),r/m16(32)

r16(32)-r/m16(32)-CF r16(32)

Операции инкремента и декремента

FE /0

INC r/m8

r/m8+1  r/m8

FF /0

INC r/m16(32)

r/m16(32)+1 r/m16(32)

40 +rw(rd)

INC r16(32)

r16(32)+1 r16(32)

FE /1

DEC r/m8

r/m8-1 r/m8

FF /1

DEC r/m16(32)

r/m16(32)-1 r/m16(32)

48 +rw(rd)

DEC r16(32)

r16(32)-1 r16(32)

Получение дополнительного кода числа (изменение знака числа)

F6 /3

NEG r/m8

- r/m8  r/m8

F7 /3

NEG r/m16(32)

- r/m16(32)  r/m16(32)

Преобразование длин слов

Флаги не опреде-

лены

98

CBW

sAL  AX

98

CWDE

sAX  EAX

99

CWD

sAX  DX:AX

99

CDQ

sEAX  EDX:EAX

Умножение беззнаковое

Флаги OF,CF=0

При

AH,DX,EDX=0; иначе равны 1

F6 /4

MUL AL,r/m8

AL×r/m8AX

F7 /4

MUL AX(EAX),r/m16(32)

AX(EAX)×r/m16(32)

DX:AX(EDX:EAX)

Умножение знаковое

F6 /5

IMUL r/m8

AL×r/mAX

При знаковом умножении множитель предваритель-

но знакорасши-

ряется до размера

множимого.

Флаги OF,CF=0 при

AH,DX,EDX=0,

иначе OF,CF=1.

Флаги SF,ZF,PF,

AF не определены

F7 /5

IMUL r/m16(32)

AX(EAX)×r/m16(32) 

 DX:AX(EDX:EAX)

0F AF /r

IMUL r16(32),r/m16(32)

r16(32)×r/m16(32) →r16(32)

6B /r ib

IMUL r16(32),r/m16(32),imm8

r/m16(32)×imm8 r16(32)

6B /r ib

IMUL r16(32),imm8

r16(32)×imm8  r16(32)

69 /r iw(id)

IMUL r16(32),r/m16(32),

imm16(32)

r/m16(32)×imm16(32) 

r16(32)

69 /r iw(id)

IMUL r16(32),imm16(32)

r16(32)×imm16(32) 

r16(32)

Деление беззнаковое

Флаги не

определены

F6 /6

DIV AL,r/m8

AX(r/m8)  AL;

AX MOD (r/m8)  AH

F7 /6

DIV AX,r/m16

DX:AX(r/m16)  AX;

DX:AX MOD (r/m16) 

 DX

F7 /6

DIV EAX,r/m32

EDX:EAX(r/m32) EAX;

EDX:EAX MOD (r/m32)  EDX

Деление знаковое

Флаги не

определены

F6 /7

IDIV AL,r/m8

AX(r/m8)  AL;

AX MOD (r/m8)  AH.

F7 /7

IDIV AX,r/m16

DX:AX/(r/m16)  AX;

DX:AX MOD(r/m16)→ DX

F7 /7

IDIV EAX,r/m32

EDX:EAX/(r/m32) EAX;

EDX:EAX MOD(r/m32) EDX.

Коррекция результатов арифметических операций

27

DAA

Десятичная коррекция

сложения в регистре AL.

Модифицируются

флаги: SF,ZF,AF,PF,CF

2F

DAS

Десятичная коррекция

вычитания в регистре AL

37

AAA

ASCII- коррекция после cложения в регистре AL

Модифицируются

флаги AF и CF

3A

AAS

ASCII-коррекция после

вычитания в регистре AL

D4 0A

AAM

ASCII-коррекция после

умножения

Модифицируются

флаги SF,ZF,PF

В5 0A

AAD

ASCII-коррекция перед

делением