Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессорная техника. Учебное пособие
.pdf
Следовательно, процесс выполнения команды состоит из стольких
машинных циклов, сколько обращений к памяти или к устройствам вводавывода требуется для ее выполнения.
Каждая команда в зависимости от ее вида может занимать от одного
до пяти машинных циклов.
В свою очередь, каждый машинный цикл может состоять из 3 - 5
машинных тактов.
Под машинным тактом подразумевается интервал времени,
соответствующий одному периоду тактовых импульсов.
Рис. 1.14. Временная диаграмма команды LDA
На рисунке 1.14 приведена временная диаграмма команды LDA
(Загрузить данные в аккумулятор из ячейки памяти, адрес которой находится
во втором и третьем байте команды).
Данная команда состоит из четырех машинных циклов: С1 - выборка
команды (код команды помещается в регистр команд); С2 - обращение
к памяти (восемь младших разрядов адреса выбираются из памяти
и помещаются в регистр Z); С3 - обращение к памяти (восемь старших
разрядов адреса выбираются из памяти и помещаются в регистр W); С4 аккумулятор загружается данными из памяти по адресу, содержащемуся
в регистровой паре WZ.
В свою очередь первый машинный цикл С1 команды LDA состоит
из четырех машинных тактов Т1 , Т4, а машинные циклы С2 , С4 - из трех.
Система команд микропроцессора КР580ВМ80А представлена
244 кодами операций.
Все команды можно классифицировать по трем основным признакам:
по длине команды; по виду адресации к данным; по функциональному признаку.
П о д л и н е к о м а н д ы д е л я т с я н а о д н о б а й т о в ы е , д в у х б а й т о в ы е
и трехбайтовые.
21

Двухбайтовые и трехбайтовые команды в памяти занимают соответственно две или три последовательно расположенные ячейки.
При этом первый байт всегда отводится под код операции, а второй
или второй и третий байты содержат либо данные, либо адрес, по которому
они находятся в памяти.
По функциональному признаку все команды могут быть разделены на
пять групп:
− команды пересылки данных;
− арифметические команды;
− логические команды;
− команды переходов;
− команды управления и работы со стеком.
К группе команд пересылки данных относятся команды, пересылающие
содержащиеся в них данные в регистры или в память, команды пересылки
данных между регистрами микропроцессора и между регистрами и памятью.
В мнемонике команд регистр-приемник указывается вслед за символическим кодом команды, а через запятую - регистр-источник. Например:
команда MOV M, A - пересылает данные из регистра А (аккумулятора) в ячейку
памяти по адресу указанному в регистровой паре HL.
Арифметические команды предназначены для выполнения арифметических операций над данными, хранящимися в регистрах и ячейках памяти.
Все команды этой группы оказывают влияние на значения разрядов
флагового регистра, так как при их выполнении меняются знаки используемых чисел, возникают сигналы переноса, появляются нулевые результаты и тому подобное.
Логические команды служат для выполнения логических (или булевых)
операций над данными, содержащимися в регистрах, ячейках памяти, а также
над флагами регистров.
К ним относятся следующие операции: инверсия (НЕ), логическое суммирование (ИЛИ), логическое умножение (И), суммирование по модулю 2,
сравнение, сдвиг, дополнение до 1 и до 2.
Как и команды предыдущей группы, все логические команды оказывают влияние на флаги состояния.
Система команд микропроцессора КР580ВМ80А позволяет использовать следующие виды адресации:
− регистровая;
− косвенная регистровая;
− прямая;
− непосредственная;
− Неявная;
− комбинированная.
22

