По команде SCASB содержимое регистра AL сравнивается с байтом памяти, абсолютный адрес которого указывает пара регистров ES:DI, после чего регистр DI автоматически устанавливается на соседний байт памяти.
AL=[ES:DI]?; DI:=DI + 1
Команда SCASW сравнивает слова – из регистра AX и ячейки памяти, абсолютный адрес которого определяется паройES:DI, после чего регистр DI также автоматически устанавливается на соседнее слово памяти.
AX=[ES:DI]?; DI:=DI + 2
Команда SCAS используется для поиска в строке элемента, равного заданному (в AL или в AX), или отличного от заданного:
REPE SCASB – найти в строке первый элемент, отличный от AL.
REPNE SCASB – найти в строке первый элемент, равныйAL.
Сохранение строки: STOSB, STOSW
По команде STOSB в байт памяти, абсолютный адрес которого задается парой регистров ES:DI, записывается содержимое регистра AL, после чего значение регистра DI автоматически меняется на + 1. Команда STOSW записывает содержимое регистра AX в слово памяти, абсолютный адрес которого задается регистрами ES:DI, после чего меняет значение регистра DI на + 2.
|
|
Перед командой STOS указывают только префикс REP.
Пример: заполнить пробелами строку S из 40 символов:
MOV AL,’ ‘
CLD
PUSH DS
POP ES
LEA DI, S
MOV CX, 40
REP STOSB
Загрузка строки: LODSB, LODSW
Команда LODSB (LODSW) записывает в регистр AL (AX) содержимое байта (слова) памяти, абсолютный адрес которого задается регистрами DS:SI, после чего меняет значение регистра SI аналогичным образом.
Пример: переписать все числа из X в Y с изменением их знака.
CLD
LEA SI, X
PUSH DS
POP ES
LEA DI, Y
MOV CX, 100
L: LODSB
NEG AL
STOSB
LOOP L
Приемы обработки структурированной информации
Структуры
По определению структура — это тип данных, состоящий из фиксированного числа элементов разного типа.
Для использования структур в программе необходимо выполнить три действия.
1. Описать тип структуры.
2. Определить переменные этого типаструктуры.
3. Организовать обращение к элементам структуры.