Команды SCAS, SCASB, SCASW, SCASD
Рубрика: Архитектура PC
(Команды CPU)
10158
Опубликовано: 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)