Справочник по языку Ассемблера IBM PC


Команды работы с адресами и указателями памяти


При написании программ на ассемблере производится интенсивная работа с адресами операндов, находящимися в памяти. Для поддержки такого рода операций есть специальная группа команд, в которую входят следующие команды:


назначение,источник — загрузка эффективного адреса;


назначение,источник — загрузка указателя в регистр сегмента данных ds;


назначение,источник — загрузка указателя в регистр дополнительного сегмента данных es;


назначение,источник — загрузка указателя в регистр дополнительного сегмента данных gs;


назначение,источник — загрузка указателя в регистр дополнительного сегмента данных fs;


назначение,источник — загрузка указателя в регистр сегмента стека ss.

Команда lea похожа на команду mov тем, что она также производит пересылку. Однако, обратите внимание, команда lea

производит пересылку не данных, а эффективного адреса данных (то есть смещения данных относительно начала сегмента данных) в регистр, указанный операндом назначение.

Часто для выполнения некоторых действий в программе недостаточно знать значение одного лишь эффективного адреса данных, а необходимо иметь полный указатель на данные. Вы помните, что полный указатель на данные состоит из сегментной составляющей и смещения.


Все остальные команды этой группы позволяют получить в паре регистров такой полный указатель на операнд в памяти. При этом имя сегментного регистра, в который помещается сегментная составляющая адреса, определяется кодом операции. Соответственно, смещение помещается в регистр общего назначения, указанный операндом назначение.


Но не все так просто с операндом источник. На самом деле, в команде в качестве источника нельзя указывать непосредственно имя операнда в памяти, на который мы бы хотели получить указатель.


Предварительно необходимо получить само значение полного указателя в некоторой области памяти и указать в команде получения полного адреса имя этой области. Для выполнения этого действия необходимо вспомнить директивы резервирования и инициализации памяти.




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



Книжный магазин