Изучение организации, режимов работы, системы команд и основных директив программного имитатора микропроцессора i8080




 

 

Методические указания к лабораторной работе по курсу

‘‘Микропроцессоры и микроконтроллеры‘‘

Раздел ‘‘Микропроцессоры‘‘


1 Цель лабораторной работы

 

Изучить организацию и работу микропроцессора i8080 с точки зрения программиста;

Ознакомиться с программой имитатором работы микропроцессора, назначением и действием всех кнопок (директив) и режимами работы имитатора;

Приобрести практические навыки работы с программой имитатором микропроцессора i8080.

 

2 Домашнее задание

 

2.1 Изучить программную модель микропроцессора.

2.2 Ознакомиться со структурой вырабатываемого микропроцессором байта состояния и назначением его отдельных разрядов.

2.3 Уяснить понятие адресного пространства микропроцессора и его распределение.

2.4 Ознакомиться с техническими характеристиками программы имитатора и порядком её работы.

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

 

3 Контрольные вопросы

 

3.1 Основные регистры микропроцессора, их назначение и характеристики.

3.2 Программно-доступные узлы микропроцессора.

3.3. Регистр флагов, признаки результата, их назначение и использование.

3.4. Регистровые пары микропроцессора, их назначение и использование.

3.5 Байт состояния процессора (БСП).

3.6 Назначение отдельных разрядов БСП.

3.7 Адресное пространство микропроцессора и его распределение в программе имитатора.

3.8 Пульт оператора программы имитатора микропроцессора, его назначение, состав и функции.

3.9 Структурная схема микропроцессора i8080.

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

3.11 Система команд арифметических операций с одним и с двумя операндами.

3.12 Система команд логических операций с одним и с двумя операндами

3.13 Команды установки признаков.

3.14 Команды 16-ти битовых операций.

3.15 Команды сдвига содержимого аккумулятора.

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

3.17 Команды вызова и возврата из подпрограмм.

3.18 Система специальных команд.

3.19 Выполнение программы в покомандном режиме работы.

3.20 Выполнение программы в потактовом режиме работы.

3.21 Индикатор отображения адреса в программе имитатора.

3.21 Индикатор отображения состояния INTA, WO, STACK, HLTA, OUT, M1, INP, MEMR.

3.22 Индикатор состояния флагов Z, S, P, C, AC.

3.23 Индикатор отображения содержимого регистров общего назначения (РОН), регистра косвенного адреса, программного счетчика, указателя стека


4 Порядок выполнения работы

 

4.1 Запустить программу имитатор работы микропроцессора i8080, согласно указаниями п. 7.6??

4.2 Изучить интерфейс программы-имитатора (вкладки: Файл, Структурная схема, Система команд).

4.3 Практически освоить работу с кнопками клавиатуры имитатора 0-9, A-F, H, L, SpL, PcL, SpH, PcH, ОЗУ, Регистр, Сброс ОЗУ, Сброс Рег.

4.4 Занести в оперативную память следующую программу (табл. 1), выбирая адреса ячеек памяти и данные из таблицы вариантов (табл. 2). При этом необходимо помнить, что в микропроцессоре i8080 старший байт двухбайтового слова следует заносить по старшему адресу памяти, а младший байт – по младшему адресу. Например, трехбайтовая команда ассемблера LDA 0850H записывается в память в машинных кодах как 3A 50 08.

4.5 Выполнить записанную в память рабочую программу у пользуясь директивой ‘‘автоматического покомандного и потактового режима‘‘. Проверить правильность ее работы.

4.6 Выполнить пункт 4.4 по структурной схеме отслеживая в потактовом и покомандном режиме состояние всех блоков микропроцессора. Результаты выполнения представить в таблицах, указывая состояния шин адреса и данных и наименование машинного цикла (см. табл. 3).

 

ША ШД Код и имя машинного цикла Примечание
  А2 – Выборка команды LDA

 

4.7 Реализовать покомандный режим выполнения программы. В примечаниях к программе привести содержимое РОН, стека, ячеек оперативной памяти по ходу выполнения программы.

4.8 Оформить протокол лабораторной работы.

Таблица 1 – Рабочая система на языке Ассемблера и в машинных кодах

 

Адрес команды Команды Ассемблера (мнемоника) Машинные коды Операция Комментарий
  MVI H, A16 26 <30> Непосредственная передача 2-х мл. разрядов адреса
  MOV L,H 6C   Перенос содержимого регистра Н в L
  MVI H, A16 26 <09>   Непосредственная передача 2-х ст. разрядов адреса
  MVI B, D8 06 <5B> Непосредственная передача операнда
  MOV M, B   Передать содержимое регистра В в ячейку памяти по адресу наход. в RP H
  LDA A16 3A <3009> Загрузка аккумулятора (прямая адресация)
  CMA 2F Инверсия содержимого аккумулятора
  STA A16+1 32 <0931> Запись содержимого аккумулятора в ячейку памяти
  HLT   Останов
