Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
409
Добавлен:
06.01.2022
Размер:
33.47 Mб
Скачать

21. Микро-эвм

В предыдущей главе было показано, что с помощью ПЗУ можно построить цифровые схемы последовательностного типа, которые несложно модифицировать путем изменения содержимого ПЗУ, Эти устройства позволяют реализовать набор команд» включающий условные и безусловные переходы. Микропроцессор обеспечивает возможность обращения к подпрограммам, т.е. реализует косвенные переходы. Наряду с арифметико-логическим устройством- АЛУ (Arithmetic Logic Unit, ALU) он содержит ряд рабочих регистров.

21.1. Основная структура микро-эвм

В качестве самостоятельного устройства микропроцессор не применяется. Для его работы требуется внешнее запоминающее устройство, хранящее последовательность команд, которые необходимо выполнить, т.е. программу. Это оперативное запоминающее устройство сначала подключается к микропроцессору для записи последовательности команд. После окончания процесса модификации программы ее записывают в ПЗУ, к которому всегда можно обратиться: Для хранения переменных необходимо оперативное запоминающее устройство (ОЗУ), объем которого определяется сложностью решаемой задачи. Обмен информацией с внешним оборудованием осуществляется с помощью специальных устройств ввода-вывода. Совокупность перечисленных устройств составляет структуру микроЭВМ, которая изображена на рис. 21.1. Показанный на этом рисунке микропроцессор представляет собой центральный управляющий и решающий блок, называемый центральным процессорным элементом (ЦПЭ) (Central Processing Unit, CPU). На рис. 21.1 не указаны структура ЦПЭ и емкость ОЗУ, так как здесь иллюстрируется упрощенная блок-схема микро-ЭВМ. По этим параметрам ЭВМ подразделяют на следующие классы:

Большие ЭВМ свыше 256 К слов длиной 24... 64 бит

Мини-ЭВМ (управляющие вычислительные машины) 8 ... 256 К слов длиной

12..,16 бит

Микро-ЭВМ 0,5...64 К слов длиной 4...16 бит

Бурное развитие микро-ЭВМ началось после появления однокристальных микропроцессоров. В связи с быстрым снижением стоимости микропроцессоров они стали применяться не только в качестве простых универсальных вычислительных

Рис. 21.1. Блок-схема микро-ЭВМ

устройств, нo и в приборостроении, где позволяют решать комплексные задачи, связанные как с вычислениями, так и с управлением по заданной программе. Универсальность микропроцессоров дает возможность решать различные задачи с помощью стандартных аппаратных средств, тогда как задача разработчика сводится к созданию программ. Указанная тенденция наиболее ярко проявляется при переходе к однокристальным микро-ЭВМ, которые благодаря высокой интеграции элементов наряду с процессором содержат тактовый генератор, устройство управления вводом-выводом, а также небольшие ОЗУ и ПЗУ. Такая микро-ЭВМ работоспособна без подключения дополнительных внешних устройств.

21.2. Принцип действия микропроцессора

Рассмотрим принцип действия и структуру команд микропроцессора типа МС 6800, разработанного фирмой Motorola. Большинство остальных микропроцессоров имеют подобные структуру и программные средства.

21.2.1. БЛОК-СХЕМА

На рис. 21.2 изображена блок-схема микропроцессора МС 6800. Длина адресного слова в нем составляет 16 бит, что дает возможность адресовать до 216 = 64 К =65536 слов. Длина слова данных равна 8 битам.

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

На рис. 21.3 показаны рабочие регистры микропроцессора МС 6800» доступные для программиста. Большинство арифметических операций выполняется с помощью аккумуляторов А и В. Индексный регистр служит для запоминания адресов, которые используются наиболее часто, указатель стека предназначен для организации подпрограмм. Регистр признаков (Condition Code Register) содержит дополнительную информацию результате выполнения последней команды.

Рис. 21.2. Внутренняя структура микропроцессора МС 6800.

Рис. 21.3. Рабочие регистры микропроцессора МС 6800, доступные для программиста.

21.2.2. СТРУКТУРА КОМАНД

Как уже упоминалось, микропроцессор МС 6800 обрабатывает адресные слова длиной 16 бит (2 байта) и слова данных длиной 8 бит (1 байт). Такие длинные двоичные комбинации трудны для восприятия программистом. Поэтому используется сокращенный способ записи: каждые 4 бита объединяют в одну цифру. Таким образом можно образовать 16 различных значений. Полученный код называется шестнадцатеричным или сокращенно гексокодом. Для цифр от 0 до 9 используются обычные десятичные цифры. Цифры от десяти до пятнадцати представляются буквами от А до F. Соответствие между различными кодами иллюстрирует табл. 21.1.

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

Во-вторых, каждую цифру можно представить в виде двоичного числа и расположить их друг за другом. При этом способе записи получается двоичное число, которое можно преобразовать с помощью приведенного ниже метода. Поясним это на примере:

