Untitled Document

Теория операционных систем начало

 

Абсолютная адресация

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

Абсолютная адресация в системе команд SPARC
У процессоров SPARC реализация абсолютной адресации похожа на реализацию адресации литеральной: под адресацию занимается регистр, командой sethi %hi (addr) , reg в него загружается старшая часть адреса, а затем происходит собственно адресация. Для формирования 64-разрядного адреса необходимо занимать два регистра и выполнять ту же программу, что и в примере 2.1.
Обращение к переменной в памяти происходит так, как показано в примере 2.2.

Пример 2.2. Обращение к переменной на процессоре SPARC

sethi %hi(var), %g1!помещаем старшие биты адреса в %g1
Id [%gl+%lo(var)], %11!загружаем значение в %11
inc %11!производим операцию
st %11, [%gl+%lo(var)]!сохраняем результат.

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

 
Платформу клиент-сервер | ActiveX-компоненты | Базы данных | Конструктор форм | Электро | ТОЭ | Linux | Интегралы | Лекции физика | Windows 2003 | Архитектура ЭВМ | Рисунок | Световые волны | Операционные системы
Pascal | Эксперт | Учебник Java | Кодирование | Пефирия ПК | Информатика | Сети | Моделирование | Язык SQL Расчет надежности | Задачи