Лабораторная работа 2 Intel8080 Цель работы: исследование выполнения отдельных команд и простых программ; исследование процесса выполнения команд по машинным циклам, запись программ в машинных кодах и на языке ассемблер. Используемое оборудование: учебный микропроцессорный комплект (УМК), дополнительная макетная плата (плата ТЭЗ М1 из комплекта УМК), цифровой осциллограф.
1. Краткие сведения из теории. Микропроцессор Intel8080 представляет собой однокрис¬таль¬ный 8-разрядный микропроцессор. Структурная схема микропро¬цес¬сора представлена на рис. 1. Микропроцессор имеет раздельные 8-разрядную шину данных и 16-разрядную шину адреса, которая обеспечивает адресное пространство памяти 64К байт и раздельные адресные пространства ввода и вывода по 256 байт. Микропроцессор состоит из устройства управления (УУ), блока регистров общего назначения (РОН),арифметико-
логического устрой¬ства (АЛУ), схемы управления обменом (СУО), буферных схем данных и адреса (БУ и БД). Блоки микропроцессора объединены через 8-разрядную внутреннюю шину данных. УУ выполняет функции выборки команды, ее декодирования и выполнения, прием и выдачу управляющих сигналов для составных частей микропроцессора и системы. Из системы УУ получает сигналы: C1 и С2 – две не перекрывающиеся (т.е. не совпадающие во времени) периодические
последовательности импульсов синхрониза¬ции; INT – сигнал требования прерывания; HLD – сигнал требования прямого доступа в память; RESET – сигнал сброса (установка микропроцессора в исходное состояние); RDY – сигнал готовности от составных частей МП системы. УУ выдает в систему сигналы: INTE – разрешение прерывания;
HLDA – разрешение прямого доступа в память; WAIT – ожидание (микропроцессор находится в состоянии ожи¬дания); SYN – сигнал начала машинного цикла (выдается в начале каж¬до¬го цикла). Рис.1. Intel8080 Выполняемая команда хранится в специальном регистре, который называется регистром команд (РК). Арифметико-логическое устройство совместно с аккумулятором (А) и регистром признаков (F) выполняет
арифметические и логичес¬кие операции с двоичными числами (они носят название операндов). В аккумуляторе хранится один из операндов перед выполнением операции и результат после выполнения операции. В регистр признаков помещаются признаки событий, происходящих при выпол¬не¬нии операций (например, перенос из старшего значащего разряда, нулевой результат операции, отрицательный результат и т.д.). Блок РОН включает 6 8-разрядных регистров (B,C,D,E,
H,L), которые могут использоваться попарно как 3 16-разрядных (BC, DE,HL), 16-разрядный регистр-счетчик команд (IP) и 16-разрядный регистр – указатель стека (SP). Схема управления обменом выдает сигналы, синхронизирующие обмен данными между микропроцес¬сором и МП системой. Сигнал WR сопровождает данные, выводимые из МП, а сигнал DBIN – синхронизирует прием информации.
Этих сигналов явно недостаточно для управления всей системой, поэтому в начале каждого машинного цикла по шине данных передается служебная информация о типе операции, которая будет выполнена в текущем цикле. Эта информация сопровождается сигналом SYN, принимается специальной дополнительной схемой (она называется системный контроллер), которая, используя эту информацию, формирует все необходимые сигналы шины управления: MRDC - чтение данных из памяти, MWTC - запись данных в память,
IORC - чтение данных из порта ввода, IOWC - запись данных в порт вывода. Буферные схемы БА и БД обеспечивают необходимую нагру¬зоч¬ную способность шин адреса и данных, а также возможность отключения шин от внешней, по отношению к МП, системы (путем перевода выходов в третье состояние). Микропроцессор имеет фиксированный набор из 244 команд.
Выполнение команд происходит по машинным циклам. Каждый цикл – это выполнение элементарной операции по управлению шинами МП системы. Время выполнения команды определяется процессом получения, декодирования и выполнения команды. В зависимости от вида команды время ее выполнения может составлять 1-5 машинных циклов. Машинный цикл состоит из 3-5 машинных тактов. Такт – это один период синхронизирующих импульсов.
При типовой частоте импульсов синхронизации, равной 2 МГц, длительность одного такта равна 500 нс. Для КР580ВМ80А имеется 10 различных типов машинных циклов: выборка кода команды (цикл М1), чтение данных из памяти, запись данных в память, чтение данных из стека, запись данных в стек, ввод данных из внешнего устройства, запись данных во внешнее устройство, цикл обслуживания прерываний, останов, обслуживание прерывания в режиме останова.
Первым машинным циклом при выполнении любой команды является цикл М1. Тип выполняемого цикла, как указывалось выше, определяется информацией, выдавае¬мой на шину данных в начале каждого цикла. Соответствие типа цикла и сигналов в каждом разряде шины данных приведено в таблицах 2 и 3 книги УМК.ЭКСПЛУАТАЦИОННАЯ ДОКУМЕНТА¬ЦИЯ.(лист 11). На шине УМК (плата ТЭЗ М1) разряду D0 соответствует сигнал
ST0, разряду D1 – ST1 и т.д. В каждом машинном цикле МП проверяет состояние сигнала «Готов»(RDY) на своем входе. При нулевом сигнале на этом входе работа МП приостанавливается. В УМК это используется для выполнения программы в пошаговом режиме. Одно нажатие кнопки «ШГ» приводит к выполнению одной команды или одного машинного цикла программы.
2. Исследование выполнения команд по машинным циклам 2.1. Присоединить к УМК дополнительную плату ТЭЗ М1. Общий провод платы М1 соединить с входом заземления, а контакт ST5 – с входом внешнего запуска осциллографа. Переключить осциллограф в режим внешней синхронизации. Пригласить препода¬вателя для проверки схемы. ВНИМАНИЕ!
НЕЛЬЗЯ ВКЛЮЧАТЬ СОЕДИНЕННУЮ СХЕМУ БЕЗ РАЗРЕШЕНИЯ ПРЕПОДАВАТЕЛЯ. ЭТО МОЖЕТ ПРИВЕСТИ К ВЫХОДУ ИЗ СТРОЯ УМК. 2.2. Включить УМК и осциллограф. Поставить переключатели разверток по X – 1 В/дел, по Y – 1 мкс/дел. Добиться появления на экране линии развертки. 2.3.1. С адреса 0800Н ввести в УМК последовательность шест-надцатеричных чисел 3А 00 09
С3 00 08. Эта последователь¬ность представляет собой две команды. Первая (3А 00 09) – команда извле¬че¬ния числа из памяти и передача его в аккумулятор микропроцес¬сора. Число 3А – код команды, 00 09 – адрес в памяти пересылаемого числа (этот адрес равен 0900Н – в МП действует соглашение, что для двухбайтовых чисел младший байт расположен по меньшему адресу, старший – по большему). Вторая команда (С3 00 08) передает управ¬ле¬ние по адресу 0800Н, т.е. приведенная программа
– это бесконечное выполнение команды 3А 00 09. 2.3.2. Переключить УМК в пошаговый режим работы (кнопки РБ/ШГ и КМ/ЦК нажаты). Запустить программу, подав команду СТ 0800 ВП. Она остановится на первом шаге, причем на индикаторах будет высвечиваться информация. Нажимая кнопку ШАГ, несколько раз выполним программу, информацию занесем в таблицу 1.
Таблица 1. Шаг Адрес Данные Состояние Тип цикла Комментарий 1 000010 00111010 10100010 М1 Загрузка команды 2 0000101 0 1010 чтение Чтение мл. байта адреса 3 00001010 00001001 1010 чтение Чтение ст. байта адреса 4 000010010 101 1010 чтение Чтение из памяти по адресу 0900H 5 00001011 11000011 10100010 М1 Загрузка команды 6 000010100 0 1010 чтение Чтение мл. байта адреса 7 000010101 00001000 1010 чтение
Чтение ст. байта адреса 8 000010 00111010 10100010 М1 Повтор шага 1 Примечание. На шаге 4 информация на индикаторах Данные может отличаться от приведенной в таблице. Из анализа таблицы 1 видим, что команда 3А 00 09 выполняется за 4 цикла (цикл М1 и 3 цикла чтения памяти). В первом цикле происходит загрузка кода команды 3А (находится в памяти по адресу 0800Н) в РК микропроцессора. Во втором цикле читается младший байт адреса 00 (в памяти
по адресу 0801Н). В третьем цикле читается старший байт адреса 09 (в памяти по адресу 0802Н). В четвертом цикле число, находящееся по адресу 0900 (в нашем случае оно равно 0BFH), считывается в аккумулятор микропроцессора. 2.3.3. Снять временную диаграмму выполнения команды 3А0009. 2.3.3.1. Переключить УМК в непрерывный режим работы (отжать кнопки КМ/ЦК и РБ/ШГ). 2.3.3.2. Снять и зарисовать временные диаграммы сигналов на контактах
ST5, F2, IORC, IOWC, MRDC, MWTC, A0, A1, A8, D0. Все сиг¬на-лы по времени на осциллографе привязаны к началу цикла М1 и должны быть зарисованы в одном временном масштабе. Сигнал F2 совпадает с сигналом синхронизации С2, и его период равен одному такту. Пример временной диаграммы приведен на рис.2. 2.3.3.3. Проанализируем нашу временную диаграмму. Она показывает, что команда выполняется за 13 периодов сигнала
F2, т.е. за 13 тактов, причем цикл М1 выполняется за 4 такта, а циклы чтения за 3. Из сигналов синхронизации обмена информацией активным (активный уровень этих сигналов – низкий) бывает только сигнал MRDC (сопровождение чтения из памяти), что и следовало ожидать. Активным уровнем сигналов на шине адреса является низкий уровень, а на шине данных - высокий. 2.3.4. Записать в УМК с адреса 0800Н 22 00 09 С3 00 08.
Выпол¬нить программу в пошаговом режиме и результат занести в таблицу, аналогичную таблице 1. Снять временную диаграмму выполнения команды 22 00 09. Ответить на вопросы: 1. За сколько машинных циклов выполняется команда? За сколько тактов? 2. Какие циклы используются при выполнении команды? 3. Какие сигналы синхронизации обмена информацией бывают активны при выполнении команды?
4. Какие действия, по-вашему, выполняет команда? Рис.2. Пример временной диаграммы 3. Выполнение простейших программ. Рассмотрим программу, извлекающую число из адреса памяти 0900, инвертирующую его и записывающую в адрес 0901. Для удобства программистов двоичные числа, которые являются командами, при написании программ заменяются буквенно-цифровыми кодами (мнемокодами), где буквенный код указывает, какую операцию нужно выполнить,
а цифры являются операндами команды. Мнемокод отражает суть производимого командой действия и является сокращением от соответствующих английских слов, например, MOV – Move (двигать), передача данных между регист¬рами или регистрами и памятью микропроцессора. Программа 1 (в мнемокодах) Мнемокод Комментарий LDA 0900 ;Прочитать число из памяти по ;адресу 0900H CMA ;Инвертировать число
STA 0901 ;Записать результат по адресу 0901 HLT ;Останов При записи программ все числа представляются в шестнадцате¬рич¬ной системе счисления. Для записи программ в ОЗУ микро-ЭВМ необходимо перевести мнемокоды команд в машинные коды. Команды в программе могут быть одно двух- или трехбайтовые и должны в памяти занимать соответственно одну, две или три ячейки. Программа 1 ( размещение по адресам памяти)
Адрес Число Комментарий 0800 3А ; код команды 0801 00 ; младший байт адреса 0802 09 ; старший байт адреса 0803 2F ; код команды СМА 0804 32 ; код команды STA 0805 01 ; младший байт адреса 0806 09 ; старший байт адреса 0807 76 ; код команды HLT Предварительную запись программ удобно проводить в более компактной форме. В программе указывается начальный адрес каждой команды и при этом понимается, что, в зависимости от длины, команды в памяти будут занимать от одной до трех последовательных ячеек.
При такой записи в левом столбце указываются лишь адреса команд в программе. Это позволяет сократить объем при описании программ и сделать более простым их анализ. Программа 1 (общий вид записи) Адрес Машинный код Мнемокод Комментарий 0800 3А 00 09 LDA 0900 ;читатать число из памяти ;по адресу 0900H 0803 2F CMA ; инвертировать число 0804 32 01 09 STA 0901 ; записать число в память ;по адресу 0901H 0807 76
HLT ; останов Порядок выполнения: 1. Ввести в УМК программу 1. 2. Записать по адресу 0900 исследуемое число. 3. Осуществить пуск программы. Последовательно нажать клавиши «СБ», «СТ», ввести адрес 0800 и нажать клавишу «ВП». Выждать 1-2с и нажать клавишу «ПР», при этом на адресном дисплее отобразится адрес ячейки, следующий за командой HLT. 4. Проверить результат выполнения программы путем считывания числа из ячейки 0901. 5.
Исследовать процесс выполнения программы по командам. Клавишу «РБ/ШГ» установить в нажатое положение. Осуществить пуск программы и, последовательно нажимая клавишу «ШГ», выполнить программу по командам. После выполнения каждой команды проанализировать показания индикаторов ША, ШД и регистров состояния. 6. Исследовать процесс выполнения команд в программе 1 по машинным циклам. Обратить внимание на последовательность передачи и преобразования информации в микро-
ЭВМ при выполнении каждой команды. Программа 2 Адрес Машинный код Мнемокод Комментарий 0800 21 00 09 LXI H, 0900 ;записать в регистры H,L ;число 0900H 0803 7Е MOV A,M ;получить число из памяти, ;по адресу, указанному в ;регистровой паре H,L 0804 2F CMA ;инвертировать число в ;аккумуляторе 0805 2З
INX H ;увеличить на 1 число в ;регистрах H,L 0806 77 MOV M,A ;записать число из аккуму- ;лятора по адресу, указан- ;ному в регистрах H, L 0807 76 HLT ; останов Порядок выполнения: 1. Ввести в УМК программу 2. 2. Записать по адресу 0900 исследуемое число. 3. Осуществить пуск программы с адреса 0800. Проверить результат выполнения программы по числу, записанному
по адресу 0901. 4. Исследовать процесс выполнения команды MOV A,M по машинным циклам. СОДЕРЖАНИЕ ОТЧЕТА. 1. Цель работы. 2. Таблицы пошагового выполнения программ. 3. Временные диаграммы выполнения команд. 4. Ассемблерные записи 2-х программ с комментариями. 5. Ответы на вопросы. 6. Выводы.
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |