Адресное пространство
Шестнадцатиразрядный код адреса позволяет обращаться к 32К 16-разрядных ячеек. Нижние 4К адресов (1600008÷1777778) отведены под регистры внешних устройств. Однако пользователь не обязан использовать все адреса этого пространства исключительно для этой цели и может руководствоваться соображениями необходимости.
Как показано на рис.7.4, слово делится на старший и младший байты. Ячейки, содержащие полные слова, всегда имеют четные адреса. Адреса байтов могут быть как четными, так и нечетными. Адрес младшего байта слова является четным и совпадет с адресом самого слова, адрес старшего байта слова является нечетным и на 1 больше адреса соответствующего слова (рис. 7.4). Адреса и данные принято записывать в 8-ричной системе исчисления (от 000000 до 177777). Организация памяти микропроцессора по словам и байтам для первых 4К адресов приведена на рис. 7.5.
| ||||||||
Рис.7.4 Формат слова микропроцессора |
Слово | Байты | ||||
байт | байт | ||||
Старший | Младший | Младший | |||
Старший | Младший | Старший | |||
Старший | Младший | Младший | |||
Старший | Младший | Старший | |||
Старший | Младший | Младший | |||
Старший | Младший | Старший | |||
Старший | Младший | Младший | |||
Старший | Младший | Старший |
Рис.7.5 Организация памяти микропроцессора по словам и байтам для первых 4К адресов
Часть адресов зарезервирована для использования при обработке внутренних и внешних прерываний программы (адреса 0÷3768)
Пример:
Формат команд
В микропроцессоре используются три типа команд: безадресные, одноадресные и двухадресные. В безадресных командах код команды содержит только код операции. В кодах одноадресных и двухадресных команд обычно содержится информация, которая определяет:
- выполняемую функцию (код операции);
- регистры общего назначения, используемые при выборке операндов;
- метод адресации (способ использования выбранного РОН).
Так как большая часть информации, обрабатываемой вычислительной машиной, представляет собой данные, сформированные в массивы, списки, строки символов и т.д., микропроцессор разработан с учетом возможности эффективной обработки сформированных структур данных.
Регистры общего назначения могут быть использованы:
- как накопители (обрабатываемые данные хранятся в регистрах);
- как указатели адреса (регистр общего назначения содержит адрес операнда, а не сам операнд);
- как указатели адреса, содержимое которых изменяется автоматически с заданным шагом, что позволяет обращаться к последовательно расположенным ячейкам памяти. Автоматическое увеличение содержимого указателя при обращении к последовательно расположенным ячейкам памяти носит название автоинкрементной адресации. Автоматическое уменьшение содержимого указателя при обращении к последовательно расположенным ячейкам памяти носит название автодекрементной адресации. Эти методы могут быть использованы при обработке табулированных данных;
- как индексные регистры, содержимое которых прибавляется к индексному слову для вычисления адреса операнда. Это позволяет легко обращаться к различным элементам списка.
Использование автоинкрементного и автодекрементного методов адресации дает возможность организации стековой памяти. В качестве указателя стека программно может быть выбран любой РОН, однако определенные команды (используемые при обслуживании прерываний, обращении и возврате из подпрограмм) автоматически используют РОН R6 как аппаратный указатель стека.
Формат одноадресных команд (таких как очистка, инкрементирование) имеет следующий вид:
КОП | Метод | РОН | |||
Рис. 7.6 Формат одноадресных команд
Разряды 15÷06 содержат код операции, который определяет выполняемую команду. Разряды 05÷00 образуют шестиразрядное поле, именуемое полем адресации операнда приемника, которое в свою очередь состоит из двух подполей:
а) разряды 02÷00 определяют один из восьми РОН, который использует данная команда;
б) разряды 05÷03 определяют способ использования выбранного регистра (метод адресации). Причем разряд 03 определяет прямую или косвенную адресации.
Операции над двумя операндами (такие, как сложение, пересылка, сравнение) выполняются с помощью команд, в которых имеются два адреса. Задание разрядов в поле адресации первого и второго операндов определяет различные методы и различные регистры общего назначения. Формат двухадресной команды имеет следующий вид:
КОП | Метод | РОН | Метод | РОН | |||||
Поле адресации операнда источника | Поле адресации операнда приемника |
Рис. 7.7 Формат двухадресной команды
Поле адресации операнда источника используется для выборки операнда источника. Поле адресации операнда приемника используется для выборки операнда приемника и занесения результата. Например, по команде АDD А,В складывается содержимое ячейки А (операнд источника) с содержимым ячейки В (операнд приемника). После выполнения операции сложения в ячейке В будет находится результат операции, а содержимое ячейки А не изменится.
Команда может занимать от одного до трех слов, причем первое слово команды, содержащее код операции, называется командным словом.
Методы адресации
В микропроцессоре 1801 ВМ1 используется 4 метода прямой адресации, номера которых четные, и 4 метода косвенной адресации с нечетными номерами.
Дополнительно, в качестве регистра общего назначения можно использовать регистр R7, но эффективно он работает лишь с 4-мя методами. Здесь каждый метод имеет особое название и собственную мнемонику.
Рассмотрим небольшой набор команд, необходимый для пояснения работы методов адресации.
Здесь S - источник ; D – приемник.
Таблица 7.1
Примеры команд
Мнемоника | Описание | 8-ричный код команды |
CLR... (CLR R0) | Очистка указанной ячейки или регистра | 0050DD (005000) |
CLR B... | Очистка байта (обнуляется старший и младший байт указанной ячейки) | 1050DD |
INC... | Увеличение на единицу указанной ячейки | 0052DD |
INC B... | Прибавление единицы к байту | 1052DD |
COM... | Инвертирование (всех битов операнда) | 0051DD |
COM B... | Инвертирование байта | 1051DD |
ADD... | Сложение операндов. Результат - по адресу 2-го операнда | 06SSDD |
Как видно из табл. 7.1, команды могут оперировать как словами, так и байтами, что находит отражение в мнемонике и в крайнем левом бите кода операции.
На рис.7.6 показаны последовательности операций выполнения команды с каждым из четырех методов прямой адресации. При регистровом методе адресации любой из восьми регистров общего назначения может быть использован как накопитель. Следовательно, операнд будет находиться в выбранном регистре. Так как РОНы аппаратно реализованы в БИС МП, они обладают более высоким быстродействием, чем любая память, работающая под управлением процессора. Это преимущество особенно проявляется при операциях с переменными, к которым необходимо обращаться.
Рис.7.6 Методы прямой адресации |
№ метода адресации | Метод адресации |
Регистровый | |
Автоинкрементный | |
Автодекрементный | |
Индексный |
Прямая регистровая адресация (№0).
Правило: содержимое регистра, указанного в команде, используется как операнд. Байтовые команды всегда оперируют содержимым младшего байта регистра. При пересылке байта в регистр происходит расширение знака, при котором старший бит пересылаемого байта восемь раз копируется в старшем байте регистра-приемника.
Примеры регистровой адресации:
Символическое обозначение | Восьмеричный код команды | Наименование команды |
1. INC R3 | Прибавление единицы | |
Действие: Прибавляет единицу к содержимому третьего РОН. | ||
2. ADD R2, R4 | Сложение | ||
Действие: Складывается содержимое R2 с содержимым R4. | |||
До выполнения операции | После выполнения операции | ||
R2) 000002 | R2) 000002 | ||
R4) 000004 | R4) 000006 | ||
3. COM B R4 | Инвертирование байта | ||
Действие: Заменяется содержимое разрядов 07÷00 в R4 их обратным кодом. (Байтовые команды, использующие регистры общего назначения, оперируют только с младшим байтом информации, содержащейся в РОН). | |||
До выполнения операции: | После выполнения операции: | ||
R4) 022222 | R4) 022155 | ||
Дата добавления: 2016-03-10; просмотров: 1197;