Микропроцессорный комплект к 1804.

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

ОУ предназначено для выполнения операций. Оно включает в себя в качестве узлов регистры, сумматоры, каналы передачи информации, мультиплексоры для коммутации каналов, дешифраторы и т.д. УУ координирует действие узлов ОУ. УУ вырабатывает в определенной временной последовательности управляющие сигналы, под действием которых в узлах ОУ выполняются требуемые действия. Благодаря достижениям микроэлектроники, обеспечивающей в одной микросхеме упаковку десятков тысяч элементов, такое сложное цифровое устройство, как процессор, разрешается в одном или

микропроцессорный комплект к 1804. - student2.ru

нескольких БИС. Слово "большие" относится не к физическим размерам схемы, а к степени интеграции элементов схемы.

Рассмотрим построение и функционирование микропроцессорной секции К1804ВС1, на базе которой создан процессор серийно выпускаемой мини-ЭВМ СМ - 1420.

Микропроцессорная секция (МПС) представляет собой 4-х разрядную секцию, в которой возможны хранение и обработка 4-х разрядных данных. Объединением нескольких секций можно построить многоразрядное ОУ процессора.

БЛОК ВНУТРЕННЕЙ ПАМЯТИ (БВП). В блоке имеется регистровое запоминающее устройство (РЗУ), содержащее 16 4-х разрядных регистров. Адреса регистров представляются 4-х разрядными кодовыми операциями. РЗУ имеет два адресных входа А3...А0 и В3...В0, на которые информация поступает из команды.

Задавая в полях команды адреса А3...А0 и В3...В0, можно одновременно производить чтение и выдачу на выходы А и В РЗУ содержимого любой пары регистров. При совпадении адресов А3...А0 и В3...В0 на оба входа А и В РЗУ передается содержимое одного и того же регистра. Выданное на выходы А и В содержимое регистров РЗУ принимается соответственно в регистры PrA и PrB. Далее эти регистры служат источниками операндов, над которыми выполняются операции. Запись в РЗУ в каждом тактовом периоде может производить лишь в один из регистров, адрес которого задается шиной В3...В0. Записываемые в РЗУ данные поступают на вход РЗУ с выхода арефметико - логического устройства (АЛУ) через узел сдвигателя данных АЛУ (СДА). Данные через СДА могут передаваться без сдвига либо со сдвигом на один разряд влево и вправо. Таким образом, за один тактовый период из РЗУ может быть выдано содержимое двух регистров, над ними в АЛУ выполнена некоторая операция, и полученный в АЛУ результат сдвинут вправо или влево и записан в регистр РЗУ. Выводы PR0 и PR3 в зависимости от направления сдвига служат входом или выходом, через которые производится запись значения в освобождающиеся при сдвиге разряд и выдача содержимого выдвигаемого разряда. Чтение из регистров РЗУ, адресуемых шинами А3...А0 и В3...В0 происходит при высоком уровне тактового сигнала Т.

Вход РЗУ при этом логически отключен, и РЗУ не реагирует на поступающую на вход информацию. Выдаваемые из РЗУ данные принимаются в регистры операндов PrA и PrB, построенные на простых триггерах.

При низким уровне тактового сигнала (временной интервал t2 - t3) входы регистров PrA и PrB логически отключаются от выходов РЗУ и регистры продолжают хранить принятую информацию. При этом в регистр РЗУ, адресуемый шиной В3...В0, производится запись передаваемой через СДА информации таким образом, что чтение и запись в РЗУ разнесены во времени.

БЛОК РАБОЧЕГО РЕГИСТРА Q (БР). Блок содержит одиночный 4-х разрядный регистр Q, построенный на триггерах D - типа. Содержимое регистра постоянно передается в узел АЛУ (в блоке БАЛ). Запись же в регистр может производится по положительному перепаду тактовых импульсов. Данные на вход регистра передаются через узел сдвигателя регистра Q (CP), который работает аналогично узлу СДА блока БВП, передавая записываемые в регистр данные без сдвига либо со сдвигом на один разряд влево или вправо. В отличии от СДА, через который передается либо результат операции с выхода АЛУ либо содержимое самого регистра Q. Последнее обеспечивает возможность выполнения сдвига содержимого регистра Q, производимого параллельно с операцией в АЛУ.

БЛОК АРИФМЕТИКО - ЛОГИЧЕСКИЙ (БАЛ). АЛУ имеет два 4-х разрядных входа R и S. Данные на эти входы поступают с выхода селектора источников данных (СИД). Кроме этих входов АЛУ имеет вход для подачи переноса С0. На вход R АЛУ СИД коммутирует или выход регистра PrA блока БВП или внешнюю шину данных D3...D0 либо передает на этот вход нулевое значение. На вход 8 СИД коммутируют один из трех источников (PrA, PrB, PrQ) или передают нулевое значение.

Результат операции с выхода АЛУ, как отмечалось выше, подается на сдвигатели СДА и СР блоков БВП и БР. Кроме того, результат операции подается на селектор выходных данных (СВД), который коммутирует в выходную шину У3...У0. Содержимое регистра PrA блока БВП либо выход АЛУ. СВД построен на элементах с тремя состояниями и управляется сигналом Е... Передача информации на шину У3...У0 производится при управляющем сигнале Е...= 0, при сигнале Е...= 1 СВД переводится в третье (выключенное) состояние, и микросхема МПС отключается от шины У3...У0.

