Сканирование строки: SCASB, SCASW

По команде 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. Организовать обращение к элементам структуры.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: