Команды обработки строк

    Одной из функций, в которой в наборе команд микропроцессора 8088

    уделено особое внимание, является обработка строк.      Строка символов

    или чисел, с которыми программа работает, как с группой, является

    обычным типом данных.  Программа пересылает строку из одного места

    в другое, сравнивает ее с другими строками, а также ищет в ней

    заданное значение.  Обычным типом данных является строка символов.

    Программа представляет каждое слово, предложение либо другую

    структуру строкой символов в памяти.  Функции редактирования,

    например, в большой степени используют операции поиска и пересылки.

    Строковые команды микропроцессора 8088 выполняют эти операции с

    минимальными программными затратами, а также при минимальном

    времени исполнения.

 

      Сначала давайте обсудим принципы работы со строками. Программа

    может выполнять строковые операции как над байтами, так и над

    словами; отдельные элементы строк могут иметь 8 либо 16 бит.

    Строковые команды не используют способы адресации, используемые

    остальными командами обработки. Фактически строковые команды очень

    конкретны в адресации и не допускают каких=либо вариаций. Строковые

    команды адресуют операнды комбинациями регистров DS:SI либо ES:DI.

    Операнды источника используют регистровую пару DS:SI, а операнды

    результата регистровую пару ES:DI, откуда и названия

    индекс=регистров источника и результата. Все строковые команды

    имеют встроенную коррекцию адреса после выполнения операции. Строка

    состоит из многих элементов, но строковые команды обработки строк

    могут работать только с одним элементом в каждый момент времени,

    поэтому программа тоже работает со строкой по одному элементу в

    момент времени. Автоматическое увеличение или уменьшение адреса

    дает возможность быстрой обработки строковых данных. Флаг

    направления в регистре состояния управляет направлением обработки.

    Когда он установлен равным 1, адрес уменьшается, если флаг сброшен

    в 0, то увеличивается. Размер операнда определяет количество

    увеличений=уменьшений. Байтовые команды обработки строк изменяют

    адрес на 1 после каждой операции, а команды обработки строк над

    словами изменяют адрес на 2. Тем самым после выполнения операции

    указатель ссылается на следующий элемент строки.