<<
>>

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

Прямая адресация — это простейший вид адресации операнда в памяти, так как эффективный адрес содержится в самой команде и для его формирования не ис- пользуется никаких дополнительных источников или регистров.
Эффективный адрес берется непосредственно из поля смещения машинной команды (см. главу 3), которое может иметь размер 8, 16, 32 бита. Это значение однозначно определяет байт, слово или двойное слово в сегменте данных. Прямая адресация может быть двух типов. ® Относительная прямая адресация используется в командах условных перехо- дов для указания относительного адреса перехода. Относительность такого пе- Синтаксис ассемблера 95 рехода заключается в том, что в поле смещения машинной команды содержит- ся 8-, 16- или 32-разрядное значение, которое в результате работы команды бу- дет складываться с содержимым регистра указателя команд IP/EIP. В результа- те такого сложения получается адрес, по которому и осуществляется переход. К примеру, Хотя в команде указана конкретная метка, ассемблер вычисляет смещение этой метки относительно следующей команды (в нашем случае mov аl,2) и подстав- ляет его в формируемую машинную команду JC.
Абсолютная прямая адресация — в этом случае эффективный адрес является частью машинной команды, но формируется этот адрес только из значения поля смещения в команде. Для формирования физического адреса операнда в памя- ти процессор складывает это поле со сдвинутым на четыре бита значением сег- ментного регистра. В команде ассемблера можно использовать несколько форм такой адресации. К примеру, mov ах,word ptr [0000] ;записать слово по адресу ;ds:0000 в регистр ах Однако такая адресация применяется редко — обычно ячейкам в программе присваиваются символические имена. В процессе трансляции ассемблер вы- числяет и подставляет значения смещений этих имен в поле смещения форми- руемой им машинной команды (см. главу 3). В итоге получается, что машин- ная команда прямо адресует свой операнд, имея, фактически, в одном из своих полей значение эффективного адреса. К примеру, Мы получим тот же результат, что и при использовании команды mov ах,word ptr [0000] Остальные виды адресации относятся к косвенным. Слово «косвенный» в на- звании этих видов адресации означает, что в самой команде может находиться лишь часть эффективного адреса, а остальные его компоненты находятся в регистрах, на которые указывают своим содержимым байт mod r/m и, возможно, байт sib. Косвенная адресация имеет следующие разновидности: 9 косвенная базовая, или регистровая, адресация; II косвенная базовая адресация со смещением; косвенная индексная адресация со смещением; косвенная базовая индексная адресация; ж косвенная базовая индексная адресация со смещением.
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Прямая адресация:

  1. ПРЯМАЯ КИШКА (ПРОБЛЕМЫ)
  2. АГРЕССИЯ ПРЯМАЯ
  3. 3. Чрезмерно прямая осанка
  4. 3. Чрезмерно прямая осанка
  5. Ретрансляционная линия
  6. Выступление в кадре
  7. МАСКИРОВКА ЗРИТЕЛЬНАЯ
  8. Дятел (долбит в одно место)
  9. Подстройка к дыханию
  10. От образов воображения
  11. Лев.
  12. Близнецы.
  13. Упражнение 2 (сахадж пранаяма 2)
  14. МЕТОД ШКАЛИРОВАНИЯ
  15. Мужское начало
  16. Мужское начало
  17. Докуда дошли ощущения?
  18. Положение головы.
  19. МАНЕРА ДЕРЖАТЬСЯ: ПРАВИЛЬНАЯ И НЕПРАВИЛЬНАЯ