АЛУ имеет выходы, на которых формируются следующие признаки результата выполненной информации:

- Z - признак нулевого результата (Z=1, если результат равен нулю).

- F3 - старший разряд результата, который может рассматриваться как знаковый разряд.

- С4 - признак переноса (при выполнении арифметических операций С4=1, если возникает перенос из старшего разряда).

- OVR - признак перевыполнения (при выполнении арифметических операций OVR = С3 + С4, где С3 - перенос, передаваемый в старший разряд); если числа представляются со знаковым разрядом, то при

OVR = 1 искажается знаковый разряд, т.е. результат оказывается ошибочным.

Обозначение символом - это операция по разрядного суммирования по модулю 2 (эту операцию называют так же операцией "исключающее или" или операцией "неравнозначности").

БЛОК УПРАВЛЕНИЯ (БУ). Блок предназначен для преобразования содержимого поля кода операции i8...i0 команды в систему управляющих сигналов, под действием которых в узлах микросхемы МПС выполняются операции.

АССЕМБЛЕР К580

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

Рассмотрим операцию сложения 2-х 16-ти значных десятичных чисел, записанных в двоично - десятичном коде. Чтобы сложить их в 8-ми разрядном МП надо повторить операцию сложения 8 раз. Один из регистров используется в качестве счетчика. Две пары регистров используют для указания адресов в ОЗУ, в котором записаны слагаемые. Сложение начинается с младших разрядов. Каждая десятичная цифра записывается 4-мя разрядами, значит в первом цикле будут складываться две десятичные цифры.

Алгоритм решения задачи выглядит следующим образом:

1. Определение в памяти адреса слагаемых.

NA 100(H) - 107(H)

NB 108(H) - 10F(H)

2. Загружаем в аккумулятор два младших десятичных разряда числа NA, которые записаны по адресу 100 (Н)

3. Складываем содержимое аккумулятора и 2 младших десятичных разряда числа NB, записываем по адресу 108 (Н)

4. Записываем результат сложения по адресу NА (100Н)

5. Увеличиваем содержимое регистров А и В на 1, а содержимое счетчика уменьшаем на 1. В аккумулятор помещается содержимое ячейки 101H, которая складывается в аккумуляторе с содержимым ячейки 109H. И так происходит до тех пор пока счетчик не обнулится.

При сложении двоично - десятичных чисел должна проводится операция DAA - десятичной коррекции аккумулятора: которая состоит в том: что если при сложении получилась запрещенная комбинация, то добавляется цифра 6, т.к. перенос в 4-х разрядном двоичном числе формируется на цифре 16, а в десятичном - на цифре 10, то добавляя 6 мы формируем цифру переноса в старший разряд и избавляемся от запрещенной комбинации.

Команда на ассемблере содержит 4 поля, которые отделяются друг от друга пробелом или символами (: ; -) в зависимости от типа ЭВМ.

Первое поле называется меткой или именем. Оно заполнено невсегда, а только в случае многократного обращения к этой команде.

Второе поле - поле операции. Заполняется всегда.

Третье поле - поле операнда. Существуют операции (останов, конец), в которых операнд не указывается.

Четвертое поле - поле комментария. Не транслируется в двоичный код и является поясняющим.

ПРИМЕР ПРОГРАММЫ:

1. LXI D,NA

2. LXI D,NB

3. MVI C.8

4. XRA

5. LOOP: LDAX D

6. ADC M

7. DAA

8. STAX D

9. INX H

10. INX D

11. DCR C

12 JNZ LOOP

ком 1. команда непосредственной загрузки адреса NA в память в регистры D, E (запись 100)

ком 2. команда непосредственной загрузки адреса 108(H) в регистры H,L

ком 3. команда непосредственной пересылки числа циклов (8) в счетчик, которым является регистр С

ком 4. операция очистки или обнуления аккумулятора. Исключает "ИЛИ" или cложение по модулю два содержимого аккумулятора с самим собой.

ком 5. имеет имя, т.к. к ней обращаются неоднократно в процессе выполнения

программы. По этой команде происходит загрузка в аккумулятор содержимого ячейки ОЗУ, номер которой записан в регистрах D,E. Команда косвенной адресации, т.е. в коде команды указывается номер регистра, содержащего номер ячейки ОЗУ, содержащей операнд. На первом шаге это будет ячейка 100(Н)

ком 6. содержимое аккумулятора, которое является содержимым ячейки 100(Н) на первом шаге, складывается с байтом NB, который содержится в ячейке 108(Н). Буква М означает, что NB считывает из ячейки ОЗУ

ком 7. команда десятичной коррекции

ком 8. STORE - команда с косвенной адресацией. Результат сложения помещается в ячейку ОЗУ, номер который записан в регистре D.

ком 9. Инкремент - увеличение на 1 содержимого регистра H

ком 10. Инкремент - увеличение на 1 содержимого регистра D

ком 11. Декремент - уменьшение на 1 содержимого регистра С (счетчика)

ком 12. Команда условного перехода. Если содержимое счетчика не ноль, то

осуществляется переход к метке LOOP.

Наши рекомендации