Иллюстрированный самоучитель по Assembler


Обработка строк - часть 2


Таким образом, для правильного выполнения команд обработки строк необходимо (в общем случае) предварительно настроить регистры DS:SI и ES:DI, установить или сбросить флаг DF, занести в СХ длину обрабатываемой строки, а для команд seas и stos еще поместить операнд-источник в регистр АХ (или AL при работе с байтами).

Однако сама операция, после всей этой настройки, осуществляется одной командой, которая обычно даже не содержит операндов, хотя может иметь префикс повторения.

Стоит подчеркнуть, что строки, обрабатываемые рассматриваемыми командами, могут находиться в любом месте памяти: в полях данных программы, в системных областях данных, в ПЗУ, в видеобуфере. Например, с помощью команды movs можно скопировать массив данных из одной массивной переменной в другую, а можно переслать страницу текста на экран терминала. Рассмотрим несколько примеров использования команд обработки строк, ограничившись лишь теми фрагментами программ, которые имеют отношение к рассматриваемому вопросу.

Пример 3-6. Чтение из ПЗУ BIOS даты его выпуска

;В программном сегменте

main proc

mov AX,0F000h    ;Занесем в DS

mov DS,AX            ;Сегментный адрес ПЗУ BIOS

mov SI,0FFF5h      ;Смещение к интересующему нас полю

mov AX,data          ;Настроим RS

mov RS,AX            ;на сегмент данных программы

mov DI,offset bios ;Смещение к полю для хранения даты

mov CX,8               ;Перенести 8 байт

cld                           ;Движение по строке вперед

rep movsb              ;Перенос байтов

;Выведем полученную информацию на экран

mov AX,data         ; Теперь настроим DS




- Начало -  - Назад -  - Вперед -