Команды сканирования цепочек

Команды 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, которая сравнивает два заданных символьных массива одинаковой длины и формирует новый массив, содержащий индексы попарно совпадающих элементов исходных массивов (отсчет индексов – от нуля).