Команды сканирования цепочек
Команды SCASB (от англ. SCAning String Byte – сканировать цепочку байт) и SCASW (от англ. SCAning String Word – сканировать цепочку слов) выполняют сравнение текущего элемента цепочки-приемника (адрес которого указывается в паре регистров ES:DI) со значением, находящимся в регистре AL (при сравнении байт) или в регистре AX (при сравнении слов).
В остальном работа данных команд аналогична работе команд CMPSB и CMPSW (вычитание текущего элемента цепочки-приемника из регистра-аккумулятора и установка флагов). Для поиска в цепочке элемента совпадающего со значением в регистре AL или AX необходимо использовать префикс повторения REPNZ, а для поиска отличного элемента – префикс REPZ (либо будет достигнут конец цепочки, либо будет осуществлен выход из цикла при нахождении первого совпадающего или отличающегося элемента).
Команды загрузки цепочек
Команды LODSB (от англ. LOaD String Byte – загрузить цепочку байт) и LODSW (от англ. LOaD String Word – загрузить цепочку слов) выполняют копирование текущего элемента цепочки-источника (адрес которого указывается в паре регистров DS:SI) в регистр-аккумулятор (в AL при копировании байт, в AX – при копировании слов). В остальном работа данных команд аналогична работе команд MOVSB и MOVSW.
Команды сохранения цепочек
Команды STOSB (от англ. STOre String Byte – сохранить цепочку байт) и STOSW (от англ. LOaD String Word – сохранить цепочку слов) выполняют копирование в текущий элемента цепочки-приемника (адрес которого указывается в паре регистров ES:DI) значения из регистра-аккумулятора (из AL при копировании байт, из AX – при копировании слов). В остальном работа данных команд аналогична работе команд MOVSB и MOVSW.
Вопросы для самопроверки
1. Написать фрагмент программы, реализующий поиск в символьной строке символа 's'.
2. Написать фрагмент программы, которая заполняет пустой массив из двадцати однобайтовых элементов первыми двадцатью прописными буквами латинского алфавита.
3. Написать на языке ассемблера COM-программу, которая сравнивает два заданных символьных массива одинаковой длины и формирует новый массив, содержащий значения попарно совпадающих элементов исходных массивов.
4. Написать на языке ассемблера программу типа COM, которая сравнивает два заданных символьных массива одинаковой длины и формирует новый массив, содержащий индексы попарно совпадающих элементов исходных массивов (отсчет индексов – от нуля).