Мп-устройство на основе МП кр580вм80а 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Мп-устройство на основе МП кр580вм80а



Упрощенная структурная схема вычислительного устройства на базе МП I8080 (КР580ВМ80А) представлена на рис. 6.9. Это простейшая микро-ЭВМ минимальной конфигурации, структура которой является частным случаем обобщенной структуры микро-ЭВМ, приведенной на рис. 6.1.

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

К шинам адреса и данных системной магистрали, даже в простейшей микро-ЭВМ, подключено достаточно много устройств: ОП, ПЗУ, несколько ППУ. Однако нагрузочная способность выходов МП КР580, в силу технологических особенностей, весьма мала. К любому выходу МП допускается подключать не более одного входа микросхемы ТТЛ. Поэтому в шины адреса и данных включаются специальные буферы, причем ШД требует двунаправленного буфера. Для построения таких буферов предусмотрены микросхемы шинных формирователей КР580ВА86 и КР580ВА87.

Общие принципы функционирования МП устройства следующие. Из МП на ША (16 разрядов) выдается адрес очередной команды. В этот момент МП еще «не знает», сколько байт занимает данная команда. Первый байт команды, выбранный из памяти (в частном случае из ПЗУ), пересылается по внутренней ШД в РгК. Выход РгК связан с дешифратором команд, который определяет тип выполняемой операции. При этом к содержимому СчК добавляется 1, т.е. формируется адрес следующего байта, а УУ вырабатывает ряд сигналов, позволяющих выполнить те или иные микрооперации. После этого возможны два варианта дальнейших действий:

· Если команда однобайтовая, то она выполняется, а содержимое счетчика адреса (РС) = (РС) + 1 является адресом следующей команды.

· Если команда содержит более одного байта (2 или 3) и для ее выполнения требуется вызов дополнительных байт, то содержимое счетчика адреса команд (РС) = (РС) + 1 является адресом следующего байта той же команды.

Рассмотрим более подробно процесс выполнения команды. Этот процесс разбивается на машинные циклы, которые обозначаются M1...M5. Число циклов в одной команде может быть от одного до пяти. В свою очередь каждый машинный цикл состоит из тактов, обозначаемых T1...T5. В одном машинном цикле может быть от трех до пяти тактов. Имеется в виду 5 типов тактов, поскольку в каждом такте выполняется определенное действие по реализации машинного цикла. При этом количество тактов, как временных интервалов, может быть значительно больше за счет тактов Т2, о чем речь пойдет ниже. В каждом машинном цикле производится одно обращение к памяти или ППУ в разных вариантах. Каждый такой вариант обращения называется состоянием цикла. Всего в МП КР580 возможно 10 состояний машинного цикла. Это выборка первого байта команды, чтение из памяти, запись в память, чтение из стека, запись в стек, ввод из ППУ, вывод через ППУ, подтверждение прерывания, подтверждение останова, подтверждение прерывания при останове. При этом первым машинным циклом любой команды всегда является выборка первого байта команды.

Во всех машинных циклах первые три такта (T1,T2,T3) используются для организации обмена с памятью и ППУ. Такты T4 и T5 (если они есть) – для выполнения внутренних операций в МП. Таким образом, процесс выполнения команд состоит из стольких машинных циклов, сколько обращений к памяти или ППУ требуется для ее исполнения.

 

 

На рис. 6.10 представлена временная диаграмма цикла М1 из пяти тактов (первый машинный цикл любой команды). Отсчет тактов производится от положительных фронтов импульса F1. Действия процессора по реализации машинного цикла М1 состоят в следующем:

T1 – содержимое РС выдается на ША, адрес принимается памятью, где начинается чтение байта команды из ячейки.

T2 – проверяется наличие сигнала на входе READY (уровень логической 1). Этот сигнал подается на вход МП через интервал времени, достаточный для завершения процесса чтения из памяти. Если на входе READY сигнал отсутствует (действует логический 0), то МП устанавливается в режим ожидания, в котором каждый следующий такт рассматривается как T2 до тех пор, пока не появится сигнал READY. С приходом этого сигнала МП выходит из режима ожидания и переходит в такт T3.

T3 – байт с ШД принимается в МП и помещается в регистр команд (РгК).