A16 DB D8 <5B>   Данные в памяти по адресу A16

 


Таблица 2 – Варианты заданий

 

Номер варианта Адрес ячейки памяти A16 Данные D8
  0900H 35H
  0910H D3H
  0920H 4AH
  0930H 5BH
  0940H 6DH
  0950H 3AH
  0960H E5H
  0970H C8H
  0980H 7EH
  0990H 8CH
  09A0H A3H
  09B0H C9H
  09C0H B7H
  09D0H 6AH
  09E0H 8EH
  09F0H 2DH
  0A00H 37H
  0A10H 69H
  0A20H 7DH
  0A30H ABH
  0A40H CDH
  0A50H 58H
  0A60H A6H
  0A70H D2H
  0A80H EFH

5 Содержание отчета

 

5.1 Цель работы.

5.2 Основные теоретические положения работы: программная модель МП, байт состояния процессора, понятие адресного пространства МП.

5.3 Результаты выполнения работы по пп. 4.2 – 4.7 в соответствующей форме.

5.4 Краткий анализ полученных результатов (выводы по работе).

 

6. Список литературы

 

1.


7 Основные теоретические положения

 

7.1 Программная модель микропроцессора i8080

 

Рассмотрим упрощённую структуру МП i8080, содержащую только узлы, наиболее важные для понимания программистом процесса работы МП (рис. 1).

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

В верхней части рисунка представлены все программно-доступные (адресуемые в командах в явной или неявной форме) узлы МП и памяти, а в нижней части – программно-недоступные узлы процессора, наиболее существенные для процесса выполнения команд.

Аккумулятор А, регистр флагов F и регистры общего назначения – В, С, D, Е, Н, L микропроцессора i8080 8-разрядные, причём указанные регистры могут программно объединяться в регистровые пары (RР), реализуя 16-разрядные регистры. Регистр флагов F и аккумулятор А совместно образуют 16-разрядный регистр слова состояния процессора, именуемый PSW (Processor status word). Имена остальных регистровых пар В, D и Н определяются именами старших регистров соответствующих пар.

Идентификатор PSW используется в командах обращения к стеку при спасании и восстановлении регистров МП, т.е. при сохранении текущего состояния прерываемой программы. Аккумулятор А и регистр флагов F всегда адресуются в командах Ассемблера в неявной форме.

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

Флаг знака результата S (“sign”) - копирует значение старшего разряда результата.

Признак нулевого результата Z (“zero”) - принимает значение Z = l, если результат в аккумуляторе равен нулю, иначе Z = 0.

Признак вспомогательного переноса C‘ – устанавливается в единицу при возникновении переноса из младшей тетрады аккумулятора в старшую (перенос из полубайта). Используется при обработке двоично- десятичных кодов.

Признак паритета (чётности) Р (“parity”) – принимает значение Р = 1,если число единиц в байте результата четно; иначе Р = 0.

Признак переноса из байта CY (“carry”) – принимает значение СY = 1, если при выполнении команды возникает перенос из старшего разряда (или заём в него), иначе CY = 0. Этот флаг является наиболее мощным средством, позволяющим на малоразрядном МП проводить обработку данных любой длины путём последовательной обработки байтов операндов.

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

Три пары регистров общего назначения В, D и Н могут использоваться в качестве указателей при косвенной адресации памяти в однобайтных командах. Однако обычно для этого применяется регистровая пара RP Н, так как широкий набор команд типа MOV M,R {операция M(H,L):=(R)} или MOV R,M {(R):=M(H,L)} позволяет адресовать в команде не только произвольную ячейку памяти, но и любой из программно-доступных регистров R, тогда как RP В и RP D (например, в командах LDAX В {операция (А):=:=М(В.С)} или STAX В {операция М(В, С): = (А) }) подразумевают адресацию ячеек памяти только с аккумулятором.

 

Рисунок 1 – Программная модель МП i8080

 

Программный счётчик PC хранит адрес памяти текущей команды исполняемой программы. Начальный адрес устанавливается нулевым при включении или начальной установке (сбросе) микроэвм. Выполнение программы начинается в этом случае с нулевой ячейки программной' памяти, в которую можно поместить команду безусловной передачи управления любому требуемому адресу. Произвольный начальный адрес может быть загружен в PC оператором с пульта управления.

Указатель стека SP адресует последнюю занятую ячейку стековой памяти.

 

7.2 Байт состояния микропроцессора

 

