
- •Основные непривилегированные команды процессоров Intel 80х86
- •Команды пересылки и загрузки
- •Целочисленная арифметика
- •Логические команды
- •Команды побитовой обработки
- •Команды передачи управления
- •Команды обработки строк
- •Команды двоично-десятичной арифметики
- •Команды работы с флагами, команды управления процессором
Логические команды
Команда |
Комбинации операндов P1,P2,P3 |
Действие |
Какие флаги меняет |
Какие процессоры |
Расшифровка мнемоники команды |
NOT P1 |
r8/16/32 m8/16/32 |
____ P1 P1 |
– |
все |
NOT (побитовое НЕ) |
AND P1,P2 |
r8/16/32, r8/16/32 r8/16/32, const r8/16/32,m8/16/32 m8/16/32, r8/16/32 m8/16/32, const |
P1 P1 & P2 |
SF,ZF,PF, CF=0, OF=0 |
все |
AND (побитовое И) |
TEST P1,P2 |
r8/16/32, r8/16/32 r8/16/32, const r8/16/32,m8/16/32 m8/16/32, r8/16/32 m8/16/32, const |
( P1& P2 ) только устанавливает флаги |
SF,ZF,PF, CF=0, OF=0 |
все |
TEST (логическое сравнение) |
OR P1,P2 |
r8/16/32, r8/16/32 r8/16/32, const r8/16/32,m8/16/32 m8/16/32, r8/16/32 m8/16/32, const |
P1 P1 | P2 |
SF,ZF,PF, CF=0, OF=0, AF не определен |
все |
OR (побитовое ИЛИ) |
XOR P1,P2 |
r8/16/32, r8/16/32 r8/16/32, const r8/16/32,m8/16/32 m8/16/32, r8/16/32 m8/16/32, const |
P1 P1 ^ P2 |
SF,ZF,PF, CF=0, OF=0, AF не определен |
все |
Exclusive OR (побитовое исключающее ИЛИ) |
Команды побитовой обработки
Команда |
Комбинации операндов P1,P2,P3 |
Действие |
Какие флаги меняет |
Какие процессоры |
Расшифровка мнемоники команды |
BSF P1,P2 |
r16, r16 r16, m16 r32, r32 r32, m32 |
Поиск в Р2 "1"-го бита, начиная с младших разрядов, запись в Р1 номера этого бита (0-31) |
ZF=0, если P20 ZF=1, если P2=0 |
386 > |
Bit Scan Forward |
BSR P1,P2 |
r16, r16 r16, m16 r32, r32 r32, m32 |
Поиск в Р2 "1"-го бита, начиная со старших разрядов, запись в Р1 номера этого бита (0-31) |
ZF=0, если P20 ZF=1, если P2=0 |
386 > |
Bit Scan Reverse |
BT P1,P2 |
r16/32, r16/32 r16/32, const m16/32, r16/32 m16/32, const |
P1[бит номер P2] CF |
CF |
386 > |
Bit Test |
BTR P1,P2 |
r16/32, r16/32 r16/32, const m16/32, r16/32 m16/32, const |
P1[бит номер P2] CF P1[бит номер P2] "0" |
CF |
386 > |
Bit Test and Reset |
BTS P1,P2 |
r16/32, r16/32 r16/32, const m16/32, r16/32 m16/32, const |
P1[бит номер P2] CF P1[бит номер P2] "1" |
CF |
386 > |
Bit Test and Set |
BTC P1,P2 |
r16/32, r16/32 r16/32, const m16/32, r16/32 m16/32, const |
P1[бит номер P2] CF P1[бит номер P2] _____________________________________ P1[бит номер P2] |
CF |
386 > |
Bit Test and Complement |
SHR P1,P2 |
r8/16/32, const r8/16/32, CL m8/16/32, const m8/16/32, CL |
Сдвиг линейный вправо P2 раз операнда Р1:
|
CF, не определен OF |
все |
Shift Right |
SHL P1,P2 SAL P1,P2
|
r8/16/32, const r8/16/32, CL m8/16/32, const m8/16/32, CL |
Сдвиг линейный/ арифметический влево P2 раз операнда Р1:
|
CF, не определен OF |
все |
Shift Left Shift Arithmetic Left |
SAR P1,P2 |
r8/16/32, const r8/16/32, CL m8/16/32, const m8/16/32, CL |
Сдвиг арифметический вправо операнда Р1 Р2 раз
(s – знак операнда Р1) |
CF, OF=0 |
все |
Shift Arithmetic Right |
SHRD P1,P2,P3 |
r16/32, r16/32, const r16/32, r16/32, CL m16/32,r16/32,const m16/32, r16/32, CL |
Сдвиг линейный вправо операнда Р1 на Р3 битов вправо, вдвигаемые биты берутся из Р2 |
SF, ZF, PF, CF, не определены: AF, OF |
386 > |
Shift Right Double word |
SHLD P1,P2,P3 |
r16/32, r16/32, const r16/32, r16/32, CL m16/32,r16/32,const m16/32, r16/32, CL |
Сдвиг линейный влево операнда Р1 на Р3 битов вправо, вдвигаемые биты берутся из Р2 |
SF, ZF, PF, CF, не определены: AF, OF |
386 > |
Shift Left Double word |
ROR P1,P2 |
r8/16/32, const r8/16/32, CL m8/16/32, const m8/16/32, CL |
Сдвиг циклический вправо операнда Р1 Р2 раз
|
CF, не определен OF |
все |
Rotate Right |
ROL P1,P2 |
r8/16/32, const r8/16/32, CL m8/16/32, const m8/16/32, CL |
Сдвиг циклический влево операнда Р1 Р2 раз
|
CF, не определен OF |
все |
Rotate Left |
RCR P1,P2 |
r8/16/32, const r8/16/32, CL m8/16/32, const m8/16/32, CL |
Сдвиг циклический через CF вправо операнда Р1 на Р2 бит:
|
CF, не определен OF |
все |
Rotate through CF Right |
RCL P1,P2 |
r8/16/32, const r8/16/32, CL m8/16/32, const m8/16/32, CL |
Сдвиг циклический через CF влево операнда Р1 на Р2 бит:
|
CF, не определен OF |
все |
Rotate through CF Left |