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

Команды битовых операций

КОП

Команда

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

Комментарии

Сканирование битов

0F BC

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

Побитное сканирование битов r/m16(32), начиная

с младшего бита

Если все биты =0,

то ZF=1, иначе

ZF=0 и номер первого ненулевого бита  r16(32)

0F BD

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

Побитное сканирование

битов r/m16(32), начиная

со старшего бита

Тестирование битов

0F A3

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

Значение бита из r/m16(32),позиция r16(32),CF; сам бит неизменен.

CF-устанавливает- ся по команде;

PF, AF, ZF, SF,

OF- не модифи-цируются.

0F BA /4 ib

BT r/m16(32),imm8

Значение бита из r/m16(32), позиция imm8,CF; сам бит неизменен

0F B3

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

Значение бита из r/m16(32),

позиция r16(32),CF; сам бит обнуляется

0F BA /6 ib

BTR r/m16(32),imm8

Значение бита из r/m16(32),позиция imm8, CF; сам бит обнуляется

0F AB

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

Значение бита из r/m16(32),позиция r16(32),CF; сам бит устанавливается в 1

0F BA /5 ib

BTS r/m16(32),imm8

Значение бита из r/m16(32),позиция imm8,CF; сам бит устанавливается в 1

0F BB

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

Значение бита из r/m16(32),позиция r16(32),CF; сам бит инвертируется

0F BA /7 ib

BTC r/m16(32),imm8

Значение бита из r/m16(32),позиция imm8,CF; сам бит инвертируется.

Сброс и установка битов

F8

CLC

0  CF

Модифициру-ются только флаги,

указанные в ко-

мандах; осталь-

ные флаги неиз-

менны.

FC

CLD

0  DF

FA

CLI

0  IF

FS

CMC

 CF

F9

STC

1  CF

FD

STD

1  DF

FB

STI

1  IF

Установка байтов по условию

0А 9 cond

SET COND r/m8

Если условие выполнено,

то 1 r/m8, иначе 0r/m8

COND и cond- условия в табл.П3.2.

III. КОМАНДЫ ОПЕРАЦИЙ С ЦЕПОЧКАМИ

КОП

Команда

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

Комментарии

A4

A5

A5

0F BE /r

0F BF /r

0F B6 /r

F B7 /r

6C

6D

6D

6E

6F

6F

Обычные пересылки

MOVS m8,m8

(MOVSB)

MOVS m16,m16

(MOVSW)

MOVS m32,m32

(MOVSD)

Пересылки со знаковым

расширением

MOVSX r16(32),r/m8

MOVSX r32,r/m16

Пересылки с нулевым

расширением

MOVZX r16(32),r/m8

MOVZX r32,r/m16

Ввод из порта в цепочку

INS r/m8,DX (INSB)

INS r/m16,DX (INSW)

INS r/m32, DX (INSD)

Вывод цепочки в порт

OUTS DX,r/m8 (OUTB)

OUTS DX,r/m16 (OUTW)

OUTS DX,r/m32(OUTD)

m8 из [SI(ESI)]

 ES:[DI(EDI)]

m16 из [SI(ESI)]

ES:[DI(EDI)]

m32 из [SI(ESI)]

 ES:[DI(EDI)]

r/m8r16(32) со зна-

ковым расширением.

r/m16r32 со знако-

вым расширением.

r/m8r16(32) с нуле-

вым расширением

r/m16r32 с нулевым

расширением

m8 из Port[DX]

ES:[DI(EDI)]

m16 из Port[DX]

ES:[DI(EDI)]

m32 из Port[DX]

ES:[DI(EDI)]

m8 из [SI(ESI)]

Port [DX]

m16 из[SI(ESI)]

Port [DX]

m32 из [SI(ESI)]

Port [DX]

Флаги не мо-дифицируются

Флаги не мо-

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

КОП

Команда

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

Комментарии

AA

AB

AB

AC

AD

AD

A6

A7

A7

AE

AF

AF

F3

F3

F2

Сохранение цепочечных

Операндов

STOS m8 (STOSB)

STOS m16 (STOSW)

STOS m32 (STOSD)

Загрузка цепочечных

Операндов

LODS m8 (LODSB)

LODS m16 (LODSW)

LODS m32 (LODSD)

Сравнение цепочек

CMPS m8,m8 (CMPSB)

CMPS m16,m16 (CMPW)

CMPS m32,m32 (CMPD)

Сканирование цепочек

SCAS m8 (SCASB)

SCAS m16 (SCASW)

SCAS m32 (SCASD)

Префиксы повторения

REP

REPE (REPZ)

REPNZ (REPNE)

ALES:[DI(EDI)]

AXES:[DI(EDI)]

EAXES:[DI(EDI)]

[SI]AL

[SI]AX

[SI]EAX

ES:[DI(EDI)]-[SI(ESI)]

ES:[DI(EDI)]-[SI(ESI)]

ES:[DI(EDI)]-[SI(ESI)]

AL - ES:[DI(EDI)

AX - ES:[DI(EDI)

EAX - ES:[DI(EDI)]

Повторять команду до тех, пока CX(ECX)  0

Повторять команду до тех пор, пока CX(ECX)0 или ZF1

Повторять команду до тех пор, пока CX(ECX)0

или ZF0

Флаги не модифицируются

Флаги не модифицируются

Флаги модифици-

руются по результату

Флаги не модифицируются

Используется с командами: LODS ,STOS, INS,OUTS,

MOVS

Используются с командами: CMPS,SCAS

Модифицирует-ся только флаг

Z