T4 – происходит анализ принятого байта и выяснение потребности в дополнительном обращении к памяти. Если дополнительных обращений не требуется (команда однобайтовая и операнды находятся в регистрах процессора), то в этом же такте или с использованием дополнительного такта T5 выполняются предусмотренные командой микрооперации.

T5 – дополнительный такт.

Если требуется дополнительное обращение к памяти, то после T4 цикл M1 завершается и происходит переход к циклу M2.

Забегая вперед, отметим, что КОП всегда находится в первом байте команды. Если команда двух- или трехбайтовая, то в остальных байтах находятся данные или адрес. Содержимое этих байтов помещается в аккумулятор или буферные регистры. Так, например, в команде MOV (запись аккумулятора в ячейку памяти) двухбайтовый адрес, который следует за КОП, помещается в регистровую пару WZ, а затем, при исполнении, он передается через мультиплексор непосредственно в РА и далее через буфер на ША.

В каждом машинном цикле в такте T1 по переднему фронту F2 МП выдает сигнал синхронизации SYNC, т.е. на выходе SYNC появляется уровень логической 1. Одновременно с этим сигналом в такте T1 МП выставляет на ШД 8- разрядное управляющее слово, которое несет в себе полную информацию о микрооперациях в текущем машинном цикле. Так, например, 1 в разряде D0 управляющего слова является сигналом подтверждения прерывания INTA. Наличие 1 в разряде D2 означает, что в данном машинном цикле на ША установлено содержимое указателя стека (регистр SP). Наличие 1 в разряде D3 означает, что МП в состоянии останова. В момент прихода импульса F1, означающего начало такта T2, на схеме "&" (см. рис. 6.9) вырабатывается импульс, называемый строб состояния. Этот строб разрешает запись управляющего слова с ШД во внешний регистр, названный на схеме фиксатор состояния.

Используя это слово или его часть, специальные логические схемы вырабатывают системные управляющие сигналы для обращения к памяти и ППУ. В общем случае фиксатор состояния и блок логических схем называются системным контроллером. Эти, а также некоторые другие вспомогательные схемы, в частности, шинный формирователь, оформлены в виде специальной БИС КР580ВК28. Однако в простейших микро-ЭВМ часто требуются только 4 управляющих сигнала – R, W, IN, OUT. Поэтому необходимость в БИС ВК28 отпадает, а используют какой-либо управляемый регистр и 2-3 логические схемы.

ФОРМАТЫ ДАННЫХ МП КР580

Основной формат данных изображен на рис. 6.11.

 

 

В микро-ЭВМ байт данных может интерпретироваться следующим образом:

· Целое число без знака

255(10) = 1111 1111(2) = FF(16) (FFH)

................

0(10) = 0000 0000(2) = 00(16) (00H).

· Число со знаком в дополнительном коде

+127(10) = 0111 1111(2) = 7F(16)

................

0(10) = 0000 0000(2) = 00(16)

-1(10) = 1111 1111(2) = FF(16)

................

-128(10) = 1000 0000(2) = 80(16).

· Двухразрядное двоично-десятичное число

99(10) = 1001 1001(2) = 99(16)

................

0(10) = 0000 0000(2) = 00(16).

· Логический байт данных.

 

В ряде случаев используется двухбайтовый формат данных:

· Двухбайтовое число со знаком в дополнительном коде

· Двухбайтовое число без знака

ФОРМАТЫ КОМАНД МП 580ВМ80

Для команд используются одно-, двух-, трехбайтовые форматы, причем код операции (КОП) занимает всегда 1 байт. Кроме того, следует помнить, что ША имеет 16 разрядов, т.е. позволяет адресоваться к памяти в 64 К однобайтовых ячеек. Следовательно, в этом случае для адреса требуется 2 байта.

В то же время, используя команды INPUT/OUTPUT, программист может адресоваться к 256- регистрам ППУ. Следовательно, в этом случае для адреса требуется только 1 байт, который передается по младшим разрядам ША А7...А0. (Этот же байт дублируется в старших разрядах ША А15...А8, т.е. если адрес регистра F8, то на ША присутствует F8F8).

В общем случае форматы команд МП имеют вид, показанный на рис. 6.12. В первом байте помещается КОП, а во втором однобайтовый операнд или номер регистра ППУ (см. рис. 6.12, а, б).

 

 

В трехбайтовом формате (рис. 6.12, в) первый байт содержит код операции (КОП). Два следующих байта содержат соответственно младший и старший байты адреса ячеек ОП (ПЗУ) либо двухбайтовый операнд.

