КОП | Команда | Действие команды | Комментарии |
88 /r 89 /r 8A /r 8B /r 8C /r 8E /r A0 A1 A2 A3 | Обычные пересылки MOV r/m,r8 MOV r/m 16(32),r16(32) MOV r8,r/m8 MOV r16(32),r/m16(32) MOV r/m16,sr MOV sr,r/m16 MOV AL,moffs8 MOV AX(EAX),moffs16(32) MOV moffs8,AL MOV moffs16(32),AX(EAX) | r8®r/m8 r16(32)®r/m16/32 r/m8®r8 r/m16(32)®r16(32) sr®r/m16 r/m16®sr seg:offset®AL seg:offset®AX(EAX) AL®seg:offset AX(EAX)®seg:offset | Флаги не мо-дифицируются |
B0 +rb B8 +rw(rd) C6 /0 C7 /0 E4 ib E5 ib EC ED E6 ib E7 ib EE EF 8D /r C5 /r C4 /r 0F B2 /r 0F B4 /r 0F B5 /r 90 +rw(rd) 86 /r 87 /r 0F C0 /r 0F C1 /r D7 0F C8 /r | Обычные пересылки MOV r8,imm8 MOV r16(32),imm16(32) MOV r/m8,imm8 MOV r/m16(32),imm16(32) Ввод из порта IN AL,imm8 IN AX(EAX),imm8 IN AL,DX IN AX(EAX),DX Вывод из порта OUT imm8,AL OUT imm8,AX(EAX) OUT DX,AL OUT DX,AX(EAX) Загрузка эффективного адреса LEA r16(32),m Загрузка полного указателя адреса LDS r16(32),m16:16(32) LES r16(32),m16:16(32) LSS r16(32),m16:16(32) LFS r16(32),m16:16(32) LGS r16(32),m16:16(32) Обмен данными XCHG AX(EAX),r16(32) XCHG r/m8,r8 XCHG r/m16(32),r16(32) XADD r/m8,r8 XADD r/m16(32),r16(32) Табличное преобразование XLAT m8 (XLATB) Изменение порядка байт в 32 битовых операндах. BSWAP r32 | imm8 ® r8 imm 16(32) ® r16(32) imm 8 ® r/m8 imm16(32) ® r/m16(32) Port imm8 ® AL Port imm8 ® AX(EAX) Port [DX] ® AL Port [DX] ® AX(EAX) AL ® Port imm8 AX(EAX) ® Port imm8 AL ® Port [DX] AX(EAX) ® Port[DX] EA ® r16(32) m16:16(32) ® DS:r16(32) m16(32) ® ES:r16(32) m16(32) ® SS:r16(32) m16(32) ® FS:r16(32) m16(32) ® GS:r16(32) r16(32) «AX(EAX) r8 «r/m8 r16(32) «r/m16(32) r/m8 ® temp; temp+r8®r/m8; temp ® r8 r/m16(32)®temp; temp+r16(32) ®r/m16(32); temp®r16(32). DS:[BX(EBX)+AL] ® AL r(3b,2b,1b,0b) ® r(0b,1b,2b,3b) | Флаги не мо- дифицируются Флаги не мо- дифицируются Флаги не мо- дифицируются Флаги не мо- дифицируются Флаги не мо- дифицируются Флаги модифи- цируются как при команде ADD. (i486) Флаги не моди- фицируются Флаги не моди- фицируются (i486) |
II. КОМАНДЫОБРАБОТКИ ДАННЫХ
Команды арифметических операций
КОП | Команда | Действие команды | Комментарии | |
Операции сложения | 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) | ||
Преобразование длин слов | Флаги не опреде- лены | |||
CBW | sAL ® AX | |||
CWDE | sAX ® EAX | |||
CWD | sAX ® DX:AX | |||
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. | ||
Коррекция результатов арифметических операций | ||||
DAA | Десятичная коррекция сложения в регистре AL. | Модифицируются флаги: SF,ZF,AF,PF,CF | ||
2F | DAS | Десятичная коррекция вычитания в регистре AL | ||
AAA | ASCII- коррекция после cложения в регистре AL | Модифицируются флаги AF и CF | ||
3A | AAS | ASCII-коррекция после вычитания в регистре AL | ||
D4 0A | AAM | ASCII-коррекция после умножения | Модифицируются флаги SF,ZF,PF | |
В5 0A | AAD | ASCII-коррекция перед делением | ||