
Lab_pr_MP_14
.pdfФГБОУ ВПО «Уфимский государственный авиационный технический университет»
СПОСОБЫ АДРЕСАЦИИ В МИКРОПРОЦЕССОРНЫХ СИСТЕМАХ
Лабораторный практикум
Уфа 2014
2
Составители: А.П. Торгашев, А.Ю. Демин, И.С. Фролов, Г.С. Фролов
УДК 004.7(07)
ББК 32.973.26-04(7)
Способы адресации в микропроцессорных системах: Лабораторный практикум /Уфимск. гос. авиац. техн. ун-т; Сост.: А.П. Торгашев, А.Ю. Демин, И.С. Фролов, Г.С. Фролов. – Уфа, 2014. – 44 с.
Лабораторный практикум посвящен изучению микропроцессор- ного стенда УМПК-80, изучению способов адресации к внешним уст- ройствам и памяти в микропроцессорных системах, исследованию ко- манд условных переходов и организации программных циклов. Рас- смотрены краткие теоретические сведения по структурной организации микропроцессорных систем, методам адресации, основным понятиям и терминам микропроцессорной техники, примеры простых программ для МП Intel 8080. В приложении приведены машинные коды команд Ассемблера. Даны задания к лабораторным работам и методика их вы- полнения.
Табл. 4. Ил. 8. Библиогр.: 7 назв.
Рецензенты: канд. техн. наук, доц. Мукаев Р.Ю. канд. техн. наук, доц. Уразбахтин Р.Н.
|
3 |
|
|
СОДЕРЖАНИЕ |
|
|
Введение |
4 |
|
Лабораторная работа МПТ-1 |
|
|
Ознакомление с учебным стендом УМПК-80 и |
|
|
его программным эмулятором. Запись и выполнение |
|
|
простых программ |
|
1.1 |
Цель работы |
5 |
1.2 |
Задачи работы |
5 |
1.3 |
Краткие теоретические сведения |
5 |
1.4 |
Задание к лабораторной работе |
22 |
1.5 |
Порядок выполнения задания |
23 |
1.6 |
Контрольные вопросы |
27 |
1.7 |
Требования по оформлению отчета |
28 |
|
Лабораторная работа МПТ-2 |
|
|
Ввод-вывод данных, организация условных |
|
|
переходов и формирование временных интервалов |
|
2.1 |
Цель работы |
29 |
2.2 |
Задачи работы |
29 |
2.3 |
Краткие теоретические сведения |
29 |
2.4 |
Задание к лабораторной работе |
39 |
2.5 |
Порядок выполнения задания |
39 |
2.6 |
Контрольные вопросы |
41 |
2.7 |
Требования по оформлению отчета |
41 |
|
Критерии результативности лабораторного практикума |
42 |
|
Список литературы |
42 |
|
Приложение А Машинные коды команд Ассемблера |
43 |
4
Введение
Учебный стенд УМПК-80 построен на базе аналога процессора i8080 фирмы Intel. Микропроцессорная система на его основе содержит все основные модули, которые имеются в современных процессорах, и является простым и наглядным примером для начального изучения микропроцессорных систем. Ассемблер (низкоуровневый язык про- граммирования) процессоров i8080 имеет все необходимые состав- ляющие, представленные в ассемблерах других процессоров (команды пересылок, арифметические и логические операции, команды сдвигов, переходов, вызовов подпрограмм и возвратов из них, прямых обраще- ний к памяти и прочее) и может рассматриваться как язык начального уровня, легкий в освоении. Навыки программирования на ассемблере i8080, безусловно, облегчат освоение языков низкого уровня всех дру- гих процессоров и однокристальных ЭВМ.
Для ускорения и облегчения освоения ассемблера i8080 при вы- полнении лабораторных работ рекомендуется использовать разрабо- танный авторами эмулятор стенда УМПК-80 [7], который реализует с помощью программных средств возможности стенда на компьютере с операционной системой Windows. Это позволяет получить больше практических навыков при написании программ на ассемблере, уско- рить процесс выполнения лабораторных работ и проводить дистанци- онное обучение основам микропроцессорной техники.
Ограничения эмулятора: программа достаточно точно имитирует реальную работу УМПК-80, однако временные интервалы, получаемые расчетным путем для МП i8080, программой в точности не обеспечи- ваются. Рекомендуется с помощью эмулятора отлаживать общую рабо- тоспособность программ (корректность пересылок, переходов, вызовов подпрограмм), а точность получения расчетных временных интервалов проверять непосредственно на УМПК-80.
Примечание. Разработчики будут благодарны за сообщения обо всех выявленных ошибках и сбоях в работе программы.
5
ЛАБОРАТОРНАЯ РАБОТА МПТ-1 ОЗНАКОМЛЕНИЕ С УЧЕБНЫМ СТЕНДОМ УМПК-80 И ЕГО ПРОГРАММНЫМ ЭМУЛЯТОРОМ.
ЗАПИСЬ И ВЫПОЛНЕНИЕ ПРОСТЫХ ПРОГРАММ
1.1. ЦЕЛЬ РАБОТЫ
Изучение структуры учебной микроЭВМ, карты памяти, органов управления и режимов работы.
1.2. ЗАДАЧИ РАБОТЫ
Приобретение навыков написания и отладки программ на низкоуров- невом языке программирования, закрепление знаний о методах адреса- ции в программах.
1.3. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1.3.1. Учебная микроЭВМ на базе микропроцессорных БИС с фиксированным набором команд
Учебная микроЭВМ предназначена для знакомства с особенно- стями построения микроЭВМ на микропроцессоре (МП) с фиксиро- ванным набором команд и может быть использована для исследования методов программирования и работы БИС микропроцессорного ком- плекта. МикроЭВМ может применяться как управляющая ЭВМ при создании и исследовании работы систем управления различными объ- ектами. Она является легко осваиваемым и удобным средством для от- ладки относительно небольших (до 0,5К байт) программ пользователя. Открытая конструкция и наличие большого количества средств инди- кации позволяют наглядно исследовать процесс преобразования и пе- редачи информации в микроЭВМ. В лабораторном практикуме исполь- зуются стенды в варианте исполнения А (далее по тексту - стенды А) и в варианте исполнения Б (далее по тексту - стенды Б). Стенды А имеют внутренний источник питания, обеспечивающий их работу от сети 220 В, 50 Гц, стенды Б запитываются от внешнего источника питания через разъем на задней панели стенда. Кроме того, стенды отличаются адре- сами внешних устройств (табл. 1.2, 1.3 и рис. 1.2 и 1.3) и методами ор-
6
ганизации адресного пространства – в стендах А используется метод разделенного адресного пространства, при котором обращение к внеш- нему устройству происходит как к ячейке памяти, в стендах Б исполь- зуется метод раздельного управления памятью и внешними устройст- вами, при котором для обращения к ячейкам памяти и к внешним уст- ройствам используется различный набор управляющих сигналов, фор- мируемых системным контроллером КР580ВК28 (аналог i8228, Intel).
1.3.2. Структура учебной микроЭВМ
На рис.1.1 приведена структура микроЭВМ, где показаны ее от- дельные блоки. В структуру микроЭВМ входят следующие блоки и ма- гистрали:
−блок центрального процессора БЦП со схемой тактового пи- тания СхТП;
−формирователи магистрали данных ФМД, управления ФМУ, адреса ФМА;
−8-разрядная магистраль данных МД для двунаправленного обмена данными между отдельными узлами микроЭВМ;
−16-разрядная однонаправленная магистраль адреса МА, управляемая МП БИС и используемая для адресации к памя- ти и отдельным узлам микроЭВМ;
−5-разрядная однонаправленная магистраль управления МУ, управляемая МП БИС и служащая для определения режима работы микро- ЭВМ при выполнении каждого машинного цикла;
−блок памяти (БП), включающий в себя ОЗУ емкостью 1К байт и ПЗУ емкостью 2К байт;
−регистры ввода РгВв с переключателями П и вывода РгВыв с индикацией состояний светодиодами;
−схема выдачи кода прерывания СхВКПр;
−схема дешифрации адреса СхДША, формирующая сигналы выборки устройств;
−клавиатура управления и ввода данных К, состоящая из 9 клавиш управления, клавиши начальной установки микро- ЭВМ и 16 клавиш для введения шестнадцатеричных кодов чисел.

