Команды обработки строк
Команды обработки строк
Одной из функций, в которой в наборе команд микропроцессора 8088
уделено особое внимание, является обработка строк. Строка символов
или чисел, с которыми программа работает, как с группой, является
обычным типом данных. Программа пересылает строку из одного места
в другое, сравнивает ее с другими строками, а также ищет в ней
заданное значение. Обычным типом данных является строка символов.
Программа представляет каждое слово, предложение либо другую
структуру строкой символов в памяти. Функции редактирования,
например, в большой степени используют операции поиска и пересылки.
Строковые команды микропроцессора 8088 выполняют эти операции с
минимальными программными затратами, а также при минимальном
времени исполнения.
Сначала давайте обсудим принципы работы со строками. Программа
может выполнять строковые операции как над байтами, так и над
словами; отдельные элементы строк могут иметь 8 либо 16 бит.
Строковые команды не используют способы адресации, используемые
остальными командами обработки. Фактически строковые команды очень
конкретны в адресации и не допускают каких=либо вариаций. Строковые
команды адресуют операнды комбинациями регистров DS:SI либо ES:DI.
Операнды источника используют регистровую пару DS:SI, а операнды
результата регистровую пару ES:DI, откуда и названия
индекс=регистров источника и результата. Все строковые команды
имеют встроенную коррекцию адреса после выполнения операции. Строка
состоит из многих элементов, но строковые команды обработки строк
могут работать только с одним элементом в каждый момент времени,
поэтому программа тоже работает со строкой по одному элементу в
момент времени. Автоматическое увеличение или уменьшение адреса
дает возможность быстрой обработки строковых данных. Флаг
направления в регистре состояния управляет направлением обработки.
Когда он установлен равным 1, адрес уменьшается, если флаг сброшен
в 0, то увеличивается. Размер операнда определяет количество
увеличений=уменьшений. Байтовые команды обработки строк изменяют
адрес на 1 после каждой операции, а команды обработки строк над
словами изменяют адрес на 2. Тем самым после выполнения операции
указатель ссылается на следующий элемент строки.