Система адресации
Для обращения к операнду в адресной части команды должна быть ссылка на место расположения операнда. В машине, построенной по принципу «Unibus», обращение к оперативной памяти и ко внешним устройствам производится одинаково, по адресу.
Машина имеет адресное пространство 64Кб, и следовательно, для указания абсолютного адреса требуется 16 разрядов или полное слово. Команда тоже записывается полным словом. Если предположить, что всего имеется 70 команд, то на адресную часть остается в формате команды всего 8 разрядов. Но в эту адресную часть можно записать число не более 511. А это значит, что доступное адресное пространство составит лишь 512 байт, что недопустимо мало. Следовательно, непосредственно в одно машинное слово невозможно записать код команды и адрес операнда. Нельзя записать и операнд, т.к. диапазон представляемых чисел также мал (0, 511).
Для обращения к операнду или к его адресу необходимо использовать еще одно 16-разрядное слово, но оно не может находиться в области абсолютных адресов. Для этого используются регистры общего назначения, в которые можно записать либо адрес, либо сам операнд. Но тогда в команде необходимо указать, как используется РОН, возникает потребность в различных методах адресации. Рассмотрим несколько возможных методов адресации.
Прямой регистровый метод характерен тем, что операнд находится в выбранном РОНе. Обращение к нему будет наиболее простым и быстрым, но регистров мало, и этот метод используется для хранения промежуточных или специально выделенных данных. Схема метода представлена на рисунке:
Косвенный регистровый метод адресации определяет содержимое выбранного РОНа как адрес операнда. Такой метод позволяет обратиться по абсолютному адресу к любой ячейке оперативной памяти или к любому регистру внешнего устройства. Обращение к операнду производится через канал, что требует дополнительного времени. Схема метода представлена на рисунке:
- Индексный метод адресации предполагает суммирование адреса, записанного в РОНе, с некоторым индексом или смещением, записанным либо в следующем слове после команды либо в специальном регистре. Этот регистр может иметь название регистр базы, сегментный регистр и т.п. Использование индекса позволяет обратиться к другой ячейке памяти или к другому регистру ВУ, не изменяя исходный адрес.
Индексный метод широко используется при работе с массивами данных: обращение к нужному элементу массива производится по постоянному адресу (имя массива) с учетом номера элемента (индекс). Схема метода представлена на рисунке: