Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Классификация способов адресации по наличию адресной информации в команде
По наличию адресной информации в команде различают явную и неявную адресацию. При явной адресации операнда в команде есть поле адреса этого операнда, в котором задается адресный код Ак. Большинство методов адресации являются явными. При неявной адресации адресное поле в команде отсутствует, адрес операнда подразумевается кодом операции. Метод неявной адресации операндов используется во всех процессорах. Основное его назначение - уменьшение длины команды за счет исключения части адресов. При этом методе код операции точно задает адрес операнда. Например, из команды исключается адрес приемника результата. При этом подразумевается, что результат в этой команде помещается на место второго операнда.
Классификация способов адресации по кратности обращения в память Широко используются следующие методы адресации операнда с различной кратностью обращения (R) в память: 1. Непосредственная (R = 0). 2. Прямая (R = 1). 3. Косвенная (R > 2). Непосредственная адресация операнда. При этом способе операнд располагается в адресном поле команды. Обращение к регистровой памяти (РП) или оперативной памяти (ОП) не производится. Таким образом, уменьшается время выполнения операции, сокращается объем памяти. Непосредственная адресация удобна для задания констант, длина которых меньше или равна длине адресного поля команды. Прямая адресация операндов. При этом способе (рис. 3.3) адресации обращение за операндом в РП или ОП производится по адресному коду в поле команды, т.е. исполнительный адрес операнда совпадает с адресным кодом команды (Аи = Ак).
Рис.3.3. Схема прямой адресаций Обеспечивая простоту программирования, этот метод имеет существенные недостатки, так как для адресации к ячейкам памяти большой емкости (число адресов М велико) требуется «длинное» адресное поле в команде. Прямая адресация используется широко в сочетании с другими способами адресации. В частности, вся адресация к «малой» регистровой памяти ведется только с помощью прямой адресации. Косвенная адресация операндов. При этом способе адресный код команды указывает адрес ячейки памяти, в которой находится не сам операнд, а лишь адрес операнда, называемый указателем операнда. Адресация к операнду через цепочку указателей (косвенных адресов) называется косвенной. Адрес указателя, задаваемый программой, остается неизменным, а косвенный адрес может изменяться в процессе выполнения программы. Косвенная адресация, таким образом, обеспечивает переадресацию данных, т.е. упрощает обработку массивов и списковых структур данных, упрощает передачу параметров подпрограммам, но не обеспечивает перемещаемость программ в памяти (рис. 3.4).
Рис. 3.4. Косвенная адресация Классификация по способу формирования исполнительных адресов ячеек памяти Способы формирования адресов ячеек памяти (Аи) можно разделить на абсолютные и относительные. Абсолютные способы формирования предполагают, что двоичный код адреса ячейки памяти - Аи может быть извлечен целиком либо из адресного поля команды (в случае прямой адресации), или из какой-либо другой ячейки (в случае косвенной адресации), никаких преобразований кода адреса не производится. Относительные способы формирования Аи предполагают, что двоичный код адреса ячейки памяти образуется из нескольких составляющих: Б - код базы, И - код индекса, С - код смещения, используемых в сочетаниях (Б и С), (И и С), (Б, И и С). При относительной адресации применяются два способа вычисления адреса Аи: - суммирование кодов составляющих адреса (Аи = Б + С; Аи - И + С; Аи = Б + И + С); - совмещение (конкатенация) кодов составляющих адреса (например Аи = Б/С).
Относительная адресация Базирование способом суммирования. В команде адресный код Ак разделяется на две составляющие: Аб - адрес регистра в регистровой памяти, в котором хранится база Б (базовый адрес); С - код смещения относительно базового адреса (рис. 3.5). С помощью метода относительной адресации удается получить так называемый перемещаемый программный модуль, который одинаково выполняется процессором независимо от адресов, в которых он расположен. Начальный адрес программного модуля (база) загружается, при входе в модуль, в базовый регистр. Все остальные адреса программного модуля формируются через смещение относительно начального адреса (базы) модуля. Таким образом, одна и та же программа может работать с данными, расположенными в любой области памяти, без перемещения данных и без изменения текста программы только за счет изменения содержания всего одного базового регистра. Однако время выполнения каждой операции при этом возрастает. Базирование способом совмещения составляющих. Для увеличения емкости адресной ОП без увеличения длины адресного поля команды можно использовать для формирования исполнительного адреса совмещение (конкатенацию) кодов базы и смещения (рис. 3.6). Рис. 3.5 Схема формирования относительного адреса способом суммирования кодов базы и смещения. СМ – сумматор, РАОП – регистр адреса ОП, Б – база (базовый адрес), С – смещение, Аб – адрес регистра базы
Однако в данном случае начальные адреса массивов не могут быть реализованы произвольно, а должны иметь в младших разрядах n нулей, где n – длина поля смещения. Индексная адресация. Для работы программ с массивами, требующими однотипных операций над элементами массива, удобно использовать индексную адресацию. Схема индексной адресации аналогична базированию путем суммирования (см. рис. 3.5). В этом случае адрес i-гo операнда в массиве определяется как сумма начального адреса массива (задаваемого полем смещения С) и индекса И, записанного в одном из регистров РП, называемом теперь индексным регистром. Адрес индексного регистра задается в команде полем адреса индекса — Аин (аналогично Аб ). В каждом i-м цикле содержимое индексного регистра изменяется на величину постоянную (часто равную 1). Использование индексной адресации значительно упрощает программирование циклических алгоритмов. Для эффективной работы при относительной адресации применяется комбинированная индексация с базированием, при которой адрес операнда вычисляется как сумма трех величин (рис. 3.7):
Аи = Б + И + С. Рис. 3.6.Схема формирования относительного адреса способом совмещения кодов базы и смещения. Рис. 3.7 Схема формирования дополнительного адреса при индексной адресации и базировании: АИН - адрес индексного регистра.
Стековая адресация Стековая память (стек) является эффективным элементом современных ЭВМ, реализует неявное задание адреса операнда. Хотя адрес обращения в стек отсутствует в команде, он формируется схемой управления автоматически по специальному правилу.
Типы данных Основными типами данных в компьютерах являются байты, слова, двойные слова и квадрослова (учетверенные слова). Каждый из представленных типов данных может начинаться с любого адреса: это означает, что слово не обязано начинаться с четного адреса; двойное слово - с адреса, кратного 4 и т.д. Таким образом достигается максимальная гибкость структур данных и эффективность использования памяти.
Данные со знаком На рис. 4.1. приведены 4 формата данных со знаком с фиксированной точкой. Байт (биты 0÷ 6 – значение, бит 7 – знак), двойное слово (биты 0÷ 30 – значение, бит 31 – знак) и так далее. Рис. 4.1. Данные со знаком
Данные без знака На рис. 4.2. приведены 3 формата данных без знака с фиксированной точкой. Диапазон представления целых чисел: от -2-64 до 264. Рис. 4.2. Данные без знака
Популярное:
|
Последнее изменение этой страницы: 2016-04-11; Просмотров: 970; Нарушение авторского права страницы