На главную Назад
Добро пожаловать, уважаемый посетитель!

Поскольку механизм адресации микропроцессора 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. С помощью одной команды записать значения

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

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

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

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

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

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

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

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

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


 

Mail.ru