Регистровая адресация
В случае регистровой адресации операнд отыскивается во внутреннем регистре микропроцессора. Регистровые адресации всегда являются
одно байтовыми, потому что они не требуют адресов и данных вне
микропроцессора.
Примером таких команд являются команды: МОV A,С (переслать
содержимое регистра С в регистр A); MOV H,L (переслать содержимое
регистра L в регистр Н).
Рис.1.5. Регистровая адресация
После того, как команда выполнена, сумма помещается в аккумулятор.
Результат выполнения влияет на признаки флагового регистра F.
Два операнда являются содержимым внутренних регистров микропроцессора (А и С), команды регистровой адресации очень эффективны
в том смысле, что используют один байт памяти программы, но и быстро
выполнимы, так как не используют операций извлечения данных из памяти.
Косвенная регистровая адресация
При этом способе адресации пара регистров HL указывает на адрес
операнда в памяти.
Примером являются такие команды, как MOV А,М (переслать
содержимое ячейки памяти, адрес которой находится в паре HL, в аккумулятор);
MOV M,D и т.п.
При этом способе адресации могут также использоваться регистровые пары ВС и DE.
B этом случае будут использоваться команды STAX YZ (сохранение
содержимого аккумулятора в памяти, адрес которой находится в паре YZ)
и LDAX YZ (загрузка в аккумулятор содержимым ячейки памяти, адрес
которой находится в паре YZ, рис.1.6).
23

Рис.1.6. Косвенная адресация
Непосредственная адресация
В случае непосредственных команд операнд следует сразу же за кодом
операции. Примером являются: MVI А,1ЗН; LXI H,80AAH; LXI D,7F00H и т.п.
Все команды непосредственной адресации микропроцессора I8 0 8 0 ,
за исключением двух, используют аккумулятор как неявный операнд.
Две команды не связаны с аккумулятором – команда MVI (передать непосредственно), которая загружает байт данных, следующих непосредственно за командой, в которой регистр или память, и команда LXI (загрузить непосредственно
пару регистров), которая загружает 16-ти разрядное число в пару регистров или
указатель стека (рис.1.7).
Рис.1.7. Непосредственная адресация
24

Прямая адресация
В случае прямой адресации 2-ой и 3-ий байт команды прямо указывает
на адрес операнда в памяти (адрес данных следует за кодом операции).
Этим адресом может быть адрес памяти (LDA 22FFH,STA 50DDH и т.п), а также
номер порта ввода/вывода (IN E4H,OUT 7FH) (рис.1.8).
Рис. 1.8. Прямая адресация
Комбинированные способы адресации
Несколько команд используют сочетания различных способов
адресации. Вызов подпрограммы CALL сочетает непосредственную и косвенную регистровую адресацию. Прямой адрес в CALL точно описывает
адрес вызываемой подпрограммы, адрес косвенного регистра является
адресом указателя стека. Команда CALL помещает в стек текущее значение
счетчика команд РС по адресу в указателе стека SP, затем загружает адрес
прямо в счетчик команд.
Неявная адресация
Этот метод используется, если не нужно искать данные или адреса
в других регистрах микропроцессора, памяти или устройствах ввода/
вывода. Все события происходят внутри микропроцессора. Примером
являются: СМА
25

1.4. Структура микропроцессора КР580ВМ80А
Микропроцессор – специализированная интегральная схема, предназначенная
для приема, хранения, обработки и пересылки информации и включающая в себя
устройство для хранения данных (регистры общего назначения - РОН), арифметикологическое устройство (АЛУ) и устройство управления.
Микропроцессор КР580ВМ80А имеет 16-ти разрядную шину адреса, обеспечивающую адресацию памяти объемом до 64К (1К = 1024 байт) и 256 устройств
ввода/вывода (портов ввода/вывода), а также 8-ми разрядную шину данных.
Канал адреса называется магистралью данных или шиной адреса.
Канал данных называется шиной данных.
Структура микропроцессора КР580ВМ80А ориентирована на работу
с памятью, имеющую байтовую организацию. Формат обрабатываемых
данных имеет вид:
7 6 5 4 3 2 1 0
D7 D0
старший бит младший бит
Байт – это одна двоичная цифра.
Сгруппированные по 4, биты составляют тетраду, 8 бит составляют байт.
Диапазон представления такого числа лежит в пределах:
= 0000 00002 = 0016.
0
10
25510 = 1111 11112 = FF16.
При выполнении некоторых операций допустимо представление чисел
в двухбайтовом формате.
Рассмотрим схему подключения выводов микропроцессора
КР580ВМ80А и их назначения (рис.1.9).
Рис. 1.9. Рассмотрим схему подключения выводов микропроцессора КР580ВМ80А
26

