Загрузка указателя

    Поскольку механизм адресации микропроцессора 8088 требует

    определения как сегмента, так и смещения каждой переменной,

    желательно загрузить всю эту адресную информацию единственной

    командой.  Эту работу выполняют команды LDS и LES.      Команда

 

      LDS SI, EXDWORD

 

      загружает регистровую пару DS:SI значениями сегмента и

    смещения, содержащимися в переменной EXDWORD. Команда LDS загружает

    в регистр SI значение смещения, расположенное по адресу EXDWORD, а

    в регистр DS - значение сегмента, расположенное по адресу

    EXDWORD+2. Команда LDS одна загружает два 16=битовых регистра

    значением указателя, взятого из некоторой ячейки памяти. Так как

    эта команда устанавливает и сегментный регистр, и регистр смещения,

    программа может сразу адресоваться к объекту, на который этот адрес

    указывает. Программа может организовать указатель из сегмента и

    смещения во время ассемблирования с помощью оператора DD, который

    порождает 32=битовое поле данных. Если операндом DD является

    адресное выражение, двухсловное поле будет содержать сегмент и

    смещение адресного значения в том же самом формате, который

    используется в командах LDS и LES.

 

      Команда LES идентична LDS, за исключением того, что она

    загружает регистр ES. С помощью одной команды записать значения

    сегмента и смещения нельзя. Программа должна записывать значение

    указателя двумя командами пересылки слов, а не одной командой

    записи указателя. Это приемлемо, так как программа обычно читает

    указатель гораздо чаще, чем записывает его. Обычно программа

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

    быть, иногда меняет его во время смены режимов работы системы. А

    вот читается указатель, вероятно, достаточно часто. В последующих

    главах есть примеры, в которых значения указателей и читаются, и

    записываются.

Hosted by uCoz