Таким образом, для указания адреса двоичные числа, состоящие из 16 разрядов, могут быть представлены в сокращенной форме записи, содержащей 4-разрядные шестнадцатеричные числа, а 8-разрядные слова данных - в виде двухразрядных шестнадцатеричных чисел. Различные команды, которые должен выполнить микропроцессор, записываются на машинном языке (Oр Code) с помощью 8-разрядных слов, т. е. двухразрядных шестнадцатеричных чисел. Наряду с этим применяются также символические обозначения (мнемоника), содержащие сокращенные названия команд, удобные для запоминания. Команда ЗАГРУЗИТЬ АККУМУЛЯТОР А, например, сокращенно записывается как LDAA. Однако в такой форме записи микропроцессор не может ее воспринять. Поэтому такую запись необходимо сначала перевести на машинный язык- Для этой цели используют таблицу или специальную программу перевода (ассемблер).

После записи команды LDA А необходимо указать микропроцессору, чем должен быть загружен аккумулятор, т.е. с каким операндом должна использоваться команда.

Для этого имеются различные возможности.

1) Прямая адресация (extended)

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

Функциональное Пример кода

назначение байта В6

Код команды А1

Старший байт адреса

Младший байт адреса 48

Машинный код команды LDA A (ext) для микропроцессора МС 6800:В6=101101102. Запишем адрес для приведенного выше примера:

2) Укороченная адресация (direct)

В программе указывается только один младший байт адреса, старшему байту адреса микропроцессором автоматически присваивается нулевое значение. Команде LDA A (dir) соответствует машинный код, равный 96. Этот способ адресации Base Page позволяет затрачивать меньше времени на формирование адресов, которые лежат в пределах от 0000 до OOFF16 или от 0 до 25510. Следовательно, в этой области памяти целесообразно записывать переменные и константы, которые используются наиболее часто. При этом получается следующая структура:

Функциональное Пример кода

назначение байта

Код команды 96

Байт адреса 17

В этом примере считывается содержимое ячейки памяти с адресом

3) Адресация с индексированием (indexed)

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

Функциональное Пример кода назначение байта

Код команды А6

Байт, задающий

Смещение 07

Машинный код для команды LDA A (inx):A616 = 101001102. Пусть в индексном регистре находится код адреса A14816. Тогда в приведенном выше примере будет считано содержимое запоминающего устройства по адресу А14816 + 0007=A14F16.

Величина смещения интерпретируется микропроцессором как положительное 8-разрядное число. Отрицательное смещение не- предусмотрено. Следовательно, максимальное смещение составляет

В разд. 21.3.3 (команды перехода) будут рассмотрены другие способы задания величины смещения. Они применяются для реализации относительных переходов. При этом величина смещения интерпретируется как 7-разрядное число со знаком.

4) Непосредственная адресация (immediate)

Согласно этому способу, байт данных следует непосредственно за командой:

Функциональное Пример кода

назначение байта

Код команды 86.

Байт данных 3F

Машинный код, соответствующий команде LDA A (imm.):8616- В данном примере число 3F16=001111112 загружается в аккумулятор А. В отличие от приведенного примера для непосредственной загрузки индексного регистра и указателя стека необходимо 2 байта данных, так как они являются 16-разрядными.

5) Неявная адресация (inherent)

При этом способе адресации операнд подразумевается, но не указывается, так как его определяет команда:

Функциональное Пример кода

назначение байта

Код команды 4F

Пример 4F16 = CLRA означает: ОЧИСТКА АККУМУЛЯТОРА А. Очевидно, что эта команда может быть выполнена без дальнейшего уточнения.

21.2.3. ВЫПОЛНЕНИЕ КОМАНДЫ

Выполнение команды производится, как правило, за несколько машинных циклов. В примере LDA A(ext.)= Вб16 рассмотрим отдельные этапы, которые последовательно выполняет микропроцессор. Когда программный счетчик вызывает адрес М, по которому в памяти записана команда, запоминающее устройство передает на шину данных код команды, который в данном случае равен Вб16. Микропроцессор дешифрирует команду и определяет, как он должен интерпретировать следующие два байта команды, для того чтобы получить адрес операнда. В случае прямой адресации он передает адрес М + 1 на шину адреса и считывает соответствующий байт из ячейки памяти. В следующем цикле он передает адрес М + 2 и считывает соответствующий байт из следующей ячейки памяти. В четвертом цикле микропроцессор располагает байты друг за другом (т. е. формирует 16-разрядный адрес операнда) на соответствующих адресных линиях и считывает полученное из памяти слово в аккумулятор А.

Таким образом, для выполнения команды требуется четыре машинных цикла. Они перечислены в табл. 21.2. Аналогично можно показать, что для выполнения команды LDA A(dir.) необходимо три цикла, а для команды LDA A(imm.) 2 цикла.

Количество циклов однозначно определяет время выполнения команды. Для микропроцессора МС 6800 время цикла равно периоду тактовых импульсов. Поэтому при тактовой частоте 1 МГц время цикла составляет 1 мкс, т. е. команда LDA A (ext.) исполняется за 4 мкс.