Выводы синхронизации:
F1, F2 – выводы двух неперекрывающихся последовательностей синхроимпульсов;
SYNC – выход синхронизации, сигнал определяет начало каждого машинного
цикла команды;
RESET – вход сигнала начальной установки процессора. После прекращения
действия сигнала программный счетчик устанавливается в нулевое состояние
и процессор начинает работать с нулевого адреса.
Выводы управления ожиданием:
READY – готово внешнее устройство (READY = 1) или не готово (READY = 0).
Синхронизирует обмен информации с внешними устройствами.
WAIT – указывает, что процессор находится в состоянии ожидания (WAIT = 1).
Выводы управления памятью:
WR – управление записью в память или во внешние устройства; низкий
уровень указывает, что процессор выдал данные на магистраль данных D7-D0.
Выводы управления магистралью данных:
DBIN – указывает, что магистраль данных (D7-D0) находится в режиме при-
ема. Используется для управления чтением данных из памяти или внешнего
устройства.
Выводы управления прерыванием:
INT – запрос прерывания внешним устройством, запрашивающих обмен с
процессором в режиме прерывания.
INTE – выход сигнала разрешения прерывания (INTE = 1), указывающего
на то, что процессор готов к обмену в режиме прерывания; (INTE = 1 – если
готов, INTE = 0 – если не готов).
Выводы управления захватом магистралей в режиме ПДП:
HLD – вход запроса захвата магистралей D7-D0 и магистрали адреса
А15-А0 внешними устройствами. Процессор переходит в режим ЗАХВАТ
и отключает магистрали D7-D0 и А15-А0 (переходит в высокоимпедансное
состояние).
HLDA – выход подтверждения захвата. Указывает, что процессор находится
в состоянии ЗАХВАТ. Магистрали данных и адреса при этом отключены
от выводов.
Перейдем к функциональной схеме микропроцессора КР580ВМ80А.
Структурная схема микропроцессора КР580ВМ80А (i8080А)
Микропроцессор КР580ВМ80А реализован на основе общей внутренней
магистрали данных и включает в себя следующие функциональные узлы: блок
регистров с адресной логикой; блок АЛУ; двунаправленную буферизованную
магистраль данных; блок управления и синхронизации (рис.1.10).
27