|
|
|
|
|
|
|
|
|
|
|
|
|
Сигналы выборки |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
устройств |
|
|
|
БЦП |
|
|
|
СхТП |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
СвД |
|
СвД |
|
СвД |
|
СхДША |
|
ФМД |
|
|
ФМА |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ФМУ
МА
МУ
МД
СхВЗС СхВКПР ПЗУ ОЗУ РгВв |
РгВыв РгСг |
РгСк |
РгЧК |
СвД |
СвД |
Д |
К |
|
|
ПК ВУ
Рис. 1.1. – Структура учебной микроЭВМ УМПК-80
8
Для ввода информации в микроЭВМ с клавиатуры в структуру введен регистр чтения клавиатуры РгЧК и регистр сканирования мат- рицы клавиш РгСк.
Для отображения данных и адресов при вводе с клавиатуры в систему введен 6-разрядный дисплей восьмисегментных светодиод- ных индикаторов Д, четыре разряда которого служат для отображе- ния кода адреса в шестнадцатеричной системе счисления, а два - для отображения данных. Этот же дисплей служит для отображения ре- зультатов выполнения пользовательских программ и контроля за промежуточными результатами при отладке программ.
Для управления дисплеем Д в микроЭВМ используются два ре- гистра: регистр сегментов дисплея РгСг и регистр сканирования РгСк (тот же, что и для сканирования матрицы клавиш).
Для генерации звука в микроЭВМ введена схема выдачи звуко- вого сигнала СхВЗС.
Магистрали микроЭВМ, а также входной и выходной регистры имеют светодиоды СвД, указывающие их состояние.
1.3.3.Адресация в учебной микроЭВМ
ВмикроЭВМ в варианте исполнения А реализована адресация с помощью карты памяти: каждому физическому устройству макета ставится в соответствие адрес, и обращение к нему при таком типе адресации аналогично обращению к ячейке памяти с использованием всего набора команд МП БИС. В табл. 1.1 приведена карта памяти микроЭВМ, из которой видно, что первые 2К байт адресов (с адреса 0000h по 07FFh) занимает ПЗУ, в котором записаны управляющие и демонстрационные программы; адреса с 0800h по 0FFFh (следующие 2К адресов) - ОЗУ; далее память распределяется блоками также по 2К адресов до адреса 87FFh между входными и выходными регистрами микроЭВМ. С адреса 8800h до FFFFh (конечный адрес, доступный прямым образом микропроцессору i8080/85 и КР580ВМ80А) разме- щается область неиспользуемого микроЭВМ УМПК-80 адресного пространства.
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 1.1 |
|||
|
Карта памяти микроЭВМ |
|
|
|
|
||||||
|
Биты в старшем байте |
|
|
|
|
|
|||||
|
адреса (А8… |
А15) |
Адреса |
|
|
|
|
||||
15 14 |
13 12 11 |
|
10 9 8 |
|
|
|
|
|
|||
0 |
0 |
0 |
0 |
0 |
|
0 0 0 |
0000 |
Управляющая программа |
|
||
|
… |
...…… |
|
|
|
….… |
… |
Демонстрационные программы |
|||
0 |
0 |
0 |
0 |
0 |
|
1 1 1 |
07FF |
|
|
|
ПЗУ |
0 |
0 |
0 |
0 1 |
|
0 0 0 |
0800 |
Область адресов для |
|
|
||
….. |
….……. |
|
|
|
……. |
... |
записи исследуемых |
|
|
||
0 |
0 |
0 |
0 1 |
|
0 1 0 |
0AFF |
программ |
|
|
||
0 |
0 |
0 |
0 |
1 |
|
0 1 1 |
0B00 |
Для записи данных ис- |
|
|
|
….. |
…..…. |
|
|
|
……. |
… |
следуемых программ и |
|
|
||
0 |
0 |
0 |
0 |
1 |
|
0 1 1 |
0BB0 |
стек |
|
ОЗУ |
|
0 |
0 |
0 |
0 |
1 |
|
0 1 1 |
0BB1 |
Для записи данных |
|
|
|
….. |
…..…… |
|
|
|
……. |
…… |
управляющей про- |
|
|
||
0 |
0 |
0 |
0 |
1 |
|
0 1 1 |
0BFF |
граммы |
|
|
|
0 |
0 |
0 |
0 |
1 |
|
1 0 0 |
0C00 |
Для записи данных ис- |
|
|
|
0 |
0 |
0 |
0 |
1 |
|
1 1 1 |
0FFF |
следуемых программ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
0 |
|
0 0 0 |
1000 |
Управление защитой |
|
|
|
….. |
…….…. |
|
|
|
….. |
….. |
первых адресов ОЗУ от |
|
УПР |
||
0 |
0 |
0 |
1 |
0 |
|
1 1 1 |
17FF |
записи |
|
Зп/Чт |
|
0 |
0 |
0 |
1 |
1 |
|
0 0 0 |
1800 |
Входной регистр |
|
||
0 |
0 |
0 |
1 |
1 |
|
1 1 1 |
1FFF |
|
|
|
|
чтения клавиатуры |
|
РгЧК |
|||||||||
0 |
0 |
1 |
0 |
0 |
|
0 0 0 |
2000 |
Входной регистр |
|
||
0 |
0 |
1 |
0 |
0 |
|
1 1 1 |
27FF |
|
|
|
|
|
|
|
РгВв |
||||||||
0 |
0 |
1 |
0 |
1 |
|
0 0 0 |
2800 |
Регистр сканирования |
|
||
0 |
0 |
1 |
0 |
1 |
|
1 1 1 |
2FFF |
|
|
|
|
дисплея и клавиатуры |
|
РгСк |
|||||||||
0 |
0 |
1 |
1 |
0 |
|
0 0 0 |
3000 |
Выходной регистр |
|
||
0 |
0 |
1 |
1 |
0 |
|
1 1 1 |
37FF |
|
|
|
|
|
|
|
РгВыв |
||||||||
0 |
0 |
1 |
1 |
1 |
|
0 0 0 |
3800 |
Регистр сегментов |
|
||
0 |
0 |
1 |
1 |
1 |
|
1 1 1 |
3FFF |
|
|
|
|
дисплея |
|
РгСг |
|||||||||
1 |
0 |
0 |
0 |
0 |
|
0 0 0 |
8000 |
Регистр звукового вы- |
|
||
1 |
0 |
0 |
0 |
0 |
|
1 1 1 |
87FF |
|
|
|
|
хода |
|
СхВЗС |
|||||||||
1 |
0 |
0 |
0 |
1 |
|
0 0 0 |
8800 |
Неиспользуемые адреса |
|||
….. |
……….. |
|
|
|
….. |
….. |
|
|
|
|
|
1 |
1 |
1 |
1 |
1 |
|
1 1 1 |
FFFF |
|
|
|
|
10
Оперативная память микроЭВМ (ОЗУ) используется как для за- писи, хранения и модификации данных исследуемых программ (об- ласти памяти с адресами от 0В00h до 0BB0h и с 0C00h до 0FFFh), так и для временной записи и хранения данных управляющей программы (область памяти с адресами от 0BB1h до 0BFFh). При этом адрес 0ВВ0h является начальным адресом стека («верхушкой» стека) – об- ласти памяти, доступ к которой может осуществляться с помощью специальных команд операций со стеком по принципу LIFO – Last In
– First Out («последним зашёл – первым вышел»).
Для записи кодов команд (программ) пользователя в адресном пространстве микроЭВМ зарезервированы адреса с 0800h по 0AFFh. Большинство из приведенных в лабораторном практикуме программ начинаются с адреса 0800h и могут быть без изменения адресов ис- следованы на данном макете. Эта область памяти в учебной микро- ЭВМ УМПК-80 схемотехнически защищена от случайной записи во время выполнения программ пользователя в автоматическом (не по- шаговом) режиме работы, что исключает возможность модификации расположенных в ней данных в процессе исполнения программы. Для записи данных при автоматическом выполнении программ необхо- димо использовать область ОЗУ с адреса 0В00h по адрес 0ВВ0h (для стендов Б - с адреса 0C00h по 0CB0h).
Следует помнить, что стек в процессорах i8080/85 и КР580ВМ80А работает на автоуменьшение. Это означает, что до на- чала исполнения команды, оперирующей со стеком, в 16-разрядном регистре – указателе стека SP (Stack Pointer) хранится адрес начала стека. В случае УМПК-80 – это адрес 0BB0h. При этом в 8-разрядном регистре SPH (старшие 8 разрядов регистра стека SP) хранится стар- ший байт адреса (0Bh), а в регистре SPL (младшие 8 разрядов регист- ра стека SP) – младший байт адреса (B0h). При каждой записи в стек указатель стека SP автоматически декрементируется на длину записи в стек (количество байт, занесенных в стековую область памяти). При записи двух байт (например, двухбайтного адреса возврата из под- программы после выполнения команды CALL) в регистре стека SP будет записано 16-разрядное число 0BAEh (0Bh – в SPH, AEh – в SPL), то есть регистр стека SP будет указывать на следующую сво- бодную для записи ячейку памяти в области, отведенной под стек. При этом в 8-разрядных ячейках с адресами 0BB0h и 0BAFh будут