Команды SCAS, SCASB, SCASW, SCASD
Рубрика: Архитектура PC
(Команды CPU)
11723
Опубликовано: 08.05.2017
Команды SCAS, SCASB, SCASW, SCASD - это команды, предназначенные для сканирования строк байтов, слов и двойных слов в поисках искомого значения. Искомое значение должно при этом находиться в регистре AL, AX или EAX соответственно.
Команда SCAS
| Синтаксис: | SCAS op1 |
| Операнды: | op1 - m8, m16, m32 |
| Назначение: | Сканирование строки |
| Процессор: | 8086+ |
| Флаги: | Флаги OF, SF, ZF, AF, PF, CF устанавливаются в соответствии с результатом. |
| Комментарий: | Команда SCAS на самом деле не является командой процессора. Когда в тексте программы встречается эта команда, компилятор вычисляет размерность ее операнда и на основании вычислений подставляет на ее место одну из реальных команд процессора SCASB, SCASW или SCASD. |
| Ограничения: | Нет |
| Примеры: |
scas es:str2 |
Команда SCASB
| Синтаксис: | SCASB |
| Операнды: | Нет |
| Назначение: | Сканирование строки байт |
| Процессор: | 8086+ |
| Флаги: | Флаги OF, SF, ZF, AF, PF, CF устанавливаются в соответствии с результатом. |
| Комментарий: | Команда SCASB сравнивает регистр AL с байтом в ячейке памяти по адресу ES:DI и устанавливает флаги аналогично команде CMP. После выполнения команды, регистр DI увеличивается на 1, если флаг DF = 0, или уменьшается на 1, если DF = 1. Если команда используется в 32-разрядном режиме адресации, то используется регистр EDI. |
| Ограничения: | Нет |
| Примеры: |
mov di,offset str1 cld scasb |
Команда SCASW
| Синтаксис: | SCASW |
| Операнды: | Нет |
| Назначение: | Сканирование строки слов |
| Процессор: | 8086+ |
| Флаги: | Флаги OF, SF, ZF, AF, PF, CF устанавливаются в соответствии с результатом. |
| Комментарий: | Команда SCASW сравнивает регистр AX со словом в ячейке памяти по адресу ES:DI и устанавливает флаги аналогично команде CMP. После выполнения команды, регистр DI увеличивается на 2, если флаг DF = 0, или уменьшается на 2, если DF = 1. Если команда используется в 32-разрядном режиме адресации, то используется регистр EDI. |
| Ограничения: | Нет |
| Примеры: |
mov di,offset str1 cld scasw |
Команда SCASD
| Синтаксис: | SCASD |
| Операнды: | Нет |
| Назначение: | Сканирование строки двойных слов |
| Процессор: | 8086+ |
| Флаги: | Флаги OF, SF, ZF, AF, PF, CF устанавливаются в соответствии с результатом. |
| Комментарий: | Команда SCASD сравнивает регистр EAX с двойным словом в ячейке памяти по адресу ES:DI и устанавливает флаги аналогично команде CMP. После выполнения команды, регистр DI увеличивается на 4, если флаг DF = 0, или уменьшается на 4, если DF = 1. Если команда используется в 32-разрядном режиме адресации, то используется регистр EDI. |
| Ограничения: | Нет |
| Примеры: |
mov di,offset str1 cld scasd |
Комментарии (0)