КОП | Команда | Действие команды | Комментарии |
Сканирование битов | |||
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 | ![]() ![]() | |
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 |