Блок регистров
Содержит шесть 16-ти битовых регистров, образующих статическую
память с произвольным доступом (регистр – пространство из восьми бит, схема
или устройство хранения информации). Три из них могут использоваться
как шесть отдельных 8-ми разрядных программно-доступных регистров B,
C, D, E, H, L общего назначения для хранения операндов или как три 16-ти
разрядных программно-доступных пары BC, DE, HL для хранения адресов
или двухбайтовых операндов.
При выполнении арифметических и логических операций с регистровой
адресацией в регистрах B, C, D, E, H, L хранятся 8-ми разрядные операнды,
которые передаются в АЛУ для участия в операции. Второй операнд и результат операции хранятся в блоке АЛУ.
Пары регистров BC, DE, HL могут хранить 16-ти разрядные операнды
или адреса данных.
Содержимое каждого из регистров можно переслать в блок АЛУ или
в память через 8-ми битовые мультиплексоры (МП) и внутреннюю магистраль
данных. Содержимое каждой пары регистров программно можно увеличить
или уменьшить на 1.
Регистр-счетчик (РС) используется в качестве программного счетчика
и хранит адрес текущей команды программы.
Содержимое регистра счетчика автоматически увеличивается после
выборки каждого байта команды схемой адресной логики, загрузка и выдача
содержимого регистра счетика осуществляется через мультиплексоры
и внутреннюю магистраль данных.
Указатель стека (SP) хранит адрес ячейки стековой области памяти,
к которой было сделано последнее обращение, содержимое SP уменьшается
на 1 перед каждым занесением слова в стек или увеличивается на 1 после
каждого извлечения из стека.
Пара регистров W и Z используется для временного хранения байтов
2 и 3 команд перехода, передаваемых с внутренней магистрали данных
в программный счетчик.
Адресная логика предназначена для хранения, программного
изменения и выдачи на магистраль А15-А0 адресов данных и команду,
содержит буферный регистр адреса (БРА), логическую схему инкрементадекремента (СИД) и адресный буфер.
Буферный регистр адреса принимает и хранит адрес с любого 16-ти
разрядного регистра, выход связан со входами СИД и БРА.
С помощью схемы инкремента-декремента (СИД) можно содержимое БРА
передать с изменением на +1 или –1 или без изменения через 16-ти разрядный
мультиплексор на вход любой пары регистров BC, DE, HL, SP или PC.
28

Рис.1.10. Структурная схема микропроцессора КР580ВМ80А (i8080А)
Блок АЛУ
Предназначен для выполнения арифметических и логических операций над числами в параллельном 8-ми разрядном двоичном коде. Информация
обрабатывается в АЛУ с использованием регистра временного хранения
(ВР), аккумулятора временного хранения (ВА), аккумулятора (А) и регистра
признаков F. При выполнении бинарных операций один из операндов пересылается из аккумулятора в регистр ВА; второй – поступает из памяти или
блока регистров через внутреннюю магистраль данных в регистр ВР, а затем
29

передается в АЛУ через кодопреобразователь в прямом или обратном коде
в зависимости от выполняемой операции. Результат операции передается
через внутреннюю магистраль в аккумулятор или регистр общего назначения, а признаки результата записываются в регистр признаков F.
Обмен содержимого аккумулятора и регистра признаков с памятью
или блоком регистров осуществляется также через внутреннюю магистраль
данных.
Схема десятичной коррекции (СДК) предназначена для преобразования
двоично-кодированного результата в двоично-десятичный код при обработке
двоично-десятичных чисел.
Двунаправленная магистраль данных служит для организации связи
микропроцессора с другими микросхемами, входящими в состав микроЭВМ.
Она включает в себя внутреннюю магистраль данных, буфер данных ( Б Д )
и соединена с выводами магистрали данных D7-D0 микропроцессора. Буфер
данных – 8-ми разрядный двунаправленный с тремя состояниями – предназначен для развязки внутренней и внешней магистрали данных. Он состоит из
буферного регистра данных и формирователей. В режиме вывода информация
с внутренней магистрали загружается в буферный регистр, а затем передается
на внешнюю магистраль данных через формирователи. При вводе данные из
внешней магистрали через формирователи непосредственно передаются на
внутреннюю магистраль. Буферный регистр данных при этом отключается.
Он отключается также при выполнении операций, не связанных с передачей
информации процессором.
Блок управления и синхронизации. Предназначен для приема команд,
синхронизирующих и управляющих внешних сигналов, а также для формирования внутренних сигналов микроопераций и внешних синхронизирующих
и управляющих сигналов. Он содержит регистр команд (РК), дешифратор команд
(ДшК), схемы формирования машинных циклов и другие устройства. Регистр
команд хранит байт кода операции, поступающей с внутренней магистрали
данных. Его содержимое после дешифрации и синхронизации времязадающими
сигналами используется для формирования сигналов внутреннего управления
блоком регистров, АЛУ с регистрами и буфером данных, реализующих
микропрограммы выполнения команд. Прием и выдача синхронизирующих
и управляющих сигналов осуществляется через выводы микропроцессора.
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