Для нормального функционирования микропроцессорной системы недостаточно управляющих сигналов, генерируемых непосредственно МП {например, DBIN (чтение), WAIT (ожидание), HLDA (подтверждение захвата шин) и др.}. Система в каждом машинном цикле должна получать более полную информацию о состоянии МП. Эта информация, в виде байта состояния МП, выдаётся им в первом такте каждого машинного цикла на шину данных и фиксируется на время данного цикла во внешнем регистре состояния (РБС). Выходы РБС и управляющие сигналы самого МП совместно образуют шину управления МП-системы (12 линий), сигналы которой используются при обращениях к памяти или периферийным устройствам.

Из 256 возможных наборов байта состояния только 10 из них используются для формирования различных команд МП. Эти десять кодов определяют, в свою очередь, десять типов машинных циклов со следующими именами: выборка команды, чтение из памяти, запись в память, чтение из стека, запись в стек, ввод, вывод, разрешение прерывания, останов, разрешение прерывания при останове.

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

Типы и коды машинных циклов МП, а также обозначения разрядов байта состояния в английской и русской транскрипций приведены в табл. 3.

Назначение каждого разряда в коде байта состояния разъяснено в табл. 4. Косая черта в конце обозначения означает, что активный уровень данного управляющего сигнала – низкий.

 

7.3 Адресное пространство микропроцессора

 

Максимальное число возможных отличных друг от друга кодов (адресов), которое может выдать на адресную шину микропроцессор, определяет его адресное пространство.

Иначе говоря, адресное пространство представляет собой упорядоченное множество кодов , где n – число адресных линий микропроцессора.

Так как адресная шина микропроцессора i8080 содержит всего 16 линий, то по ней можно передать различных адресов (кодов). Таким образом, его адресное пространство составляет , где .

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

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

 

Таблица 3 – Типы и коды машинных циклов МП

 

Назначение машинного цикла Разряды байта состояния МП
D7 D6 D5 D4 D3 D2 D1 D0
MEMR ЧТ INP ВВ M1 М1 OUT ВЫВ HLTA ПОСТ STACK СТЕК WO/ ЗВ/ INTA ППР
Выборка команды                
Чтение из памяти                
Запись в память                
Чтение из стека                
Запись в стек                
Ввод                
Вывод                
Разрешение прерывания                
Разрешение останова                
Разрешение прерывания при останове                

 


Таблица 4 – Назначение каждого разряда в коде байта состояния

 

Обозначение упр. сигнала Разряд БС МП Назначение
MEMR ЧТ D7 Указывает на то, что в текущем машинном цикле будет производиться чтение из памяти
INP ВВ D6 Указывает, что в текущем машинном цикле выполняется операция ввода
M1 М1 D5 Указывает, что МП находится в цикле выборки первого байта команды
OUT ВЫВ D4 Указывает, что в текущем машинном цикле выполняется операция вывода
HLTA ПОСТ D3 Свидетельствует о том, что МП перешел в состояние останова по команде HLT
STACK СТЕК D2 Означает наличие на шине адреса содержимого указателя стека SP, используемого для адресации области стековой памяти
WO/ ЗВ/ D1 Указывает, что в текущем машинном цикле будет выполняться запись в память или вывод (при WO=0)
INTA ППР D0 Подтверждение запроса прерывания, сигнал используется для запуска команд RST (рестарт), которая вызывает одну из 8 подпрограмм обработки прерываний

 

 


 

 

4*. 5. Определить контрольную сумму мас сива. памяти, пользу-ясь директивой "KG". В кгдместве массива использовать занесен­ную рабочую ггрограмму. Вычислить контрольную сумму вручную и сравнить с машинной.

4.6. Заполнить массив памяти с адресами ОА.40Н. - - -OA5FH

 

после запуска программы имитатора необходимо обнулить содержимое ОЗУ и Регистров, путем нажатия на кнопки Сброс ОЗУ и Сброс Рег.

 

После сброса содержимого Регистров и ОЗУ, необходимо нажать кнопку ОЗУ.

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

 

7.4 Назначение учебной программы-имитатора микропроцессора i8080

 

Программа-имитатор микропроцессора i8080 представляет собой полную программную модель микропроцессора и предназначена:

для изучения основ обслуживания и проектирования микро-ЭВМ, построенных на базе микропроцессора (МП) i8080;

для обучения основам программирования данного микропроцессора;

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

 

7.6 Подготовка программы-имитатора к работе

 

1 Запустить исполнительный файл программы-имитатора CPU580 на выполнение. Должно появиться следующее окно.

 

 

2 Произвести сброс оперативной памяти, регистров и флагов путем нажатия указателем мыши на кнопки Сброс ОЗУ и Сброс Рег.

Появится следующее окно программы-имитатора

 


 

 

7.7 Описание интерфейса программы-имитатора

 

Пульт оператора предназначен для взаимодействия оператора с имитатором МП.

Он состоит из клавиатуры, шестиразрядного матричного дисплея, двоично-светодиодной индикации и управляющих клавиш SpL, SpH, PcL, PcH, Сброс ОЗУ, Сброс Рег., Регистр и ОЗУ.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: