Типы адресаций операндов
Адресацией называется обращение к операнду (число, участвующее в операции), указание на который содержится в команде. Операнды, в зависимости от места своего хранения, могут указываться разными способами, которым соответствуют разные типы адресации, или, коротко, разные адресации.
При описании различных адресаций операндов используют понятия адресного кода и исполнительного адреса. Адресный код АК – это информация об адресе операнда, содержащаяся в команде. Исполнительный адрес АИ – это номер физической ячейки памяти, к которой производится обращение.
Первая группа адресаций устанавливает АИ по значению АК. Сюда входят непосредственная, прямая, регистровая, косвенная, автоинкрементная и автодекрементная адресации.
Принепосредственной адресации операнд указывается в команде константой. Эта адресация используется только для указания исходных данных.
При прямой адресации АИ совпадает с АК.
При регистровой адресации в команде указывается имя регистра процессора, в котором хранится операнд.
Косвенная адресация используется в целях сокращения длины команды. В этом случае АК указывает имя регистра процессора, в котором находится АИ. Такой регистр называют регистром адреса..
При автоинкрементной (автодекрементной) адресации в команде указывается имя регистра процессора, содержимое которого автоматически увеличивается (уменьшается) на 1, причем изменение адреса может производиться как до (преинкремент/предекремент), так и после (постинкремент/постдекремент) выполнения основной команды. Следовательно, преинкремент/предекремент означает вычисление нового АИ перед выполнением команды, а постинкремент/постдекремент – что АИ в данной команде не изменяется.
Вторая группа адресаций устанавливает АИ по АК и содержимому регистров процессора. Сюда входят индексная и базовая адресации. Оба типа адресаций позволяют при меньшей длине адресного кода команды обеспечить доступ к любой ячейке памяти.
Индексация (указание) означает автоматическое изменение АИ без изменения содержимого регистра адреса, называемого индексом, причем АИ вычисляется как алгебраическая сумма содержимого индекса и смещения. Таким образом, содержимое индекса задает начало некоторой области ячеек памяти, а смещение – конкретную ячейку памяти в этой области. В команде АК указывает имя индекса и сравнительно короткое смещение или имя регистра процессора, в котором оно содержится. Индексация используется при работе с массивами данных.
Базирование является развитием индексации. Здесь АИ также определяется алгебраической суммой содержимого регистра адреса, называемого базой, и смещения, но с изменением содержимого базы. При этом используются постинкремент/постдекремент и преинкремент/пре-декремент на величину смещения.
Дата добавления: 2020-10-25; просмотров: 368;