СПОСОБЫ АДРЕСАЦИИ

Способы адресации рассмотрим очень коротко, поскольку все виды адресации в общем виде разобраны ранее.

 

Прямая адресация

В этом случае источником или приемником операнда являются ячейки памяти или регистр ППУ.

Адрес ячейки памяти или регистра ППУ записывается в команде:

- двухбайтовая команда – адрес регистра ППУ;

- трехбайтовая команда – адрес ячейки памяти.

 

Регистровая адресация

В этом случае источником или приемником операнда является РОН. Номер РОН записывается в коде операции. Команды однобайтовые (номер РОН – 3 разряда).

 

Косвенная адресация

В этом случае источником или приемником операнда является ячейка памяти. Команды однобайтовые. Адрес ячейки памяти находится в регистровой паре, например HL. Есть команды инкремента и декремента (±1) содержимого регистровых пар, что позволяет модифицировать адрес.

 

Стековая адресация

В этом случае источником или приемником операнда является ячейка памяти. Команды однобайтовые.

Адрес вершины стека находится в указателе стека SP. При заполнении стек растет в сторону уменьшения адресов, т.е. формируется стек, который ранее был назван перевернутым. Начальный адрес стека устанавливается в указателе стека (SP) программным путем. Уже отмечалось, что SP имеет 16 разрядов. Поэтому, если начальным адресом стека выбрать последний адрес всего адресного пространства, то стек может иметь емкость 64 Кбайт.

Обмен со стеком (т.е. загрузка/выгрузка) производится двухбайтовыми словами. При этом загрузка в стек сводится к следующей последовательности действий со стороны МП:

- выполняется операция (SP) = (SP) - 1;

- по новому адресу записывается старший байт вводимого двухбайтового
слова;

- выполняется операция (SP) = (SP) - 1;

- по новому адресу записывается младший байт (второй) вводимого двухбайтового слова.

Выгрузка стека сводится к следующему:

- считывается младший байт по адресу (SP);

- выполняется операция (SP) = (SP) + 1;

- считывается старший байт по новому адресу;

- выполняется операция (SP) = (SP) + 1.

 

Непосредственная адресация

В этом случае операнд находится в самой команде. Операнд может быть одно- и двухбайтовым. В соответствии с этим команды могут быть двухбайтовыми и трехбайтовыми (первый байт всегда занимает КОП).

 

Следует помнить, что в трехбайтовой команде младшие разряды 16-битового числа содержатся во втором байте команды, а старшие в третьем.

СИСТЕМА КОМАНД МП 580

Для программирования микро-ЭВМ на базе МП комплекта КР580 используется 244 команды. Ниже очень коротко будет рассмотрена только часть команд, необходимая для программирования простых задач. Таблицы команд и краткие пояснения к ним можно найти во многих источниках. Наиболее подробные комментарии можно найти в журналах "Радио" за 1982 год.

Следует помнить, что любая машинная команда это двоичное кодовое слово определенной длины. Однако пользоваться двоичными кодами при программировании человеку крайне трудно. Поэтому для программирования используют язык
ассемблера или просто ассемблер (см. п. 1.4). В этом языке вместо кодовых комбинаций используется мнемоническая форма записи операций, выполняемых в БИС. Каждой команде на языке ассемблера соответствует одна команда на языке кодовых комбинаций. Ниже будут рассмотрены команды именно на языке ассемблера.

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

Все команды МП КР580 целесообразно разделить на группы, например, следующим образом:

· Пересылки однобайтовые для обмена операндами и результатами между аккумулятором, РОН, памятью, регистрами ППУ.

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

· Операции в аккумуляторе, которые делятся на арифметические, логические (в аккумуляторе и регистре флагов), сдвиги.

· Арифметические операции в РОН и памяти.

· Команды управления.

ПЕРЕСЫЛКИ ОДНОБАЙТОВЫЕ

Команды этой группы не изменяют содержимого регистра признаков РгП (F). Принципы их выполнения иллюстрирует рис. 6.13.

 

 

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

 

 

ПЕРЕСЫЛКИ ДВУХБАЙТОВЫЕ

Команды этой группы не изменяют содержимого РгП (F). Принципы их выполнения иллюстрирует рис. 6.14. Предполагается, что PSW≡(A)(F).

Поясним две команды:

