Случайное
Старые записи

Адреса памяти

Адреса памятиОдним из преимуществ представления адреса памяти в виде регистра базы и смещения является экономия памяти за счет сокращения длины команд. Для указания адреса памяти необходимо 24 двоичных разряда. Но для представления адреса памяти с помощью регистра базы и смещения достаточно ^двоичных разрядов. Действительно, для указания регистра базы необходимы 4 разряда. Младшие 24 разряда общего регистра указывают значение базового адреса. Для смещения в команде отводится 12 разрядов. Таким образом, с помощью поля в 16 разрядов можно указывать любой 24-разрядный адрес.

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

Допустим, что в машинной команде используется область памяти. Адрес области в команде представлен в виде регистра базы и смещения. Для определенности будем считать, что смещение равно S, регистром базы является регистр 4, а базовым адресом является адрес, с которого программа располагается в памяти. Загрузка базового адреса в регистр базы 4 выполняется всегда, когда программа получает управление. Тогда, если программа будет располагаться с адрееа А, адрес используемо» области памяти будет равен A+-S, При выполнении машинной команды адрес этой области вычисляется как сумма содержимого регистра базы 4 и смещения и равен А + S. Если же программу расположить с адреса Вг то адрес используемой области будет равен В + S. В этом случае при выполнении программы в регистр базы 4 будет загружен адрес В, и в, машинной команде будет использован адрес памяти В + S.

Новое на сайте
Интересные записи
-
7c7cf2addf7598dc