Прямые способы адресации
1. Неявная адресация. В таких командах явного адресного поля нет (нуль адресная команда). Операнд задается кодом операции. Обычно такой способ адресации используется для фиксированных программно доступных регистров процессора (аккумуляторный принцип). 2. Непосредственная адресация. В адресном поле фактически указывается не адресный код, а сам операнд. Этот способ не требует дополнительных обращений к памяти за операндами, но адресное поле должно иметь длину операнда. Обычно применяется для задания констант вычисления. 3. Абсолютная (прямая) адресация - характеризуется тем, что в адресном поле, задается полный адрес памяти, где хранится операнд. В этом случае, длина адресного поля и емкость оперативной памяти связаны между собой соотношением m = ]log2Em[. Если Em очень большая, то длина адресного поля в команде большая. Способ абсолютной адресации данных - тормоз в развитии применения компьютеров. Он не позволяет загружать данные в любое место памяти. В современных условиях применяются в ограниченном количестве (при загрузке драйверов). Все современные ЭВМ используют массу способов непрямой адресации. Они позволяют обеспечить мобильность программных средств. 6.2.1.2. Непрямые способы адресации: 1. Базирование (относительная адресация). Процедура формирования исполнительного адреса: Аисп = Абаза + <смещение>. Для реализации этого способа в ЭВМ выделяются специальные ячейки, которые выполняют функции базовых регистров. В общем случае в ЭВМ может быть несколько базовых регистров. Тогда адресные код включает в себя два поля: адрес регистра базирования (В) и смещение (Disp). В общем случае исполнительный адрес формируется соотношением: Смещение, которое задается, может быть длины адреса, но может быть и короче. С точки зрения длины команды короткое смещение предпочтительнее. Базирование, как способ адресации требует наличие сумматора в адресном устройстве. Вследствие чего очень часто в адресных механизмах операцию суммирования сводят к операции конкатенации (присоединительная адресация). Минимальное число регистров базирования один, но реально нужно четыре-восемь. 2. Косвенная адресация. При косвенной адресации адресный код в команде содержит не адрес самого операнда, а содержит адрес памяти, где хранится адрес операнда. Можно сказать, что адресный код - это адрес адреса. В самом простом варианте исполнительный адрес при косвенной адресации имеет следующий вид: Аисп = (M[Ak]), М — адрес памяти Ak, - содержимое. В общем случае может использоваться много ступенчатая косвенная адресация Недостатки косвенной адресации: Если указатели косвенного адреса указывают на исполнительный адрес в памяти, то резко замедляется скорость данной адресации. Обычно используют разновидность косвенной адресации, когда указатель косвенного адреса - это адрес регистра процессора (укороченная адресация).
|