XCHG – это обмен содержимым пар HL и DE, причем (H) «(D), (L) «(E);

XTHL – это обмен содержимым пары HL и верхушки стека. Значение SP не изменяется, при этом: (L) «((SP)) и (H) «((SP)+1).

 

 

Рассмотрим в качестве примера несколько команд двухбайтовых пересылок.

 

 

ОПЕРАЦИИ В АККУМУЛЯТОРЕ

Команды этой группы изменяют содержимое РгП (F) в соответствии с содержимым аккумулятора. Принципы их выполнения иллюстрирует рис. 6.15.

Выполняемые операции подразделяются на двуместные и одноместные.

 

Операции двуместные

В общем случае РОН = AçBçCçDçEçHçL; СКО – символьный код операции. Остальные обозначения аналогичны рис. 6.13.

 

В свою очередь, двуместные операции в аккумуляторе делятся на арифметические и логические.

· Арифметические операции:

- сложение содержимого аккумулятора с содержимым РОН, ячеек памяти (косвенная адресация по HL), непосредственным операндом;

- сложение содержимого аккумулятора и тех же операндов и бита переноса C (часто обозначают CY);

- вычитание из содержимого аккумулятора содержимого РОН, ячеек памяти (косвенно адресуемых по HL) или непосредственного операнда;

- вычитание из содержимого аккумулятора тех же операндов и бита переноса;

- сравнение содержимого аккумулятора с содержимым РОН, ячейками памяти (косвенно адресуемых по HL), непосредственным операндом.

В последнем случае вычисляется разность (A) – (операнд), которая никуда не записывается (т.е. A не изменится), а используется для установки флагов в регистре признаков F.

Рассмотрим несколько примеров:

ADD B A (A) + (B);

SUB M A (A) - (ячейка (M));

ACI 07 A (A) + 07 + C;

CMP D (A) - (D) ® установка F, (A) – не изменилось.

· Логические (побитовые) операции:

- конъюнкция содержимого аккумулятора с содержимым РОН, ячейки памяти (косвенно адресуемой по HL), непосредственным операндом.

- дизъюнкция содержимого аккумулятора с содержимым РОН, ячейки памяти (косвенно адресуемой по HL), непосредственным операндом.

- сложение по модулю 2 с содержимым РОН, ячейки памяти (косвенно адресуемой по HL), с непосредственным операндом.

Рассмотрим несколько примеров:

ANA D A (A) & (D);

ANI A4 A (A) & A4;

ORA M A (A) Ú (ячейка (M));

XRA E A (A) Å (E);

XRI F4 A (A) Å F4.

 

Операции одноместные

· Арифметическая операция:

DAA – десятичная коррекция аккумулятора при работе с двоично-десятичными числами.

· Логические операции:

CMA – инверсия аккумулятора;

STC – установка бита C (т.е. C 1);

CMC – инверсия бита C (т.е. C `C).

Две последние команды выполняются в РгП (F).

· Сдвиги на 1 разряд:

Примеры реализации сдвиговых команд приведены на рис. 6.16.

 

 

 

ОПЕРАЦИИ В РОН И ПАМЯТИ

Ряд операций в МП комплекте КР580 могут быть выполнены помимо аккумулятора, непосредственно в РОН и ячейках памяти. К таким операциям относятся:

 

Инкремент/декремент

Арифметические однооперандные операции увеличения на 1 (инкремент) и уменьшения на 1 (декремент) являются распространенными операциями для организации счетчиков при просмотре таблиц. На рис. 6.17 представлены примеры выполнения этих команд с РОН, регистровой парой и ячейкой памяти, косвенно адресуемой по HL.

 

 

Рассмотрим два примера:

 

Следует помнить, что при инкременте/декременте регистровой пары содержимое рассматривается как единое 16-разрядное число. При выполнении этой команды РгП не изменяется. При выполнении команды инкремента/декремента РОН и ячеек памяти косвенно адресуемых по HL РгП изменяется.

 

Сложение двухбайтовых операндов

DAD rp HL (HL) + (rp)

rp = BçDçHçSP

В РгП изменяется только признак C (CY).

КОМАНДЫ УПРАВЛЕНИЯ

Команды этой группы не изменяют содержимого РгП (F).

 



Поделиться:


Последнее изменение этой страницы: 2016-12-09; просмотров: 1189; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.142.128 (0.103 с.)