Скачиваний:
23
Добавлен:
11.05.2015
Размер:
998.91 Кб
Скачать

3.3.4. Системная память

Системная память в рассматриваемой машине предназначена для хранения системных команд, т.е. минимального набора инструкций, необходимых для того, чтобы процессор мог произвести минимальное тестирование оборудования на предмет проверки его исправности и комплектации, выйти на связь с оператором или ввести Абсолютный загрузчик. Абсолютный загрузчик  это программа, предназначенная для загрузки в машину исполняемых программ (загрузочных модулей), в том числе и операционной системы. Адресное пространство системной памяти не входит в область абсолютных адресов, и программисту эта память недоступна.

3.3.5. Система адресации

Для обращения к операнду в адресной части команды должна быть ссылка на место расположения операнда. В машине, построенной по принципу «Unibus», обращение к оперативной памяти и ко внешним устройствам производится одинаково, по адресу.

Машина имеет адресное пространство 64Кб, и следовательно, для указания абсолютного адреса требуется 16 разрядов или полное слово. Команда тоже записывается полным словом. Если предположить, что всего имеется 70 команд, то на адресную часть остается в формате команды всего 8 разрядов. Но в эту адресную часть можно записать число не более 511. А это значит, что доступное адресное пространство составит лишь 512 байт, что недопустимо мало. Следовательно, непосредственно в одно машинное слово невозможно записать код команды и адрес операнда. Нельзя записать и операнд, т.к. диапазон представляемых чисел также мал (0, 511).

Для обращения к операнду или к его адресу необходимо использовать еще одно 16-разрядное слово, но оно не может находиться в области абсолютных адресов. Для этого используются регистры общего назначения, в которые можно записать либо адрес, либо сам операнд. Но тогда в команде необходимо указать, как используется РОН, возникает потребность в различных методах адресации. Рассмотрим несколько возможных методов адресации.

  • Прямой регистровый метод характерен тем, что операнд находится в выбранном РОНе. Обращение к нему будет наиболее простым и быстрым, но регистров мало, и этот метод используется для хранения промежуточных или специально выделенных данных. Схема метода представлена на рис. 3.9.

Рис. 3.9

  • Косвенный регистровый метод адресации определяет содержимое выбранного РОНа как адрес операнда. Такой метод позволяет обратиться по абсолютному адресу к любой ячейке оперативной памяти или к любому регистру внешнего устройства. Обращение к операнду производится через канал, что требует дополнительного времени. Схема метода представлена на рис. 3.10.

Рис. 3.10

  • Индексный метод адресации предполагает суммирование адреса, записанного в РОНе, с некоторым индексом или смещением, записанным либо в следующем слове после команды либо в специальном регистре. Этот регистр может иметь название регистр базы, сегментный регистр и т.п. Использование индекса позволяет обратиться к другой ячейке памяти или к другому регистру ВУ, не изменяя исходный адрес.

Индексный метод широко используется при работе с массивами данных: обращение к нужному элементу массива производится по постоянному адресу (имя массива) с учетом номера элемента (индекс). Схема метода представлена на рис. 3.11.

Рис. 3.11

  • Вариант индексного метода — базовый метод адресации — представлен на рис. 3.12. Принципиальное отличие его от предыдущего состоит в том, что смещение записано не в команде, а в специальном аппаратно назначенном регистре базы. Обеспечивается возможность не только сдвинуть на фиксированную величину адрес одного или группы операндов при постоянных программных адресах, но и сместить в оперативной памяти программу или обратиться к другому блоку данных. Другими словами, имеется возможность записывать уже готовую программу или блок данных в нужное место памяти. Этот метод используется в многозадачных операционных системах для распределения памяти между задачами, страницами, разделами или сегментами.

Рис. 3.12

  • Непосредственный метод адресации предполагает запись операнда непосредственно в программе после команды (рис. 3.13).

Рис. 3.13

Метод удобен при работе с константами  величинами не изменяемыми при работе программы, которые можно записывать прямо в команде на языке ассемблера. Но непосредственный метод нельзя использовать при работе с именами (переменными), т.к. адрес операнда связан с местом нахождения команды, но явно не определен.

  • Для работы с именами используется относительный метод адресации. Суть его состоит в том, что в команде, содержащей два слова, указан адрес операнда в виде смещения относительно этой команды. В ассемблере адрес операнда указывается прямо в команде, но при сдвиге команды по программе адрес операнда будет изменяться. А это означает, что если мы в программе расположим последовательно несколько одинаково записанных команд, то каждая из них будет обращаться к своему операнду. Рис. 3.14 представляет суть относительного метода адресации.

Рис. 3.14

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

Соседние файлы в папке Введение в вычислительную технику.