2.2.3. Прямая адресация

Если у операнда, располагающегося в памяти, известен адрес, то его можно использовать. Если операнд - слово, находящееся в сегменте, на который указы­вает ES, со смещением от начала сегмента 0001, то команда

mov

поместит это слово в регистр АX. В реальных программах для задания статичес­ких переменных обычно используют директивы определения данных (раздел 3.3), которые позволяют ссылаться на статические переменные не по адресу, а по име­ни. Тогда, если в сегменте, указанном в ES, была описана переменная размером в слово, можно записать ту же команду как

mov       ах, es :word_var

В таком случае ассемблер сам заменит слово на соответствующий

адрес. Если селектор сегмента данных находится в DS, то имя сегментного реги­стра при прямой адресации не указывать, DS используется по умолча­нию. Прямая адресация иногда называется адресацией по смещению.

Адресация отличается для реального и защищенного режимов. В реальном

(так же как и в режиме V86) смещение всегда 16-битное. Это значит, что ни не­указанное смещение, ни результат сложения содержимого разных регистров в более сложных методах адресации не могут превышать границ слова.

При работе в Windows, DOS4G, PMODE и в других ситуациях, когда программа

будет запускаться в защищенном смещение не должно превышать гра-

ниц двойного слова.