Группа команд пересылки

advertisement
Министерство образования и науки Самарской области
Государственное бюджетное образовательное учреждение
среднего профессионального образования
"Жигулевский государственный колледж"
МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ
ЛАБОРАТОРНЫХ РАБОТ
по междисциплинарному курсу МДК02.01
«Микропроцессорные системы»
профессионального модуля
ПМ02. Применение микропроцессорных систем, установка и настройка
периферийного оборудования
Курс 3
Для специальности СПО 230113 «Компьютерные системы и комплексы»
с контрольными заданиями и методическими указаниями
Жигулевск, 2014г.
-1-
СОДЕРЖАНИЕ
Введение……………………………………………………………………………4
Лабораторная работа №1. Адресация информации и вычисление адресов……7
Лабораторная работа №2. Исследование работы запоминающих устройств
различного типа…………………………………………………………………………15
Лабораторная работа №3. Запись и исполнение простых программ………..25
Лабораторная работа №4. Исследование программ ввода вывода………….39
Лабораторная работа №5. Маскирование данных и организация условных
переходов……..................................................................................................................45
Лабораторная работа №6. Разработка и использование программ с
подпрограммами………………………………………………………………………..54
Лабораторная работа №7. Разработка и исследование программ работы со
стеком……………………………………………………………………………………63
Лабораторная работа №8. Программирование арифметических операций над
многобайтными числами……………………………………………………………….70
Лабораторная работа №9. Разработка и исследование программ умножения
данных……………………………………………………………………………………77
Лабораторная работа №10. Разработка и исследование программ деления
данных…………………………………………………………………………………….85
Лабораторная работа №11. Работа с программой – отладчиком…………….. 91
Приложение А………………………………………………………………….101
Приложение Б…………………………………………………………………..107
-2-
ВВЕДЕНИЕ
УВАЖАЕМЫЙ СТУДЕНТ!
Методические указания по МДК02.01 «Микропроцессорные системы»
для выполнения лабораторных работ созданы Вам
в помощь для работы на
занятиях, подготовки к лабораторным работам, правильного составления отчетов.
Приступая
к
выполнению
лабораторной
работы,
Вы
должны
внимательно прочитать цель и задачи занятия, ознакомиться с требованиями к
уровню Вашей подготовки в соответствии с федеральными государственными
стандартами третьего поколения (ФГОС-3), краткими теоретическими и учебнометодическими материалами по теме лабораторной работы, ответить на вопросы для
закрепления теоретического материала.
Все задания к лабораторной работе
Вы должны выполнять в
соответствии с инструкцией, анализировать полученные в ходе занятия результаты
по приведенной методике.
Отчет о лабораторной работе Вы должны выполнить по приведенному
алгоритму, опираясь на образец.
Наличие положительной оценки по лабораторным работам по МДК02.01
«Микропроцессорные системы» необходимо для получения
допуска к экзамену,
поэтому в случае отсутствия на уроке по любой причине или получения
неудовлетворительной оценки за
лабораторную Вы должны найти время для ее
выполнения или пересдачи.
Внимание! Если в процессе подготовки к лабораторным работам или при
решении задач у Вас возникают вопросы, разрешить которые самостоятельно не
удается, необходимо обратиться к преподавателю для получения разъяснений или
указаний в дни проведения дополнительных занятий.
Пособие содержит материалы для организации
-3-
лабораторных работ по
междисциплинарному курсу "Микропроцессорные системы" и является частью
профессионального модуля ПМ02 «Применение микропроцессорных систем,
установка и настройка периферийного оборудования», а также частью основной
профессиональной образовательной программы по специальности СПО
в
соответствии с ФГОС по специальности 230113 Компьютерные системы и
комплексы базовой и углубленной подготовки) в части освоения основного вида
профессиональной деятельности (ВПД): 230113 Компьютерные системы и
комплексы и соответствующих профессиональных компетенций (ПК):
1. ПК2.1. Создавать программы на языке ассемблера для микропроцессорных
систем.
2. ПК2.2. Производить тестирование и отладку микропроцессорных систем.
С целью овладения указанным видом профессиональной деятельности и
соответствующими профессиональными компетенциями обучающийся в ходе
выполнения лабораторных работ должен:
иметь практический опыт:
- создания программ на языке ассемблера для микропроцессорных систем;
-тестирования и отладки микропроцессорных систем;
- применения микропроцессорных систем;
уметь:
- составлять программы на языке ассемблера для микропроцессорных систем;
- производить тестирование и отладку микропроцессорных систем (МПС);
-
выбирать
микроконтроллер/микропроцессор
для
конкретной
системы
управления;
- выявлять причины неисправностей и сбоев,
принимать меры по их
устранению;
знать:
- базовую функциональную схему МПС;
- программное обеспечение микропроцессорных систем;
- структуру типовой системы управления (контроллер) и организацию
микроконтроллерных систем;
-4-
- методы тестирования и способы отладки МПС;
.
В пособии рассматриваются основы создания программ на ассемблере, а
также средства отладки такого программного обеспечения. Изучение этих вопросов
ведется на примере языка программирования микропроцессора КР580ВМ80А (Intel
8080), учебно-отладочного устройства “Эмулятор МПС580” и кросс-средств для
персонального компьютера.
Целью
данного
пособия
является
привитие
первичных
навыков
по
программированию микропроцессорных систем на уровне микропроцессора (на
языке ассемблера), а также ознакомление с аппаратными и программными
средствами отладки таких систем и соответствующего программного обеспечения.
В основу пособия положено изучение системы команд микропроцессора
КР580ВМ80А (зарубежный аналог - Intel 8080). Этот микропроцессор впервые
увидел свет в 1974 году, однако до сих пор используется в относительно простых
микропроцессорных устройствах. Кроме того, он стал своеобразной основой для
появления и развития микропроцессоров следующих поколений. Основные
принципы построения
микропроцессора КР580ВМ80А и систем на его основе,
заложенные более 25 лет назад, целиком находят свое отражение в современных
изделиях. С этой точки зрения данный микропроцессор является своеобразной
“классической учебной моделью” для первоначального ознакомления как с языком
программирования
микропроцессоров
(ассемблером),
так
и
с
основными
принципами проектирования и отладки систем на их основе.
Важнейшим этапом создания любой технической системы является ее
отладка.
Особенностью
отладки
микропроцессорных
систем
является
нерасторжимость программных и аппаратных средств. Поэтому проектировщик
таких систем должен владеть средствами отладки программного обеспечения и
средствами комплексной отладки программной и аппаратной частей системы.
Пособие знакомит студентов с такими средствами на примере учебно-отладочного
устройства “Эмулятор МПС580” и кросс-средств проектирования и отладки
программного обеспечения на персональном компьютере Turbo Debuger.
-5-
Пособие содержит примеры написания вычислительных и управляющих
программ для микропроцессора КР580ВМ80А. На основе этих примеров
предлагаются варианты заданий для самостоятельной индивидуальной работы,
которые фактически являются и заданиями для лабораторных занятий по основам
микропроцессорной техники. Пособие содержит все справочные материалы,
необходимые для их выполнения.
Лабораторные работы 1 и 2 дают возможность исследования оперативных
запоминающих
устройств
микропроцессорных
систем
статического
и
динамического типа, а также возможности задания различных способов адресации
информации.
ЗАДАНИЯ ДЛЯ ДОМАШНЕЙ ПОДГОТОВКИ
Для выполнения лабораторной работы необходимо изучить теоретические
вопросы, связанные с построением микропроцессорных систем на основе МП
КР580ВМ80А. Эти вопросы включают:
1)
Ознакомление
с
техническими
характеристиками
микропроцессора
КР580ВМ80А (аналог Intel 8080): разрядность, объем адресуемой памяти,
количество устройств ввода вывода и т.д.;
2) Ознакомление с программной моделью микропроцессора:
количество регистров, назначение, разрядность и правила использования
регистров;
3) Ознакомление с типовой архитектурой микропроцессорных систем на
основе изучаемого процессора;
4) Ознакомиться с назначением в типовой структуре шин микропроцессорной
системы: шины данных, адреса, управления. Изучить понятие однонаправленной и
-6-
двунаправленной шины, шины с тремя состояниями, понятия разрядности шин и
чем оно определяется.
5) Изучение структуры, режимов работы и схему перехода к различным
режимам работы микроЭВМ.
6) Изучение правил работы с числами в различных системах счисления.
Перевод
чисел
из
одной
системы
счисления
в
другую
(двоичную,
шестнадцатеричную, десятичную).
7) Правила выполнения арифметических и логических операций с числами в
двоичной системе счисления. Таблицы истинности логических операций.
8)Ознакомление с языком программирования и системой команд МП
КР580ВМ80А
9) Изучение правила записи программ на языке Ассемблера
Желаем Вам успехов!!!
-7-
РАЗДЕЛ 1
Тема 1.2 .Организация памяти микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №1
АДРЕСАЦИЯ ИНФОРМАЦИИ И ВЫЧИСЛЕНИЕ АДРЕСОВ
Учебные цели: Изучение основных методов адресации информации и
обработки адресов по теме
Учебные задачи:
1.Исследование различных способов адресации информации при написании
команд и программ;
2. Закрепление полученных теоретических знания по вопросам принципа
адресации информации при программировании микропроцессорных систем.
3.Практически определять исполнительные адреса при различных способах
адресации информации.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы.
Задачи лабораторной работы:
-8-
1.
Используя специальные программные средства исследовать способы
задания адресов ячеек памяти
при составления команд и инструкций для
программирования микропроцессорных систе;.
2.
Практическое использование нового программного продукта.
Обеспеченность занятия:
1.
Учебно-методическая литература:
- Нешумова К.А. Электронные вычислительные машины и системы. -М.:
Академия., 2009,366 с.
- Калиш Г.Г. Основы вычислительной техники. – М.: Высшая школа, 2000 г.
- Коган
Б.М.
Электронные
вычислительные
машины
и системы -
М.:Энергоатомиздат, 1995,552 с.
- Кузин А.В., Жаворонков М.А. Микропроцессорная техника. – М., ИЦ
Академия, 2007 г.
- Келим Ю.М. Вычислительная техника. Учебное пособие для студентов
СПО:М.,Академия, 2007.-384.
2.
Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.
3.
Технические средства обучения:
- Персональный компьютер;
- Принтер.
4.
Программное обеспечение:
- Операционная система Windows;
- Учебная программа VMSLAB 5.
5.
Лабораторное оборудование:
-9-
- Персональный компьютер;
- Принтер.
6.
Рабочая тетрадь в клетку
7.
Ручка.
8.
Карандаш простой.
9.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
Для выполнения операций, указанных в программе , процессор должен
получить двоичные коды необходимых операндов, которые хранятся в оперативной
памяти. Существует два различных принципа поиска операндов в памяти:
ассоциативный и адресный.
В лабораторной работе изучаются некоторые варианты адресного поиска,
который предполагает, что искомый операнд извлекается из ячейки оперативной
памяти, номер которой формируется на основе информации в адресном поле
команды.
В современных ЭВМ адресный код и исполнительный адрес, как правило,
не совпадают. Таким образом, способ адресации можно определить как способ
формирования исполнительного адреса операнда Аисп по адресному коду команды
Ак.
Способов адресации существует достаточно много. Параметры процесса
обработки информации существенно зависят от выбранного способа адресации.
Одни способы позволяют увеличить объем адресуемой памяти без удлинения
команды, но снижают скорость выполнения операции, другие ускоряют операции
над массивами данных, третьи упрощают работу с подпрограммами и т.п.
В
лабораторной
работе
предлагается
адресации:
- 10 -
изучить
следующие
методы
- прямой;
- косвенный;
- индексный;
- относительный.
Рассмотрим способы адресации операндов и команд.
Прямая адресация. Исполнительный адрес - адрес ячейки ОП, в которой
хранится адресуемое слово, совпадает с адресной частью команды. Этот метод
используется в ЭВМ в комбинации с другими методами адресации.
Прямая регистровая адресация. В адресном поле команды содержится адрес
R регистра СОЗУ процессора, в котором хранится операнд .При таком способе
адресации быстродействие ЭВМ повышается, так как нет необходимости извлекать
операнды из ОП и команда имеет более короткий формат, так как регистров в СОЗУ
обычно значительно меньше чем ячеек в оперативной памяти.
Косвенная адресация. В адресном поле команды указывается адрес ячейки
оперативной
памяти,
содержащей
другой
адрес,
который
может
быть
исполнительным А или еще одним косвенным адресом (так называемая
многоступенчатая косвенная адресация).
Таким образом, косвенная адресация может быть определена как "адресация
адреса". Она используется в тех случаях, когда часто разрядов в адресной части
команды недостаточно для указания всех адресов оперативной памяти ЭВМ.
Относительная адресация. При динамическом распределение памяти
базовые адреса массивов изменяются в процессе выполнения программы, в
результате адреса не могут быть зафиксированы в программе. Для обеспечения
динамического распределения палили используют способ относительной адресации.
Относительный адрес состоит из двух полей: В, указывающего базовый адрес Аб
массива; D, представляющего собой относительный адрес Аотн Поле D принято
называть смещение D операнда относительно начала массива.
Исполнительный адрес вычисляется по формуле Аисп = (В)+ D.
Индексная адресация. В этом случае адрес в команде
представляется двумя
полями. В поле В указывается базовый адрес массива А- оперативной памяти. Поле
- 11 -
X называется индексом. Если X = 0, то адрес А- не модифицируется, т. е. является
исполнительным А. Значение X не равно 0 определяет адрес ячейки памяти
индексов, в которой хранится индекс i. Модификация адреса сводится к
вычислению исполнительного адреса
Аисп = Аб + (X), где {X) - содержимое ячейки X индексной памяти.
Вопросы для закрепления теоретического материала к лабораторной
работе:
1. Чем отличаются ассоциативный и адресный методы поиска информации в
памяти компьютера ?
2. Рассчитайте
какие объёмы памяти могут быть адресованы с помощью
изученных методов адресации ?
3. Сравните по быстродействию изученные методы адресации.
4. Какие методы адресации упрощают работу с массивами данных ?
Задания для лабораторного занятия:
1.В сумматоре АЛУ процессора находится число 4. К нему необходимо
прибавить число 6 используя заданные способы адресации. Число 6 хранится в ОЗУ
в ячейке№. Смещение хранится в индексном регистре №. или, при относительной
алресации, в счетчике команд процессора.
Таблица 1
Вар Адресация
Ячейка
Индексный Смещение Счетчик
№
регистр №
команд
01
косвенная, индексная, прямая
7
3
2
-
02
косвенная, индексная,
7
1
3
-
- 12 -
непосредственная
03
индексная, косвенная,
относительная
04
прямая, индексная,
относительная
05
прямая, непосредственная,
косвенная
06
относительная,
непосредственная, прямая
07
индексная, относительная.
прямая
08
непосредственная,
индексная, косвенная
09
прямая, косвенная,
непосредственная
10
прямая, индексная,
косвенная
15
1
4
3
13
5
7
5
5
-
-
-
11
-
3
6
12
3
7
7
10
7
3
-
5
-
-
-
9
2
8
-
Инструкции по выполнению работы
В упрощенном виде все указанные методы адресации смоделированы
программным путем и представлены в графической форме на экране монитора.
Вся работа ведется в диалоговом режиме
экране.
по
командам, отображаемым на
Началу работы предшествует краткое объяснение цели работы и ее
содержания. Для выполнения работы инициируется модуль start12.bat. Текст
описания лабораторной работы содержится в файле «Лабораторная работа №12.
После запуска программы, появляется возможность исследования различных
способов адресации информации, используемых в запоминающих устройствах
МПС.
- 13 -
Внимание! Выполняйте инструкции, появляющиеся на экране монитора.
Интерфейс программы «Прямая адресация»:
Интерфейс программы «Косвенная адресация»:
- 14 -
Интерфейс программы «Индексная адресация»:
Интерфейс программы «Относительно-индексная адресация»:
- 15 -
Интерфейс программы «Относительная адресация»:
Методика анализа результатов, полученных в ходе лабораторной работы:
Отметим, что выбор того или иного метода адресации в значительной
степени определяет время выполнения команды. Самая быстрая адресация — это
регистровая, так как она не требует дополнительных циклов обмена по магистрали.
Если же адресация требует обращения к памяти, то время выполнения команды
- 16 -
будет увеличиваться за счет длительности необходимых циклов обращения к
памяти. Понятно, что чем больше внутренних регистров у процессора, тем чаще и
свободнее можно применять регистровую адресацию, и тем быстрее будет работать
система в целом.
Порядок выполнения отчета по лабораторной работе:
1. Наименование и цель работы
2. Примеры исследуемых методов адресации. Изобразить форматы команд и
способ формирования
исполнительного адреса. (распечатка экрана программы или
графическое отображение в форме таблиц)
3. Ответы на контрольные вопросы
4. Выводы. Сравнительный анализ различных методов адресации
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №1
АДРЕСАЦИЯ ИНФОРМАЦИИ И ВЫЧИСЛЕНИЕ АДРЕСОВ
Учебные цели: Изучение основных методов адресации информации и
обработки адресов по теме
Учебные задачи:
1.Исследование различных способов адресации информации при написании
команд и программ;
2. Закрепление полученных теоретических знания по вопросам принципа
адресации информации при программировании микропроцессорных систем.
3.Практически определять исполнительные адреса при различных способах
адресации информации.
- 17 -
Способы адресации бывают:
Регистровая адресация. Операнд разыскивается во внутреннем операнде МП.
Всегда является однобайтовыми, потому что они не требуют данных и адресов вне
МП.
Непосредственная адресация. Операнд поступает в программную память из
следующего
байта
(иногда
из
двух
байтов).
Операнд
следует
команде
непосредственно за КОП. Данные загружаются с помощью команды LXI SP,
принадлежащие группе передачи данных.
Прямая адресация. Второй и третий байты команды указывают на адрес
операнда. Они являются адресами в прямом способе адресации, тогда как при
непосредственной адресации эти же байты были операндами.
Косвенная адресация. Пара регистров HL указывает на адрес операнда в
памяти. Этот тип команды всегда однобайтовый. Соответствующий адрес памяти
данных указывается содержимым пары HL, которая здесь играет роль адресного
регистра.
Задание
В сумматоре ( Асс ) АЛУ процессора находится число 3. К нему необходимо
прибавить число 6 используя заданные способы адресации. Число 5 хранится в ОЗУ
в ячейке№. Смещение хранится в индексном регистре №. или, при относительной
адресации, в счетчике команд процессора.
Вар Адресация
Ячейка № Индексный Смещение Счетчик команд
регистр №
12
косвенная, индексная
9
5
- 18 -
3
-
Асс = 3, индексного регистра 5=3, ячейки 9=5. Прибавить 2 к
Содержимое
1)
Асс , используя косвенную и индексную адресацию.
АКосвенная.
сс
А
Аисп
Асс
3
исп
8
+
5
7
адрес
А=7
<РОН3=2>
Аисп
<Поле А>
А=9
КОП
ПА
Поле А=7
- формат команды при косвенной адресации
косвенная
Асс
Индексная.
9
Аисп
6
Поле А
+
3
3
8
Аисп
+
5
Индекс Р5
9
Асс
КОП
ПА
Индкс Р5=3 Поле А=6
- формат команды при индексной
адресации
индексная
Ответы на контрольные вопросы:
1.
2.
3.
- 19 -
4.
Выводы. Сравнительный анализ различных методов адресации
Каждая команда, выбираемая (читаемая) из памяти процессором, определяет
алгоритм поведения процессора на ближайшие несколько тактов. Код команды
говорит о том, какую операцию предстоит выполнить процессору и с какими
операндами (то есть кодами данных), где взять исходную информацию для
выполнения команды и куда поместить результат (если необходимо). Код команды
может занимать от одного до нескольких байт, причем процессор узнает о том,
сколько байт команды ему надо читать, из первого прочитанного им байта или
слова. В процессоре код команды расшифровывается и преобразуется в набор
микроопераций, выполняемых отдельными узлами процессора.
Большая часть команд процессора работает с кодами данных (операндами).
Одни команды требуют входных операндов (одного или двух), другие выдают
выходные операнды (чаще один операнд). Входные операнды называются еще
операндами-источниками, а выходные называются операндами-приемниками. Все
эти коды операндов (входные и выходные) должны где-то располагаться. Они могут
находиться во внутренних регистрах процессора (наиболее удобный и быстрый
вариант). Они могут располагаться в системной памяти (самый распространенный
вариант). Наконец, они могут находиться в устройствах ввода/вывода (наиболее
редкий случай). Определение места положения операндов производится кодом
команды. Причем существуют разные методы, с помощью которых код команды
может определить, откуда брать входной операнд и куда помещать выходной
операнд. Эти методы называются методами адресации. Эффективность выбранных
методов адресации во многом определяет эффективность работы всего процессора
в целом.
Отметим, что выбор того или иного метода адресации в значительной
степени определяет время выполнения команды. Самая быстрая адресация — это
регистровая, так как она не требует дополнительных циклов обмена по магистрали.
- 20 -
Если же адресация требует обращения к памяти, то время выполнения команды
будет увеличиваться за счет длительности необходимых циклов обращения к
памяти. Понятно, что чем больше внутренних регистров у процессора, тем чаще и
свободнее можно применять регистровую адресацию, и тем быстрее будет работать
система в целом.
РАЗДЕЛ 1
Тема 1.2 .Организация памяти микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА № 2
ИССЛЕДОВАНИЕ РАБОТЫ ЗАПОМИНАЮЩИХ УСТРОЙСТВ
РАЗЛИЧНОГО ТИПА
Учебные цели: 1. Изучение основных принципов построения оперативных
запоминающих устройств статического и динамического типов и их работа
2.Исследование оперативных ЗУ статического и динамического типов
Учебные задачи:
1.Исследование
работы
и
принципа
организации
оперативных
ЗУ
статического и динамического типа;
2. Закрепление полученных теоретических знания по вопросам организации
запоминающих устройств;
3.Практически наблюдать принципы записи и считывания информации из
ячеек памяти по командам процессора
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- 21 -
- выполнять требования технического задания по программированию
микропроцессорных систем;
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы.
- структуру типовой системы управления и организации микроконтроллерных
систем;
- состояние производства и использования микропроцессорных систем.
Задачи лабораторной работы:
1.
Используя специальные программные средства исследовать принципы
записи и считывания данных из ячеек памяти статических и динамических ЗУ;
2.
Практическое использование нового программного продукта.
Обеспеченность занятия:
1.
Учебно-методическая литература:
- - Калиш Г.Г. Основы вычислительной техники. – М.: Высшая школа, 2000 г.
- Коган
Б.М.
Электронные
вычислительные
машины
и системы -
М.:Энергоатомиздат, 1995,552 с.
- Кузин А.В., Жаворонков М.А. Микропроцессорная техника. – М., ИЦ
Академия, 2007 г.
- Келим Ю.М. Вычислительная техника. Учебное пособие для студентов
СПО:М.,Академия, 2007.-384.
- Сергеев Н.П., Вашкевич Н.П. Основы вычислительной техники. Изд.-М.,
Академия,2008 г,312с
2.
Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.
- 22 -
3.
Технические средства обучения:
- Персональный компьютер;
- Принтер.
4.
Программное обеспечение:
- Операционная система Windows;
- Учебная программа VMSLAB 9.
5.
Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6.
Рабочая тетрадь в клетку
7.
Ручка.
8.
Карандаш простой.
9.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
Чаще всего ЗУ выполнены в виде ЗУ с произвольной выборкой, которые
имеют
ряд
преимуществ
Полупроводниковые
-
статические
перед
ЗУ
ОЗУ
оперативные
с
последовательным
подразделяются
запоминающие
устройства
доступом.
на:
(СОЗУ);
- динамические оперативные запоминающие устройства (ДОЗУ).
Статическое запоминающее устройство. Структура микросхем статических
ОЗУ (рис.2.1) включает матрицу накопителя, дешифраторы кода адреса строк и
столбцов, устройство ввода-вывода (УВВ). Для управления ИС предназначены:
адресные сигналы Ап_1 -АО, обеспечивающие обращение к заданному ЭП, сигнал
"Запись-Считывание"
(ЗС),
определяющий
- 23 -
режим
ИС,
сигнал
"Выборка
микросхемы"(ВМ),разрешающий доступ к накопителю по информационным входу
D и выходу F.
Матрица накопителя состоит из строк и столбцов, на пересечениях которых
размещены элементы памяти. Основу ЭП, вариант схемотехнической реализации
которого приведен на рис. 2.2а), составляет статический триггер на транзисторах
VTI-VT4. Транзисторы VT5, VT6 являются ключами, через которые триггер
подключается к информационным разрядным шипам РШО и РШI. Состояние
ключей зависит от уровня сигнала на шине строки Xi: при 1 ключи открыты и
информация из разрядных шин записывается в триггер или считывается из него в
разрядные шины и далее на выход; при О ключи закрыты, и триггер находится в
режиме хранения.
Рисунок 2.1
Для обращения к ИС для записи
0
или
1
следует
подвести
эту
информацию ко входу D, затем подать
код адреса, разрешающий сигнал ВМ
и
сигнал
режиму
ЗС,
соответствующий
записи,
сигналах
при указанных
возбуждается
заданная
строка, выбранная дешифратором кода адреса строк, и в результате этого
открывается доступ по информационным (разрядным) шинам ко всем ЭП данной
строки.
Обычно
требования
к
информационной
емкости
ОЗУ
значительно
превосходят возможности одной ИС памяти как в отношении разрядности, так и
числа хранимых слов. Поэтому при построении ЗУ ИС объединяют в модули,
которые вместе с регистрами и устройством управления образуют функциональнозаконченный блок ОЗУ.
- 24 -
Запоминающая ячейка динамического ОЗУ. В отличие от статических ЗУ,
которые хранят информацию пока включено питание, в динамических ЗУ
необходима постоянная регенерация информации, однако при этом для хранения
одного бита в ДОЗУ нужны всего 1-2 транзистора и накопительный конденсатор
(рис. 2.2. Такие схемы более компактны.
Естественно, что в микросхеме динамического ОЗУ есть один или несколько
тактовых генераторов и логическая схема для восстановления информационного
заряда, стекающего с конденсатора. Это несколько "утяжеляет" конструкцию ИМС.
Рисунок
2.2.
Запоминающая
ячейка
динамического ОЗУ.
В лабораторной работе изучается типичная
ячейка динамического ОЗУ на трех транзисторах..
Бит информации хранится в виде заряда емкости затвор-подложка (Cg).
Для опроса ячейки подается импульс на линию предварительной зарядки и
открывается транзистор T1. При этом выходная емкость Cr заряжается до уровня
Ec и возбуждается линия выборки при считывании.
Операция ЗАПИСЬ выполняется путем подачи соответствующего уровня
напряжения на линию записи данных с последующей подачей импульса на линию
выборки при записи. При этом транзистор T1 включен и Cg заряжается до
потенциала линии записи данных.
Период регенерации зависит от температуры и для современных приборов
находится, как правило, в интервале 1-3 мс при температуре от 0 до 55С.
Регенерация ячейки динамического ОЗУ выполняется путем считывания хранимого
бита информации, передачи его на линию записи данных и последующей записи
этого бита в ту же ячейку при помощи импульса, подаваемого на линию выборки
при записи.
- 25 -
Вопросы для закрепления теоретического материала к лабораторной
работе:
1.Как осуществляется обмен данными между микропроцессором и памятью?
2. Какие причины ограничивают быстродействие ОЗУ?
3. Предложите способ наращивания емкости памяти при использовании БИС
с организацией 1Кх1бит; 1Кх8бит.
4. Назовите достоинства и недостатки статических и динамических ЗУ.
5. Почему нецелесообразно использовать динамические ЗУ для построения
небольшой по объёму памяти?
6. Какой тип памяти применяют при построении КЭШ-памяти?
7. Какая технология производства интегральных схем преимущественно
используется при изготовлении микросхем памяти? Чем это можно объяснить?
8. Как выполняется регенерация динамического ЗУ?
Задания для лабораторного занятия:
1.
Исследовать работу статического ЗУ в режиме записи и считывания
информации.
1.1.
Выполнить операции, указанные в п.1.1. и провести запись исходных
данных по 8 последовательно расположенным адресам, начиная о адреса А 1 в
соответствии с табл.1
1.2. Зарисовать временную диаграмму записи данных в ЗУ
Таблица 1
№ п/п
Адрес
Исходны
е
данные
- 26 -
Запись
Чтение
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
1.3. Выполнить операции, указанные в п.1.2., и провести считывание
записанной в ЗУ информации. Результаты измерений занести в таблицу (табл.2).
Провести сравнение результатов записи с исходной информацией.
1.4. Зарисовать временную диаграмму считывания данных из ЗУ
2.
Исследование ЗУ матричного типа
2.1. Выполнить операции, указанные в п.2.1. и провести запись исходных
данных по 8 последовательно расположенным адресам, начиная о адреса А 1 в
соответствии с табл.2
Таблица 2
№ п/п
Адрес
Исходны
е
данные
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
- 27 -
Запись
Чтение
2.1.
7
0111
8
1000
Выполнить операции, указанные в п.2.2., и провести считывание
записанной в ЗУ информации. Результаты измерений занести в таблицу (табл.2).
Провести сравнение результатов записи с исходной информацией.
3.
Исследование ячейки ЗУ динамического типа
3.1 Выполнить операции, указанные в п.3.1. и провести запись
данных в
динамическую ячейку памяти. Убедиться в том, что при записи логической «1»,
происходит накопление заряда на конденсаторе МОП транзистора Т3
3.1. Выполнить операции, указанные в п.3.1., и провести считывание
записанной в ячейку ЗУ информации. Убедиться в том, что при считывании «1»
информация теряется (т.е. конденсатор разряжается)
Инструкции по выполнению работы
Лабораторная работа состоит из двух частей:
- в первой изучается статическое запоминающее устройство, а
также
принцип объединения отдельных устройств для построения памяти большой
емкости;
- во второй изучаются особенности работы динамической памяти.
В лабораторной работе используются программные модели различных
ЗУ. Для выполнения работы надо инициировать файл START9.BAT.
1.
Исследование статического ЗУ
Для этого :
- при нажатии цифры 1, предлагается интерфейс программы для исследования
ЗУ статического типа;
- программа работает в интерактивном режиме и предлагает выполнять
определенные действия с помощью клавиатуры;
- 28 -
1.1. Исследование работы статического ЗУ в режиме записи
- выбирается режим ЗАПИСИ данных;
- набирается адрес любой ячейки памяти от ячейки с адресом 0 до
F в
двоичном коде;
- предлагается записать в ячейку памяти данные 0 или 1;
- при соответствующем выборе на экране монитора появится новая
информация о том, что запись произошла. На схеме возникнет состояние триггера
ячейки, временная диаграмма сигналов ЗАПИСИ в ОЗУ и ячейка примет состояние
записанной информации 0 или 1.
- заполнить таблицу 1
1.2 Исследование работы статического ЗУ в режиме считывания
- выбирается режим СЧИТЫВАНИЯ данных;
- далее, выполнить операции, указанные в п.1.1 и провести считывание
записанной в ЗУ информации по тем же адресам. Результаты занести в таблицу
(табл.1). Провести сравнение результатов записи с исходной информацией.
Интерфейс программы исследования ОЗУ статического типа:
2
Исследование
матрицы
накопителя ЗУ
Для этого :
- при нажатии цифры 2, предлагается
интерфейс программы для исследования ЗУ
матричного типа;
- программа работает в интерактивном режиме и предлагает выполнять
определенные действия с помощью клавиатуры;
2.1. Исследование работы накопителя ЗУ в режиме записи
- выбирается режим ЗАПИСИ данных;
- 29 -
- набирается адрес любой ячейки памяти от ячейки с адресом 0 до
F в
двоичном коде;
- предлагается записать в ячейку памяти четырехразрядные данные 0 - F;
- при соответствующем выборе на экране монитора появится новая
информация о том, что запись произошла. На схеме возникнет состояние триггера
ячейки, временная диаграмма сигналов ЗАПИСИ в ОЗУ и ячейка примет состояние
записанной информации 0 - F .
- заполнить таблицу 1
2.2 Исследование работы накопителя ЗУ в режиме считывания
- выбирается режим СЧИТЫВАНИЯ данных;
- далее, выполнить операции, указанные в п.2.1 и провести считывание
записанной в ЗУ информации по тем же адресам. Результаты занести в таблицу
(табл.2). Провести сравнение результатов записи с исходной информацией.
3 Исследование ячейки памяти динамического ЗУ
Для этого :
- при нажатии цифры 3, предлагается интерфейс программы для исследования
ЗУ динамического типа;
- программа работает в интерактивном режиме и предлагает выполнять
определенные действия с помощью клавиатуры;
3.1. Исследование работы ячейки динамического ЗУ в режиме записи
- выбирается режим ЗАПИСИ данных;
- на линию ЗАПИСЬ подаем с клавиатуры ПК требуемый сигнал;;
- предлагается записать в ячейку памяти логической « 1»;
- при соответствующем выборе на экране монитора появится новая
информация о том, что запись произошла. На схеме возникнет состояние составного
транзистора
ячейки, и ячейка примет состояние записанной информации «1»
(отобразится изменением цвета накопление заряда перехода МОП транзистора Т3)
.
- 30 -
-
в
правом
окне
интерфейса
программы
будут
даны
разъяснения
происходящих изменений состояния транзисторов ячейки памяти. Внимательно
ознакомиться с этими разъяснениями.
3.2 Исследование работы ячейки динамического ЗУ в режиме считывания
- выбирается режим СЧИТЫВАНИЯ данных;
- на линия СЧИТЫВАНИЕ подаем с клавиатуры требуемый сигнал
- далее, выполнить операции, указанные в п.3.1 и провести считывание
записанной в ячейку ЗУ информации.
Рис.2 Интерфейс программы
исследования ОЗУ динамического типа:
Убедиться
считывании
в
том,
что
изменится
при
состояние
транзисторов ячейки и потенциал уровня
«1» пойдет по линии считывания. Информация о логической «1» в ячейке
разрушится;
-
в
правом
окне
интерфейса
программы
будут
даны
разъяснения
происходящих изменений состояния транзисторов ячейки памяти. Внимательно
ознакомиться с этими разъяснениями.
Содержание отчета.
1. Наименование и цель работы
2. Таблицы полученных экспериментов;
3. Временную диаграмму в циклах ЗАПИСЬ и ЧТЕНИЕ;
4. Схему работы запоминающего элемента в динамической памяти.
5. Ответы на контрольные вопросы.
6. Анализ полученных результатов6.
Методика анализа результатов, полученных в ходе лабораторной работы:
- 31 -
Оперативная память является одним из важнейших элементов компьютера.
Именно из нее процессор берет программы и исходные данные для обработки, в нее
он записывает полученные результаты. Название “оперативная” эта память
получила потому, что она работает очень быстро, так что процессору практически
не приходится ждать при чтении данных из памяти или записи в память. Однако
содержащиеся в ней данные сохраняются только пока компьютер включен. При
выключении компьютера содержимое оперативной памяти стирается. Часто для
оперативной памяти используют обозначение RAM (Random Access Memory, то есть
память с произвольным доступом) .
При обращении к памяти МП выставляет по ША адрес ячейки памяти (ЯП), а
по ШУ - сигнал MEMRD в цикле чтения памяти или MEMWR в цикле записи
(рис.3).
Рис. 3 Временная диаграмма работы блока памяти
Образец отчета по лабораторной работе
ЛАБОРАТОРНАЯ РАБОТА № 2
ИССЛЕДОВАНИЕ РАБОТЫ ЗАПОМИНАЮЩИХ УСТРОЙСТВ
РАЗЛИЧНОГО ТИПА
Учебные цели: 1. Изучение основных принципов построения оперативных
запоминающих устройств статического и динамического типов и их работа
- 32 -
2.Исследование оперативных ЗУ статического и динамического типов
Учебные задачи:
1.Исследование работы и принципа организации оперативных ЗУ статического и
динамического типа;
2. Закрепление полученных теоретических знания по вопросам организации
запоминающих устройств;
3.Практически наблюдать принципы записи и считывания информации из ячеек
памяти по командам процессора
1. Исследование работы статического ЗУ
1.1.
Исследование режима записи и считывания
Таблица 1
№ п/п
Адрес
Исходны
Запись
Чтение
е
данные
1
0001
1
1
1
2
0010
0
0
0
3
0011
1
1
1
4
0100
0
0
0
5
0101
1
1
1
6
0110
0
0
0
7
0111
0
0
0
8
1000
1
1
1
Временная диаграмма записи. Операция записи заключается в том, что
активное устройство (микропроцессор), захватив магистраль, пытается передать
данные в ячейку памяти ОЗУ. На рис. 2. приведена временная диаграмма записи при
указании адреса. Последовательность событий следующая.
- 33 -
Момент t1,. Захватив магистраль, активное устройство выдает сигнал по
линии С1 (запись), адрес и данные, которые нужно записать по этому адресу.
Момент t2. Через время, не меньшее 150 не (75 нс — на «успокоение»
магистрали и 75 нс—запас), активное устройство выдает сигнал сопровождения
адреса MSYN.
Момент t3. ОЗУ, опознаёт адрес и принимает информацию с шины данных в
соответствующую ячейку. Приняв данные, это устройство отвечает ведущему
сигналом SSYN.
Рис. 2. Временная диаграмма записи
Момент t4. Получив сигнал SSYN,
активное устройство «узнаёт», что запись
состоялась, и поэтому снимает с магистрали
все сигналы, кроме сигнала BBSY,
Момент t5. Убедившись в том, что ответный сигнал SSYN воспринят
активным устройством (о чем говорит снятие сигнала MSYN), ОЗУ снимает сигнал
SSYN.
Момент t6. Активное устройство, дождавшись снятия сигнала SSYN,
освобождает магистраль, т. е. снимает сигнал BBSY.
Временная диаграмма чтения. При чтении активное устройство пытается
получить слово данных от некоторого программно-доступного элемента, например
от ячейки ОЗУ. При правильном указании адреса реализуется временная диаграмма,
показанная на рис. 3. При отсутствии абонента с указанным адресом возникает
зависание, которое примерно через 10 мкс устраняется искусственной выдачей
ответного сигнала от специальной схемы, как и в предыдущем случае. Приведем
последовательность событий при чтении.
Момент t1. Захватив магистраль, активное устройство выдает адрес ячейки
памяти, из которой нужно извлечь данные (одно слово).
- 34 -
Рис. 3. Временная диаграмма чтения
Момент
t2.
Активное
устройство
формирует сигнал MSYN, подтверждающий
истинность адреса.
Момент t3. Схемы дешифрации адреса выбирают нужную ячейку ОЗУ.
Момент t4. Активное устройство, получив сигнал SSYN, узнаёт о том, что
через время, большее 75 не, информацию можно будет принять с шины данных.
Выждав 75нс (или более), устройство принимает информацию.
Момент t5. Приняв информацию, активное устройство снимает адрес и сигнал
MSYN, так как чтение уже состоялось и эти сигналы утратили актуальность.
Момент t6. Оперативное запоминающее устройство снимает данные и сигнал
SSYN, так как оно узнало (по снятию сигнала с линии MSYN) о том, что данные уже
приняты активным устройством.
2.
Исследование работы матричного ЗУ
Таблица 1
№ п/п
Адрес
Исходны
Запись
Чтение
е
данные
1
0001
0101
0101
0101
2
0010
1010
1010
1010
3
0011
1101
1101
1101
4
0100
0011
0011
0011
5
0101
1110
1110
1110
6
0110
1000
1000
1000
7
0111
0111
0111
0111
8
1000
1111
1111
1111
- 35 -
Исследование ячейки памяти динамического ЗУ
3.
Запоминающая ячейка динамического ОЗУ. В отличие от статических ЗУ,
которые хранят информацию пока включено питание, в динамических ЗУ
необходима постоянная регенерация информации, однако при этом для хранения
одного бита в ДОЗУ нужны всего 1-2 транзистора и накопительный конденсатор
(рис. 4. Такие схемы более компактны.
Естественно, что в микросхеме динамического ОЗУ есть один или несколько
тактовых генераторов и логическая схема для восстановления информационного
заряда, стекающего с конденсатора. Это несколько "утяжеляет" конструкцию ИМС.
Рисунок
4.
Запоминающая
ячейка
динамического
В лабораторной работе изучается типичная
ячейка динамического ОЗУ на трех транзисторах..
Бит информации хранится в виде заряда емкости затвор-подложка (Cg).
Для опроса ячейки подается импульс на линию предварительной зарядки и
открывается транзистор T1. При этом выходная емкость Cr заряжается до уровня
Ec и возбуждается линия выборки при считывании.
Операция ЗАПИСЬ выполняется путем подачи соответствующего уровня
напряжения на линию записи данных с последующей подачей импульса на линию
выборки при записи. При этом транзистор T1 включен и Cg заряжается до
потенциала линии записи данных.
Период регенерации зависит от температуры и для современных приборов
находится, как правило, в интервале 1-3 мс при температуре от 0 до 55С.
Регенерация ячейки динамического ОЗУ выполняется путем считывания хранимого
бита информации, передачи его на линию записи данных и последующей записи
этого бита в ту же ячейку при помощи импульса, подаваемого на линию выборки
при записи.
- 36 -
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы
ОЗУ предназначено для хранения переменной информации; оно допускает
изменение своего содержимого в ходе выполнения вычислительного процесса.
Таким образом, процессор берёт из ОЗУ код команды и, после обработки какихлибо данных, результат обратно помещается в ОЗУ. Причем возможно размещение
в ОЗУ новых данных на месте прежних, которые при этом перестают существовать.
В ячейках происходит стирание старой информации и запись туда новой. Из этого
видно, что ОЗУ является очень гибкой структурой и обладает возможностью
перезаписывать информацию в свои ячейки неограниченное количество раз по ходу
выполнения программы.
Основной составной частью микросхемы ОЗУ является массив элементов
памяти, объединённых в матрицу накопителя. Элемент памяти (ЭП) может хранить
один бит информации. Каждый ЭП обязательно имеет свой адрес. Для обращения к
ЭП необходимо его “выбрать” с помощью кода адреса, сигналы которого подводят к
соответствующим выводам микросхемы.
В качестве элемента памяти в статическом ЗУ используются триггера
на
биполярных или МДП - транзисторах. Число состояний триггера равно двум, что
позволяет использовать его для хранения двоичной единицы информации. Получив
заряд один раз, ячейка такой памяти способна хранить его сколь угодно долго, по
крайней мере до тех пор, пока будет питание. Естественно, что в данном случае
исчезают непроизводительные задержки на обновление информации, что приводит
к ускорению работы с такими микросхемами. Однако статические ЗУ стоят
- 37 -
существенно дороже, чем динамические. В результате, сфера применения
микросхем статических ЗУ ограничена теми областями, для которых требуется
небольшой объем памяти, а значительное быстродействие.
Устройства динамической памяти базируются иеся на способности сохранять
электрический заряд. Микросхемы динамических ОЗУ отличаются от микросхем
статических ОЗУ большей информационной ёмкостью, что обусловлено меньшим
числом компонентов в одном элементе памяти и, следовательно, более плотным их
размещением в полупроводниковом кристалле.
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №3
Запись и выполнение простых программ
Учебные цели: исследование выполнения отдельных команд и простых
программ микропроцессором; использование различных методов адресации в
программах; запись программ.
Учебные задачи:
1. Исследование выполнения отдельных команд и простых программ
микропроцессором; использование различных методов адресации в программах;
запись программ.
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
- 38 -
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами
программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального
времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.
Используя
программу
эмулятора
микропроцессорной
системы
исследовать систему команд микропроцессора КР580ВМ80 и программы типовых
функций управления;
2.
Практическое использование нового программного продукта.
Обеспеченность занятия:
Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры.
Учебное пособие. М.,ДЕСС, 2007г,319 с.
- 39 -
- Майоров В.Г., Гаврилов А.И. Практический курс программирования
микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и
вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А,
КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов
/Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
Технические средства обучения:
- Персональный компьютер;
- Принтер.
10.
Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
11.
Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
12.
Рабочая тетрадь в клетку
13.
Ручка.
14.
Карандаш простой.
15.
Чертежные принадлежности: линейка
- 40 -
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
При
изучении
специализированных
микропроцессорных
устройств
рассматриваются приемы проектирования как аппаратных, так и программных
средств МПС.
Проектирование программных средств требует знаний, необходимых для
выбора
метода
и
микропроцессорного
алгоритма
решения
устройства,
для
задач,
составления
входящих
в
программ
функции
(часто
с
использованием языков низкого уровня – языка кодовых комбинаций, языка
Ассемблера), а также умения использовать средства отладки программ.
Важнейшим этапом создания любой технической системы является ее
отладка.
Особенностью
отладки
микропроцессорных
систем
является
нерасторжимость программных и аппаратных средств. Поэтому проектировщик
таких
систем
должен
владеть
средствами
программирования
и
отладки
программного обеспечения системы. Пособие знакомит студентов с такими
средствами
на
примере
учебно-отладочного
эмклятора“КР580” используемого при
устройства
–
программы
-
отладке программного обеспечения на
персональном компьютере.
Пособие содержит примеры написания вычислительных и управляющих
программ для микропроцессора КР580ВМ80А. На основе этих примеров
предлагаются варианты заданий для самостоятельной индивидуальной работы,
которые фактически являются и заданиями для лабораторных занятий по основам
микропроцессорной техники.
- 41 -
Интерфейс программы: 1 - поле исследуемых программ; 2 – цифровой
дисплей; 3 – порт ввода; 4 – порт вывода; 5 – область стековой памяти; 6 содержимое регистров общего назначения; 7 – флаги регистра признаков; 8 –
оперативная память; 9 – программный счетчик (счетчик команд); 10 –указатель
стека
Интерфейс выбора заданий:
- 42 -
Учебно-отладочное устройство (УОУ) предназначено для практического
овладения студентами колледжа принципами построения микро-ЭВМ
различного назначения на базе микропроцессора КР580ВМ80А, для обучения
программированию указанного микропроцессора, а также для отладки
программного обеспечения этих микро-ЭВМ. Эмулятор по структуре
представляет собой универсальную микро-ЭВМ и может быть использован для
моделирования процессов в простых системах управления технологическими
процессами при условии оснащения соответствующим программами. Тактовая
частота микропроцессора в эмуляторе– 2 МГц.
Учебная программа «SHELL» предназначена для знакомства с особенностями
построения микро – ЭВМ на микропроцессоре с фиксированным набором команд
и может быть использована для исследования методов программирования и
работы БИС, входящих в микропроцессорный комплект серии К580. Микро –
ЭВМ при создании и исследовании систем управления различными объектами.
Она является легко осваиваемыми и удобным средством для отладки
относительно небольших (до 1500 строк) программ пользователя.
Рабочие зоны эмулятора
0
1
5
6
4
2
1
3
2
4
5
3
Рис.3.2
2
6
22
Рис.3.1
Экран эмулятора состоит из 6 зон. Зона №1 представляет собой экран с
исходным текстом программы на ассемблере. Курсор, представляющий собой
символ «» указывает на команду, которая выполняется следующей. Счетчик
команд РС указывает номер линии с выполняемой командой. Зона №2 – шесть семи
- 43 -
сегментных индикаторов с точкой. Запись в них осуществляется посредством
команды OUT 70…75, где адрес порта составляет номер индикатора. Таким образом
команда OUT 70 запишет в первый индикатор значение регистра А. А команда OUT
73 запишет в четвертый индикатор регистра А. Соответствующие сегменты
индикаторов к битам регистра А приведены на рис.3.2
Если соответствующие сегмент индикатора включен, то на мониторе он
светится ярким цветом, иначе его видно блеклым цветом.
Зона №3 представляет собой окно, в котором можно просматривать и
изменять содержимое памяти.
Зона №4 – это два регистра ввода вывода. Верхний представляет собой
регистр ввода. Значение его получить командой IN 80. При этом в регистре А
скажется значение этого порта.
Регистр вывода выполнен в виде светодиодов. Вывод в него осуществляется
командой OUT 90. При этом значения светодиодов устанавливаются соответственно
битам регистра А.
Существует еще один регистр вывода – звуковой. Включение динамика
осуществляется записью не нулевого значение регистра А командой OUT 60. Если в
регистре А – 0, то динамик отключится.
Зона №5 содержит значения каждого из регистров микропроцессора КР580.
Для записи данных в регистры необходимо нажать клавишу, соответствующую
номеру регистра. Регистр А имеет №1 и т.д. После введения номера регистра
появится окно, для записи данных. Данные – это числа в шестнадцатиричной
системе от 01 до FF.
И наконец, зона №6 указывает на область памяти, на которую ссылается
регистр SP.
3.1
Описание клавиш эмулятора
Клавиши используемые для управления ходом выполнением программы.
Клавиша F2 используется для перезагрузки программы.
- 44 -
Нажав клавишу F4 ваша программа будет выполняться до тех пор, пока не
будет достигнуто одно из следующих событий:
-
Программный счетчик РС достигнет той строки, на которой стоял курсор.
- Пользователь не нажимает клавишу ESC.
- Программа завершит свое выполнение с помощью команды HLT.
- Возникнет какая либо ошибка (например, синтаксическая).
После того как возникли две предыдущие ситуации, появится окно, в котором
будет написана ситуация, из-за которой программа прекратила свое выполнение,
строка в которой произошло событие, и варианты действий. Если вы нажмете
клавишу 0, то эмулятор реинициализируется и можно будет снова начать
выполнение программы. Если вы нажмете клавишу 1, то вы выйдете из эмулятора.
Нажав клавишу 2, вы сможете спрятать окно с сообщением до повторного нажатия
этой клавиши. Это дает возможность просмотреть результаты работы вашей
программы.
С помощью клавиши F9 эмулятор будет выполнять вашу программу до
возникновения событий, описанных выше. С помощью клавиш курсора (клавиш со
стрелками) вы можете перемещаться по вашей программе вверх/вниз и
просматривать её.
Для просмотра памяти используйте клавиши [и]. Клавиша [сдвигает
содержимое в зоне №3 на одну ячейку назад, а клавиша] – на одну ячейку вперёд.
Для того чтобы редактировать содержимое памяти, нажмите клавишу М. Появится
окно, в котором вас спросят об адресе ячейки памяти. Введите адрес, в пределах от
0000h до 1000h и нажмите Enter. Затем в диалоговом окне введите содержимое
ячейки – от 00h до FFh.
Для просмотра содержимого стека используются клавиши + и -.
Для изменения содержимого вводного порта используйте клавиши 1…8 – где
клавиша 1 – соответствует 0 биту регистра, и т.д., вплоть до клавиши 8, которая
соответствует седьмому биту входного регистра. Повторное нажатие клавиши
инвертирует соответствующий бит регистра.
- 45 -
Для изменения выходного регистра пользуйтесь клавишами Alt-1…Alt-8.
3.2 Описание программы MENU
Программа MENU предназначена для запуска лабораторных программ. Эта
программа, как и программа SHELL состоит из нескольких зон.
Зона №1 – главная зона этой программы. В ней вы можете выбрать, какую
программу необходимо загрузить. В этом окне вы увидите название и номер
лабораторной работы. Выберите нужную работу и нажмите клавишу Enter или
клавишу R. Появится второе окно, в котором вам предложат загрузить нужную
программу из лабораторной работы. Выберите нужную программу с помощью
курсора и нажмите Enter – для выполнения эмулирования этой программы. Если
вместо клавиши R (или Enter) вы нажмёте клавишу E – то вы сможете
отредактировать исходный текст программы. После выхода из редактора загрузится
эмулятор с текстом изменённой программы.
3.3 Описание программы EDITOR
Программа EDITOR нужна для редактирования уже существующих программ,
или для создания новых. При запуске этой программы вы увидите главный (и
единственный ) экран программы. Вверху будет строчка статуса, в которой
показывается информация о тексте, который редактируется. В остальной части
экрана будет сам редактируемый текст. По тексту можно будет передвигаться с
помощью клавиш курсора (клавиш со стрелками). Текущая редактируемая
программа выделена более ярким цветом, чем остальные. Клавишами «» и «»
можно передвигать курсор по длине редактируемой строки, а клавишами «» и
«» - по редактируемому тексту. Клавиши с буквами и цифрами – изменяется текст.
Нажатием клавиши Backspace – удаляется символ слева от курсора. Клавишей
Delete – справа от курсора. Если курсор находится в конце редактируемой строки и
вы нажали клавишу Delete, то две строки (текущая и следующая) объединяются в
одну. Нажав клавишу Enter вы разбиваете строку в месте положения курсора на две
- 46 -
строки – первая часть (до курсора) остается на месте, а вторая часть переносится на
следующую.
После того, как вы закончили править текст программы, нажмите клавишу
Esc – программа запишет все изменения и завершит свою работу.
Вопросы для закрепления теоретического материала к лабораторной
работе:
1.
Что такое мнемоническое имя команды микропроцессора?
2.
Определите
команды,
которые
следовало
бы
использовать
для
выполнения перечисленных действий:
- переслать данные в аккумулятор из конкретной области памяти, на которую
указывают второй и третий байты команды;
- записать копию содержимого аккумулятора в область памяти, на которую
указывает содержимое регистровой пары ВС;
- загрузить регистр В данными, содержащимися во втором байте команды;
- переслать данные из регистра С в регистр В;
- записать в область памяти ААСЕ копию содержимого аккумулятора;
- загрузить содержимое аккумулятора в регистр D.
Задания для лабораторного занятия:
Задание 1: Исследование программы 2.1
Задание 2: Исследование программы 2.2
Задание 3: Исследовать работу программы 2.3
Задание 4: Исследование программы 2.4
Задание 5: Исследование программы 2.5
Задание 6: Используя программы 2.2; 2.3; 2.5; составить программу пересылки
двух операндов двойной длины, хранящихся в ячейках 0010, 0011, 0012, 0013 в
регистрах пары BC и DE
Задание 7: Исследовать выполнение программы 2.6
- 47 -
Листинги программ находятся в тексте описания лабораторной работы.
Внимание: Количество выполняемых заданий назначает преподаватель
Инструкции по выполнению работы
Микропроцессор КР580ВМ80А имеет фиксированный набор команд. Каждая
команда имеет свой машинный код – слово длиной 8, 16 или 24 бит, занимающее
соответственно 1, 2 или 3 ячейки памяти в запоминающем устройстве микроЭВМ.
Микропроцессор работает по программе, интерпретируя содержимое ячейки памяти
как код команды или как данные.
Задание №1
Исследовать работу программы 2.1
Рассмотрим программу 2.1, извлекающую число из ячейки памяти с адресом
0010h, осуществляющую инверсию этого числа и записывающую результат по
адресу 0011h.
Программа 3.1 (в мнемокодах)
Мнемокод
LXI H, 0010
Комментарий
загрузить адрес 0010h
MOV A,M
передать данные из 0010h в аккумулятор
CMA
инвертировать содержимое аккумулятора
INX HL
сформировать адрес для результата
MOV M,A
записать число из аккумулятора в память
HLT
прервать выполнение программы
Для начала работы программы , необходимо в рабочую ячейку 0010 занести
любое шестнадцатиричное число от 01 до FF.
При записи программ все числа представляются в шестнадцатеричной системе
счисления. Для загрузки программы выберите в начальном меню лабораторную
работу №2.1, выберете требуемую для исследования программу и нажмите клавишу
Enter. Программа запустится и через некоторое время появится стартовое
- 48 -
сообщение. Нажмите любую клавишу, появится главный интерфейс программы с
выбранной программой для исследования в окне исследуемых программ. Теперь
можно приступать к её исследованию.
Задание 1: Исследование программы 2.1
1.1 Ввести программу 2.1 в микро – ЭВМ
1.2 Записать исследуемое число по адресу 0010
1.3 Проверить результат выполнения программы по числу записанному в
ячейке 0011
1.4 Составьте таблицу 1 содержимого регистров микропроцессора при
выполнении программы 3.1 с командой CMA при выполнении программы по шагам.
Таблица 1
Содержимое регистров после выполнения каждой команды программы 3.1
Регистры Шаг программы (команда, после которой анализируется содержимое
МП
регистров)
0 шаг
1шаг
2 шаг
3шаг
(начало)
LXI H
MOV A,M CMA
4 шаг
5 шаг
INX HL MOV M,A HLT
A
FL
H
L
M1=0010
M2=0011
Задание 2: Исследование программы 2.2
2.1Вызвать окно выбора задания и в меню выбрать программу 2.2
2.2 Занести в ячейки 0010 и 0011 сравниваемые числа
2.3 Результат выполнения программы находится в регистре В
- 49 -
6 шаг
2.4 Проконтролировать содержимое ячеек памяти и регистров
микропроцессора, участвующих в работе программы
2.5 Графически отобразить выполнение команды lda 0010
Программная памятьъ
КОП
Младший
байт адреса
Старший
байт адреса
а
Байт 1
Байт 2
Аккумулятор
?
Аккумулятор
ЗАГРУЗИТЬ
Байт 3
До операции
Память
данных
(0010H)
LDA
Старший байт адреса
После операции
1111 1111
б
0000 0000 0001 0000
Младший
байт адреса
1111 1111
КОП – 03AH
0000 0000
0000 0010
. Графическое представление команды загрузки аккумулятора
Графическое представление команды загрузки аккумулятора
Задание 3: Исследовать работу программы 2.3
3.1 Загрузить программу 2.3 в память
3.2 Записать данные в ячейки памяти 0010 и 0011
3.3 Результирующее число находится в ячейке, адресуемой парой регистров ВС
3.4 Составьте таблицу 2 содержимого регистров микропроцессора при
выполнении программы 3.3 с командой ADD M при выполнении программы по
шагам.
- 50 -
Таблица 2
№
Коман
A
FL
да
1
HL
М1/да
М2/да
М3/да
нные
нные
нные
ВС
DE
lxi hl
0010
2
lxi bc,
0011
3
ldax bc
4
add m
5
inx bc
6
stax bc
7
hlt
Задание 4: Исследование программы 2.4
4.1 Записать программу 2.4 в микро – ЭВМ
4.2 Записать исследуемые числа по адресам 0010 и 0011
4.3 Проверить результат выполнения программы по числу, записанному в
регистр В
Задание 5: Исследование программы 2.5
5.1 Занести шестнадцать любых однобайтных чисел в ячейки памяти, начиная
с 0000
5.2 Убедится в выполнении последовательного сдвига этих чисел проверкой
содержимого адресов 0010
Задание 6: Используя программы 2.2; 2.3; 2.5; составить программу пересылки
двух операндов двойной длины, хранящихся в ячейках 0010, 0011, 0012, 0013 в
регистрах пары BC и DE
Задание 7: Исследовать выполнение программы 2.6
7.1 Преобразуемое число записать по адресу 0010
7.2 Результат инверсии находится в регистре D
- 51 -
При выполнении заданий №№ 6 и 7 требуется воспользоваться программой
EDITOR из пакета SHELLКР580,
Служащей для записи и редактирования программ пользователя. После ввода
отредактированных программ в эмулятор предстоит её отладка согласно изученной
методике, после чего программа станет доступна для исследования.
Приложение №1
Программа №2.1
lxi hi,0010
записать адрес 0010 в паре HL
mov a,m
передать данные в аккумулятор
cma
инвертировать содержимое аккумулятора
lnx hl
инвертировать содержимое HL
mov m,a
передать содержимое регистра А в ячейку памяти
hit
прервать выполнение программы
Программа №2.2
lda 0010
передать данные из ячейки 0010 в аккумулятор и
mov d,a
в регистр D
lhtd 0011
данные из ячейки 0011 передать в регистр HL
sub l
вычесть содержимое регистра L из содержимого А
jnc cnt
если есть заем, идти на CNT
mov b,l
передать содержимое L в регистр В
jmp done
перейти на конец программы
cnt:mov b,d
передать содержимое D в регистр B
done:hlt
остановить выполнение программы
Программа №2.3
lxi hl,0010
записать адрес 0010 в регистр HL
lxi bc,0011
записать адрес 0011 в регистр ВС
- 52 -
ldax bc
передать
данные
из
ячейки
по
адресу
аккумулятор
add m
сложить содержимое аккумулятора и ячейки 0010
inx bc
увеличить содержимое ВС на 1
stax bc
передать содержимое аккумулятора в ячейку ВС
hlt
завершить выполнение
Программа №2.4
start:lxi hl,0010
записать адрес 0010 в регистр HL
lxi bc,0011
записать адрес 0011 в регистр ВС
ldax bc
передать данные из ячейки ВС в аккумулятор
xra m
проверка числа
iz start
если 0, то идти на начало
mov b,a
записать в регистр В значение аккумулятора
hlt
завершить выполнение
Программа №2.5
lxi hl,0000
загрузить адрес в регистр HL
lxi de,0010
загрузить адрес в регистр DE
mvl b,10
записать в регистр число 10
cnt:mov a,m
передать данные из ячейки HL в аккумулятор
stax de
передать число из аккумулятора в ячейку DE
inx hl
инкрементировать HL
inx de
инкрементировать DE
dcr b
деинкрементировать B
jnz cnt
если b≠, идти на CNT
hlt
завершить выполнение
Программа №2.6
lxi hl,0010
записать в регистр HL адрес 0010
- 53 -
ВС
в
mov a,m
передать данные в аккумулятор из ячейки HL
cma
инвертировать число в аккумуляторе
mov d,a
передать содержимое аккумулятора в регистр D
hlt
останов программы
Методика анализа результатов, полученных в ходе лабораторной работы
Программный раздел содержит наборы программ для исследования на языке
ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и
комментарии; за каждой программой следует по крайней мере один пример ее
использования.
При
исследовании
программ
была
получена
следующая
информация: назначение программы, процедуру ее выполнения, используемые
регистры, размер памяти, необходимый для программы и ее данных, а также
специальные случаи, входные и выходные условия.
Во всех программах был использован следующий метод передачи параметров:
Первый 8-разрядный параметр передается в аккумуляторе, второй 8разрядный параметр- регистре В, а третий- в регистре С.
Первый 16-разрядный параметр передается в регистрах Н и L, при этом
старший байт- в регистре Н. Второй 16-разрядный параметр передается в регистрах
D и Е со старшим байтом в D.
Большее число параметров передается
прямо или косвенно. Вход в
программу осуществляется с помощью .
Для большинства коротких программ было определена процедура выполнения
отдельных команд.
Порядок выполнения отчета по лабораторной работе:
1.
Цель и наименование работы:
2.
Перечень команд передачи данных;
3.
Исследуемые программы с комментариями:
4.
Заполненные таблицы результатов исследования программ:
5.
Графическое представление выполнения команд
- 54 -
6.
Ответы на контрольные вопросы:
7.
Анализа результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
Лабораторная работа № 3.
Запись и выполнение простых программ
Учебные цели: исследование выполнения отдельных команд и простых
программ микропроцессором; использование различных методов адресации в
программах; запись программ.
Учебные задачи:
1. Исследование выполнения отдельных команд и простых программ
микропроцессором; использование различных методов адресации в программах;
запись программ.
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы,
используя программное моделирование.
Оборудование: ПК IBM/PC или совместимый с программным эмулятором
КР580.
Порядок выполнения работы.
Задание №1.
Программа 2.1.
LXI HL,0010
// записать число (адрес) 0010h в регистровую пару HL.
- 55 -
MOV A,M
// считать из ячейки памяти 0010h данные в A.
CMA
// инвертировать содержимое A.
INX HL
// инкрементировать HL – следующий адрес 0011h.
MOV M,A
// записать A в ячейку 0011h.
HLT
// Останов.
1.2. По адресу 0010h находится число 50h. (00h)
1.3. После выполнения программы в ячейке по адресу 0011h – число AFh.
(FFh)
Таблица 1
Содержимое регистров после выполнения каждой команды программы 1.1
Регистры Шаг программы (команда, после которой анализируется содержимое
МП
регистров)
0 шаг
1шаг
2 шаг
3шаг
4 шаг
5 шаг
6 шаг
(начало)
LXI H
MOV A,M
CMA
INX HL
MOV M,A
HLT
A
00
00
50h
AFh
AFh
AFh
AFh
FL
-
-
-
S,P
-
-
-
H
00
00
00
00
00
00
00
L
00
10
10
10
11
11
11
M1=0010
50h
50h
50h
50h
50h
50h
50h
M2=0011
00
00
00
00
00
AFh
AFh
Задание №2.
Программа 2.2. – нахождение максимального числа.
2.1. В ячейках памяти помещены числа: в 0010h – 10h, а в 0011h – 01h.
2.2. После выполнения программы в регистре B число 10h.
- 56 -
Задание №3.
Программа2.3. – сложение двух чисел.
Слагаемые находятся в ячейках памяти 0010h и 0011, и имеют значение 15h и
01h соответственно. Результат находится в ячейке 0012h и после выполнения
программы имеет числовое значение 16h.
Таблица 2
№
Коман
A
FL
HL
да
1
lxi hl
М1/да
М2/да
М3/да
нные
нные
нные
ВС
0
-
0010
15h
00
00
0000
0
-
0010
15h
01h
00
0011
0010
2
lxi bc,
0011
3
ldax bc
01h
-
0010
15h
01h
00
0011
4
add m
16h
-
0010
15h
01h
00
0011
5
inx bc
16h
-
0010
15h
01h
00
0012
6
stax bc
16h
-
0010
15h
01h
16h
0012
7
hlt
16h
-
0010
15h
01h
10h
0012
Задание №4.
Программа 2.4. – программа проверки равенства двух чисел.
Сравниваемые числа находятся в ячейках памяти по адресам 0010h и 0011h.
Если они равны 10h и 10h соответственно, то программа зацикливается, если
же в ячейках находятся неравные числа 10h и 1h, то программа проходит одну
итерацию и в регистре B появляется число 11h.
Задание №5.
Программа 2.5. – программа копирования массивов данных.
В результате выполнения программы были копированы 10 байтов начиная с
нуля в ячейки начиная с адреса 0010h.
- 57 -
Задание №6.
LDA 0010h
MOV B,A
LDA 0011h
MOV C,A
LDA 0012h
MOV D,A
LDA 0013h
MOV E,A
HLT
Программа 3.6. 0010h – 00h, D – FFh.
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ для исследования на языке
ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и
комментарии; за каждой программой следует по крайней мере один пример ее
использования.
При
исследовании
программ
была
получена
следующая
информация: назначение программы, процедуру ее выполнения, используемые
регистры, размер памяти, необходимый для программы и ее данных, а также
специальные случаи, входные и выходные условия.
- 58 -
Разработанные
программы
позволили
использовать,
исследовать
и
анализировать команды с различными способами адресации. Используя различные
способы адресации можно получить более эффективное исполнение программы.
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №4
Исследование программ ввода вывода
Учебные цели: Исследование методов подключения и организации обмена
информацией с простейшими устройствами ввода – вывода.
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами
программной эмуляции и на аппаратных макетах;
- 59 -
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального
времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.
Используя
программу
эмулятора
микропроцессорной
системы
исследовать систему команд микропроцессора КР580ВМ80 и программы типовых
функций управления;
3.
Для ввода данных используется порт с адресом 80, а для вывода – с
адресом 90;
4.
Практическое использование нового программного продукта.
Обеспеченность занятия:
Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры.
Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования
микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и
вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А,
КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- 60 -
- Программирование микропроцессорных систем: Учеб. пособие для вузов
/Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
Технические средства обучения:
- Персональный компьютер;
- Принтер.
16.
Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
17.
Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
18.
Рабочая тетрадь в клетку
19.
Ручка.
20.
Карандаш простой.
21.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
К командам ввода – вывода КР580ВМ80 относится команды IN <A> и OUT
<A>. При выполнении команды IN <A> микро – ЭВМ считывает число из входного
- 61 -
устройства с адресом <A> микро – ЭВМ записывает число из аккумулятора в
выходное устройство с адресом <A>. Так как адрес устройства указывается в одном
байте, то с помощью этих команд микро – ЭВМ может обмениваться информацией
не более чем 256 внешними устройствами.
В качестве простейших устройств ввода – вывода могут использоваться
восьми разрядные регистры.
Вопросы для закрепления теоретического материала к лабораторной
работе:
1.
С какими регистрами микропроцессора могут оперировать команды
IN, OUT?
2.
Почему после выполнения команды ввода данных нельзя использовать
команду условного перехода?
3.
С помощью каких машинных циклов выполняется команда IN?
4.
С помощью каких машинных циклов выполняется команда OUT?
5.
Сколько состояний требуется для выполнения команд IN и OUT.
6.
Какие действия выполняет микропроцессор в каждом такте при
выполнении команд IN и OUT?
Задания для лабораторного занятия:
Задание №1:
1.
Изучить способы организации обмена информацией между микро –
ЭВМ и ВУ;
2.
Исследовать программу П3.1
Задание №2:
1. Выполнить программу П3.1 в пошаговом режиме. Информация после
выполнения каждого шага отображается на экране. Заполнить таблицу 1
- 62 -
2. Изобразить временные диаграммы команды IN 80.. Пояснить, какими
действиями выполняется МП в каждом машинном цикле.
Задание №3:
1.Разработать
программу
поочередного
включения
1-3-5-7
разрядов
светодиодов входного устройства. Информация должна поступать из регистра С.
Листинги программ находятся в тексте описания лабораторной работы.
Внимание: Количество выполняемых заданий назначает преподаватель
Инструкции по выполнению работы
Задание №1:
3.
Изучить способы организации обмена информацией между микро –
ЭВМ и ВУ.
4.
Ввести в микро – ЭВМ программу П3.1. Осуществить её пуск.
5.
Убедиться, что при выполнении программы микро – ЭВМ постоянно
переписывает данные с входного регистра на выходное. Для этого с помощь клавиш
1…8 измените значение входного устройства.
После запуска приведенной выше программы микропроцессор циклически
читает содержимое входного устройства и выводит его в выходное устройство, т.е.
любое изменение переключателей входного устройства будет индицироваться
состоянием светодиодов выходного устройства. Таким образом, при выполнении
этой программы две линейки светодиодов (входного и выходного устройства) будут
иметь одинаковое количество светящихся и погашенных светодиодов.
Задание №2:
3. Выполнить
программу
в
пошаговом
выполнения каждого шага отображается на экране.
- 63 -
режиме.
Информация
после
4. Изобразить временные диаграммы IN 80, OUT 90. Пояснить, какими
действиями выполняется МП в каждом машинном цикле.
Задание №3:
2. Разработать
программу
поочередного
включения
1-3-5-7
разрядов
светодиодов входного устройства. Информация должна поступать из регистра С.
3. Произвести ввод и отладку программы.
Порядок выполнения отчета по лабораторной работе
1. Наименование и цель работы
2. Программа П3.1
3. Временные диаграммы команд IN 80
4. Разработать программу включения светодиодов.
5. Ответы на контрольные вопросы
6. Вывод поясняющий принцип программного ввода – вывода информации.
Программа П3.1
start:in 80
считать число из порта 80 в аккумулятор
out 90
записать значение аккумулятора в порт 90
jmp start
идти на start
Методика анализа результатов, полученных в ходе лабораторной работы
Программный раздел содержит наборы программ ввода-вывода информации
для исследования на языке ассемблера для микропроцессоров 8080.Каждой
программе предпосланы введение и комментарии; за каждой программой следует по
крайней мере один пример ее использования. При исследовании программ была
получена
следующая информация: назначение программы, процедуру ее
- 64 -
выполнения, используемые регистры, размер памяти, необходимый для программы
и ее данных, входные и выходные условия.
В качестве устройства управления использовался восьмиразрядный порт
Во всех программах был использован следующий метод передачи параметров:
Первый 8-разрядный параметр передается в аккумуляторе, второй 8разрядный параметр- регистре В, а третий- в регистре С.
Первый 16-разрядный параметр передается в регистрах Н и L, при этом
старший байт- в регистре Н. Второй 16-разрядный параметр передается в регистрах
D и Е со старшим байтом в D.
Большее число параметров передается
прямо или косвенно. Вход в
программу осуществляется с помощью .
Для большинства коротких программ было определена процедура выполнения
отдельных команд.
Порядок выполнения отчета по лабораторной работе:
1.
Цель и наименование работы:
2.
Перечень команд передачи данных;
3.
Исследуемые программы с комментариями:
4.
Заполненные таблицы результатов исследования программ:
5.
Графическое представление выполнения команд
6.
Ответы на контрольные вопросы:
7.
Анализа результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
Лабораторная работа № 4.
Исследование программ ввода вывода
Учебные цели: Исследование методов подключения и организации обмена
информацией с простейшими устройствами ввода – вывода.
- 65 -
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
операций ввода-вывода микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
Задание №1.
Программа 3.1.
– создание моста между портами 80 и 90 (копирование
данных из 80-го порта в 90-й).
START: IN 80 // копирование данных из порта 90 в аккумулятор.
OUT 90
// копирование данных из аккумулятора в порт 80.
JMP START
// безусловный переход по метке (в начало программы).
HLT
// Останов (хотя он в принципе лишний и его можно не
использовать).
Поступившие в порт данные:
49
10
80
49
10
80
49
10
80
Данные в аккумуляторе:
После выполнения одной
итерации:
Задание №2.
1. Выполнить программу П3.1 в пошаговом режиме. Информация после
выполнения каждого шага отображается на экране. Заполнить таблицу 1
- 66 -
2. Изобразить временные диаграммы команды IN 80.. Пояснить, какими
действиями выполняется МП в каждом машинном цикле.
Таблица 1
Содержимое регистров после выполнения каждой команды программы 3.1
Регистры
МП
Шаг программы (команда, после которой анализируется
содержимое регистров)
0 шаг
1шаг
2 шаг
3шаг
4 шаг
(начало)
IN 80
OUT 90
JMP START
HLT
A
00
49h
49h
49h
-
FL
-
-
-
-
-
Порт 80
00
49h
49h
49h
-
Порт 90
00
00
49h
49h
-
Пример выполнения команды ввода IN.
Команда имеет 2 слова, выполняется за 3 машинных цикла.
Цикл команды IN
М1
Т1
Т2
Т3
М2
Т4
Т1
Т2
М3
Т3
Т1
Т2
Т3
В цикле М1 происходит считывание кода команды.

В такте Т1 счетчик адреса (команд) выдаёт на шину адреса код ячейки
памяти, содержащей первое слово команды.

В такте Т2 анализируется сигнал готовности внешнего устройства. Если
устройство не готово, то процессор переходит в режим ожидания.

В такте Т3 происходит запись данных в регистр кода команды (РК).
- 67 -
В такте Т4 дешифратор расшифровывает код команды и определяет

последовательность
её
исполнения.
В цикле М2 происходит считывание адреса внешнего устройства из второго
слова команды.

В такте Т1 адрес следующего слова подаётся на шину адреса.

В такте Т2 и Т3 содержимое второго слова записывается в регистр
адреса.
В цикле М3 записывается информация из внешнего устройства.
В такте Т1 на шине адреса выставляется код внешнего устройства из

регистра адреса.
В такте Т2 анализируется сигнал готовности внешнего устройства. Если

устройство не готово, то процессор переходит в режим ожидания.
В такте Т3 происходит запись из шины данных в аккумулятор.
Задание №3.
Разработать программу каждого включения 1-3-5-7 разрядов
светодиодов выходного устройства. Информация должна поступать из регистра C.
Программа 3.2
MVI C,02h
MOV A,C
RET_:
OUT 90
RAL
RAL
JMP RET_
HLT
Ответы на контрольные вопросы:
1.
- 68 -
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы
программ
ввода – вывода для
исследования на языке ассемблера для микропроцессоров 8080.Каждой программе
предпосланы введение и комментарии; за каждой программой следует по крайней
мере один пример ее использования. При исследовании программ была получена
следующая информация: назначение программы, процедуру ее выполнения,
используемые регистры, размер памяти, необходимый для программы и ее данных, а
также специальные случаи, входные и выходные условия.
Разработанные
программы
позволили
использовать,
исследовать
и
анализировать команды обращения к портам микропроцессорной системы
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №5
Маскирование данных и организация условных переходов
Учебные
цели:
Исследование
методов
программных
способов
маскирования данных и
организация условных переходов в микропроцессорных системах
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
- 69 -
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами
программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального
времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.
Используя
программу
эмулятора
микропроцессорной
системы
исследовать систему команд микропроцессора КР580ВМ80 и программы типовых
функций управления;
2.
Для ввода данных используется порт с адресом 80, а для вывода – с
адресом 90;
3.
Практическое использование нового программного продукта.
Обеспеченность занятия:
1. Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры.
Учебное пособие. М.,ДЕСС, 2007г,319 с.
- 70 -
- Майоров В.Г., Гаврилов А.И. Практический курс программирования
микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и
вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А,
КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов
/Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
2. Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
3.Технические средства обучения:
- Персональный компьютер;
- Принтер.
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
7. Ручка.
8. Карандаш простой.
9. Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
- 71 -
В различных ситуациях при выполнении программ необходимо проверять или
изменять (маскировать) состояние одного или нескольких разрядов числа в
аккумуляторе. Это можно осуществить с помощью следующих операций:

Логическое умножение числа в аккумуляторе и маски – очищает разряд
числа (устанавливает в 0), если в соответствующем разряде маски будет записан 0, и
не изменяет его, если в этом разряде маски записана 1;

Логическое сложение числа в аккумуляторе и маски – устанавливает
разряд числа в 1, если в соответствующем разряде маски будет записана 1, и не
изменяет его, если в этом разряде маски записан 0;

Логическое "исключающее ИЛИ" числа в аккумуляторе и маски –
инвертирует содержание разряда числа, если в соответствующем разряде маски
будет записана 1, и не изменяет его, если в этом разряде маски записан 0.

Примеры
использования
операций
маскирования
содержимого
аккумулятора в случае, если маска находится в регистре, приведены в Табл. 1. В
этом случае команды однобайтные. Маскирование содержимого аккумулятора
возможно также байтом данных (ANI D8, ORI D8 и XRI D8). В этом случае маска
содержится в байте данных, а команды являются двухбайтными. При выполнении
логических операций (И, ИЛИ, "исключающее ИЛИ" и НЕ) задействуются разряды
Z, S, P, AC регистра признаков (С = 0). Это позволяет проверять состояние любого
разряда числа и выполнять условные переходы в программах.
Примеры использования операций маскирования.
Таблица 1
М
н
е
м
о
к
Число в
аккумулят
оре
Результа
Маска в
тв
Комментари
D
аккумуля
й
торе
о
д
A
00111010
10101100
00101000
Логическое
N
11111111
00100010
00100010
умножение
- 72 -
A
00001111
11111111
00001111
(И)
D
11110000
11111111
11110000
содержимого
00100011
00000000
00000000
Акк. с
байтом D.
O
00111010
10101100
10111110
Логическое
R
00001111
00001111
00001111
сложение
A
11110000
00001111
11111111
(ИЛИ)
содержимого
D
Акк. с
байтом. D.
X
00111100
10101100
10010110
Логическое
R
00001111
00001111
00000000
"исключающ
A
11110000
00001111
11111111
ее ИЛИ"
содержимого
D
Акк. с
байтом D.
Организация условных переходов в МПС на МП КР580ВМ80 осуществляется
с помощью регистра признаков МП БИС.
Регистр признаков имеет пять разрядов, каждый из которых устанавливается
по определённому правилу в соответствии с выполнением МП БИС последней
команды. Этими разрядами являются:
1. Разряд переноса С – СARRY. В него записывается «1», если при
выполнении арифметической операции было переполнение аккумулятора, в
противном случае в разряд записывается «0».
2. Разряд знака S – SIGN. В него записывается «1», если при выполнении
арифметической или логической операции в старшем седьмом бите аккумулятора
записана «1», в противном случае в разряд записывается «0».
3. Разряд первого результата Z – ZERO. В него записывается «1», если при
выполнении
арифметической
или логической
операции
аккумулятора «0», в противном случае разряд записывается «0».
- 73 -
во
всех
разрядах
4. Дополнительный разряд переполнения AC – AUX.CARRY. В него
записывается «1», если при выполнении команд в аккумуляторе возникает единица
переноса из третьего разряда числа.
5. Разряд четности P – PARITY. В него записывается «1», если при
выполнении команды количество единиц в разрядах аккумулятора будет четным.
Во многих случаях при выполнении программ необходимо проверять или
изменять (маскировать) состояние одного или нескольких разрядов числа в
аккумуляторе. Это можно осуществить с помощью следующих логических
операций.
1.
Логического умножения числа в аккумуляторе и маки, которая очищает
разряд числа, если в соответствующем разряде макси будет записан «0», и не
изменяет его, если в этом разряде записана «1»;
2.
Логического сложения чисел в аккумуляторе и маски, которое
устанавливает разряд числа «1», если в таком же разряде маски будет записан «0»;
3.
Логического исключающего или числа в аккумуляторе и маски, которое
инвертирует содержимое разряда числа, если в соответствующем разряде маски
записана «1», и не имеют его, если в этом разряде записано «0».
Проведение
логических
операций
возможно
также
с
содержимым
аккумулятора и внутренними регистрами микро – ЭВМ. В этом случае команды
однобайтные. При выполнении всех логических команд задействуются разряды
Z,S,CY,P,AC регистра признаков (в разряд С записывается 0). Это позволяет
проверить состояние любого разряда числа и выполнить условные переходы в
программах.
Условные переходы организуются в программах с помощью команд условных
переходов. При выполнении этих команд микро – ЭВМ проверяет состояние
соответствующего разряда регистра состояния. Если при проверке состояния
разреза регистра состояния условия не подтверждаются, то выполняется следующая
по порядку команда программы.
- 74 -
Таким образом, команды условных переходов позволяют строить ветвящиеся
алгоритмы и в зависимости от текущего значения результата выполнения
программы переходить на различные участки программы.
Вопросы для закрепления теоретического материала к лабораторной
работе
1.В чем состоит различие между командами условного перехода?
2.Во всех командах условного перехода, используемых микропроцессором,
применяется прямая адресация. Что это значит?
1.
В чем заключается различие между выполнением команд безусловного
и условного переходов?
2.
Какой
из
нижеперечисленных
команд
эквивалентна
команда
команд
эквивалентна
команда
ПЕРЕХОД, ЕСЛИ РАВНО:
- ПЕРЕХОД, ЕСЛИ ПЕРЕНОС;
- ПЕРЕХОД, ЕСЛИ ПЛЮС;
- ПЕРЕХОД, ЕСЛИ НЕ МИНУС;
- ПЕРЕХОД, ЕСЛИ НУЛЬ?
3.
Какой
из
нижеперечисленных
ПЕРЕХОД, ЕСЛИ НЕ МИНУС:
- ПЕРЕХОД, ЕСЛИ ПЕРЕНОС;
- ПЕРЕХОД, ЕСЛИ ПЛЮС;
- ПЕРЕХОД, ЕСЛИ МИНУС;
- ПЕРЕХОД, ЕСЛИ НУЛЬ?
Задания для лабораторной работы:
Задание №1: Исследование программы 4.1
1.
Выяснить, какая информация появляется в разряде Z регистра
признаков, после выполнения программы.
- 75 -
Задание №2:
1.
Видоизменить программу П4.1 так, чтобы микропроцессорная система
реагировала на «0» в третьем разряде при записанных единицах во всех остальных
разрядах.
Задание №3: исследование программы 4.2
1.Загрузить и исследовать программу П4.2
Инструкция по выполнению лабораторной работы
При
составление
программ
цифровых
систем
управления
возникает
необходимость формирования условных переходов в зависимости от значения
одного или нескольких бит результата операции. Микропроцессор может выполнять
только операции в целом над однобайтовыми числами, поэтому для анализа
состояния отдельных бит применяют специальные приемы программирования. С
помощью логических операций устанавливают состояние всех бит, кроме
требующих анализа, в заранее известное состояние. Так, если требуется анализ
старшего бита числа, возможно использование операции логического И этого числа
с числом 80h:
* * * * * * * * – анализируемое число
1 0 0 0 0 0 0 0 – второй операнд (маска).
В этом случае результат логической операции даст результат с известными
битами во всех разрядах числа, равными логическому 0, кроме D7: * 0 0 0 0 0 0 0.
Дальнейший анализ на нулевое значение результата дает возможность ответить на
вопрос, чему равен старший бит анализируемого числа. При равенстве результата
нулю бит D7 = 0. Аналогично, изменяя маску логической операции, можно
проанализировать любой бит (а также несколько бит), например маской 00010000
анализируется состояние бита D4 числа, маской 00000001 – состояние бита D0 и т.д.
- 76 -
Задание №1:
1.Загрузить программу П4.1
2.Осуществить пуск программы. Убедиться, что при её выполнении микро – ЭВМ
реагирует лишь на те числа во входном устройстве, которые содержат «1» в пятом
разряде. Выяснить, какая информация появляется в разряде Z регистра признаков,
после выполнения программы.
Программа П4.1
wait:in 80
получить число из порта 80
ani 20
проверить состояние пятого разряда числа
jz wait
если 5 разряд 0, то идти на wait
Задание №2:
1.Видоизменить программу П5.1 так, чтобы микро – ЭВМ реагировала на «0» в
третьем разряде при записанных единицах во всех остальных разрядах.
Задание №3:
1.Загрузить программу П4.2
2.Осуществить пуск программы. Убедиться, что при наличии «1» лишь во
втором разряде числа входного устройства светодиоды выходного регистра
включены в микро – ЭВМ работает в цикле WAIT2 ожидания появления единицы в
пятом разряде числа. Записать «0» во второй разряд входного устройства и
убедиться, что светодиоды выходного устройства отключаются и микро – ЭВМ
находится при выполнении цикла WAIT1 программы; установить «1» одновременно
во втором и пятом разряде числа во входном устройстве и проверить, что микро –
ЭВМ последовательно выполняет оба цикла программы.
Программа П4.2
wait1:in 80 получить число из порта 80
ani 04
включен ли 2 разряд?
- 77 -
jz wait 1
если нет, идти на wait1
mvi a,11
иначе зачет светодиоды выходного
out 90
регистра 90
wait2:in 80 получить число из порта 80
включен ли 5 разряд?
ani 20
jz wait2
если нет, идти на wait2, иначе
mvi a,0
погасить светодиоды выходного
out 90
регистра 90
jmp wait1
повторить программу
Методика анализа результатов, полученных по лабораторной работе
Команда условного перехода проверяет состояние соответствующего разряда
регистра признаков (F). Если при проверке состояния разряда регистра признаков
условие не подтверждается, то выполняется следующая по порядку команда
программы, иначе происходит переход.
Программа 4.1 осуществляет ожидание простого (двоичного) события и при
возникновении этого события формирует простое (двоичное) управление. В
программе каждый бит порта с адресом 03h ассоциируется с некоторым событием
от внешнего устройства, например, соответствует состоянию некоторого концевого
переключателя технологического процесса. Таким образом, в технологическом
процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в
технологическом процессе задействованы 8 исполнительных механизмов с
номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное
состояние (0 или 1).
Порядок выполнения отчета по лабораторной работе
1.Наименование и цель работы
2.Понятие
и
назначения
использования
программировании команд управления
- 78 -
маскирования
данных
при
3..Исследуемые программы.
4.Результаты исследования.
5.Ответы на контрольные вопросы
6.Анализ результатов полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №5
Маскирование данных и организация условных переходов
Учебные
цели:
Исследование
методов
программных
способов
маскирования данных и
организация условных переходов в микропроцессорных системах
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
Понятие и назначения использования маскирования данных при
программировании команд управления
В различных ситуациях при выполнении программ необходимо проверять или
изменять (маскировать) состояние одного или нескольких разрядов числа в
аккумуляторе. Это можно осуществить с помощью следующих операций:
- 79 -

Логическое умножение числа в аккумуляторе и маски – очищает разряд
числа (устанавливает в 0), если в соответствующем разряде маски будет записан 0, и
не изменяет его, если в этом разряде маски записана 1;

Логическое сложение числа в аккумуляторе и маски – устанавливает
разряд числа в 1, если в соответствующем разряде маски будет записана 1, и не
изменяет его, если в этом разряде маски записан 0;

Логическое "исключающее ИЛИ" числа в аккумуляторе и маски –
инвертирует содержание разряда числа, если в соответствующем разряде маски
будет записана 1, и не изменяет его, если в этом разряде маски записан 0.
Организация условных переходов в МПС на МП КР580ВМ80 осуществляется
с помощью регистра признаков МП БИС.
Регистр признаков имеет пять разрядов, каждый из которых устанавливается
по определённому правилу в соответствии с выполнением МП БИС последней
команды. Этими разрядами являются:
1. Разряд переноса С – СARRY. В него записывается «1», если при
выполнении арифметической операции было переполнение аккумулятора, в
противном случае в разряд записывается «0».
2. Разряд знака S – SIGN. В него записывается «1», если при выполнении
арифметической или логической операции в старшем седьмом бите аккумулятора
записана «1», в противном случае в разряд записывается «0».
3. Разряд первого результата Z – ZERO. В него записывается «1», если при
выполнении
арифметической
или логической
операции
во
всех
разрядах
аккумулятора «0», в противном случае разряд записывается «0».
4. Дополнительный разряд переполнения AC – AUX.CARRY. В него
записывается «1», если при выполнении команд в аккумуляторе возникает единица
переноса из третьего разряда числа.
5. Разряд четности P – PARITY. В него записывается «1», если при
выполнении команды количество единиц в разрядах аккумулятора будет четным.
- 80 -
Программа П4.1.
WAIT: IN 80
// Получит число из порта 80
ANI 20
// проверить состояние пятого разряда
JZ WAIT
// если 5-й разряд равен 0, то переход по метке WAIT.
HLT
// Останов.
При вводе 20h программа проходит одну итерацию.
При вводе любого числа, в 5-м разряде которого есть 1, то результат тот же.
При вводе любого другого числа программа зацикливается.
Выполнение лабораторной работы
Программа П4.2.
Wait1: IN 80
// Получить данные из порта 80
ANI 04
// проверить выставлен ли разряд 2
JZ Wait1
// если нет, то перейти на Wait1
MVI A,11h
// записываем в A число 11h
OUT 90
// Выводим это число в порт 90
Wait2: IN 80
// получить данные из порта 80
ANI 20
// проверить выставлен ли 5-й разряд
JZ Wait2
// если разряд не выставлен, то переходим на Wait2
MVI A,00h
// иначе записываем в A ноль и
OUT 90
// выводим данные в порт 90
JMP Wait1
// Переход в начало программы.
При вводе числа 04h в порту вывода получается число 11h, и программа
зацикливается.
При вводе числа 24h в порту вывода получается число 00h.
- 81 -
При вводе числа 20h в порту должно быть число 00h, но программа
зацикливается на проверке 2-го разряда.
При вводе чисел, не содержащих единиц в 2-м и 5-м разрядах программа
зацикливается.
WAIT: IN 80
// Получаем данные из порта 80
XRI 08h
// проверяем есть ли ноль в 3-м разряде
JNZ WAIT
// если нет, то переходим на Wait
HLT
// если же в 3-м разряде ноль, то Останов.
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ для исследования на языке
ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и
комментарии; за каждой программой следует по крайней мере один пример ее
использования.
При
исследовании
программ
была
получена
следующая
информация: назначение программы, процедуру ее выполнения, используемые
регистры, размер памяти, необходимый для программы и ее данных, а также
специальные случаи, входные и выходные условия.
Программа П4.1 осуществляет ожидание простого (двоичного) события и при
возникновении этого события формирует простое (двоичное) управление. В
программе каждый бит порта с адресом 03h ассоциируется с некоторым событием
от внешнего устройства, например, соответствует состоянию некоторого концевого
- 82 -
переключателя технологического процесса. Таким образом, в технологическом
процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в
технологическом процессе задействованы 8 исполнительных механизмов с
номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное
состояние (0 или 1). Каждому механизму соответствует свой бит порта с адресом
04h. Процессор принимает данные из портов 03h, 04h и выдает данные в порт 04h.
Программа ожидает включение концевого переключателя с номером 5 (остальные
переключатели могут при этом иметь произвольные состояния). В случае
достоверности данного события программа включает механизм с номером 4, в
противном случае она отключает этот механизм, если он не отключен. При этом
программа не должна изменять состояния остальных механизмов.
В программе 4.2 при наличии «1» лишь во втором разряде числа входного
устройства светодиоды выходного регистра включены в микро – ЭВМ работает в
цикле WAIT2 ожидания появления единицы в пятом разряде числа. Записать «0» во
второй разряд входного устройства и убедиться, что светодиоды выходного
устройства отключаются и микро – ЭВМ находится при выполнении цикла WAIT1
программы; установить «1» одновременно во втором и пятом разряде числа во
входном устройстве и проверить, что микро – ЭВМ последовательно выполняет оба
цикла программы.
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №6
Разработка и использование программ с подпрограммами
Учебные цели: Исследование особенностей записи подпрограмм и
обращения к подпрограммам на языке Ассемблер в микропроцессорных системах
;
Учебные задачи:
- 83 -
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами
программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального
времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.Используя программу эмулятора микропроцессорной системы исследовать
систему команд микропроцессора КР580ВМ80 и программы типовых функций
управления;
- 84 -
2.Практическое использование нового программного продукта.
Обеспеченность занятия:
1. Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры.
Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования
микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и
вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А,
КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов
/Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
2. Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
3.Технические средства обучения:
- Персональный компьютер;
- Принтер.
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
5. Лабораторное оборудование:
- 85 -
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
1. Ручка.
2. Карандаш простой.
3. Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
Память микропроцессорной системы на МП КР580ВМ80 может иметь не
более 65 536 однобайтных ячеек. Учитывая это, нужно стараться сделать программы
как можно короче. С этой целью, часть программы, которая повторяется, или
программа, которая часто используется, могут быть сделаны в виде подпрограммы –
последовательности команд, выполнение которых может быть вызвано из любого
места программы любое количество раз. Процесс передачи управления к
подпрограмме называется её вызовом. Данные адреса требуются для работы
подпрограммы,
называются
входными
параметрами.
Результаты
работы
подпрограммы передаваемые по окончанию её работы в основную программу,
называются выходными параметрами.
Для вызова подпрограммы и возврата из них используются команды CALL
<line> и RET. Команда CALL <line> загружает в регистр PC номер линии
подпрограммы, при этом микро – ЭВМ автоматически сохраняет в стеке адрес
основной программы, к которому она будет обращаться после выполнения
подпрограммы. Существуют также команды условного вызова подпрограммы и
возврата из них. Они позволяют вызвать подпрограмму и возвратится из неё по
определенному состоянию заданных разрядов регистра признаков (аналогично
командам условных переходов) без использования дополнительных команд.
- 86 -
Команды вызова подпрограммы и возврата из них используют стек и внутренний
регистр для адресации к стеку.
На Рис. 1 приведен алгоритм простой подпрограммы временной задержки.
Здесь общее время задержки вычисляется по формуле:
Td  t1  t 2  t3  t 4 N  t5 ,
где
N
– число, первоначально записанное в счетчик. В качестве счетчика
использован регистр B, в котором записывается число из регистра C. Команда NOP
нужна для увеличения времени выполнения цикла, а, следовательно, и общей
t1
Записать число N из регистра C в регистр B
t2
Нет операции
t3
Изменение содержимого B на 1
t4
B=0?
t5
Выход из подпрограммы
нет
задержки. Повтором необходимого числа команд NOP можно корректировать
минимальную временную задержку. Величины
входят. Минимальная задержка задается при
t1
N  1,
и
t5
фиксированы и в цикл не
а максимальная при
N  255 .
Рис. 1 Алгоритм подпрограммы временной задержки
Вопросы для закрепления теоретического материала к лабораторной
работе:
1.
В чем заключается основное различие между командами перехода и
командами вызова подпрограмм?
2.
Какая из нижеперечисленных проверок осуществляется при обращении
к подпрограмме с помощью команды условного вызова:
- 87 -
- равенства 0 всех разрядов аккумулятора;
-
достижения
содержимым
регистра
определенного
значения
после
отрицательного приращения;
- значение разрядов регистра состояния;
- содержимого регистра команд?
3. Какое из нижеперечисленных действий выполняется при вызове одной
подпрограммы из другой подпрограммы:
- команда JNE;
- вложение подпрограмм;
- ветвление программы;
- проверка условий?
4.Какое из приведенных ниже действий осуществляется с помощью команды
ВОЗВРАТ ИЗ ПОДПРОГРАММЫ:
- загрузка данных в стек;
- извлечение данных из стека;
- начальная установка стека;
- нарушение работы стека?
Задания для лабораторного занятия:
Задание №1: Исследование программы 5.1
1.Записать программу 5.1 в память эмулятора
Задание №2: Исследований программы 5.3
1.Записать полный текст программы 5.3 для генерации звуковых сигналов с
учетом программ 5.1 и 5.2
Задание №3: Исследование программы П5.4
1.Ввести программ П5.4 в память эмулятора
- 88 -
Задание №4: Исследование программы 5.5
1.Записать программу 6.5 в память эмулятора.
Листинги программ находятся в тексте описания лабораторной работы.
Внимание: Количество выполняемых заданий назначает преподаватель
Инструкции по выполнению работы
Задание №1: Исследование программы 5.1
1.
Записать программу 5.1 в память микро – ЭВМ
2.
Вычислить время выполнения программы с выполнением цикла один
раз. Вычислить число в регистре С для получения задержки 0,5 сек.
2.
Используя
программу
5.1
как
подпрограмму
включить
её
в
разработанную программу по включению светодиодов порта вывода в порядке 1-35-7 (программа 3.2. ЛР №4)
3.
Убедиться в том, что светодиоды 1-3-5-7 включаются по очереди на
время 0,5.
Подпрограмма №5.1:
mov b,c
записать число из регистра С в регистр В
dly:nop
нет операции
dcr b
уменьшить содержимое В на 1
пока в регистре В не 0 идти на dly
jnz dly
hlt
все
Задание №2: Исследование программы 5.3
- 89 -
1.Записать полный текст программы 5.3 для генерации звуковых сигналов с
учетом программ 5.1 и 5.2
2.Ввести в микро – ЭВМ программу. Установить на входном устройстве число
00. Произвести пуск программы и проследить за изменением тона звука,
увеличивается число, записанное во входное устройство.
Подпрограмма №5.2:
jmp main
записать число из регистра С в регистр В
delay:mov b,c
dly:nop
нет операции
dcr b
уменьшить содержимое В на 1
пока в регистре В не 0 идти на dly
jnz dly
ret
все
main:xra a
очистить аккумулятор
записать 00 в выходное устройство
out 60
call delay
вызвать подпрограмму задержки
cma
записать код FF в регистр А
записать код FF в выходное устройство
out 60
call delay
вызвать подпрограмму задержки
hit
все
Программа №5.3:
jmp main
delay:mov b,c
записать число из регистра С в регистр В
dly:nop
нет операции
dcr b
уменьшить содержимое В на 1
jnz dly
пока в регистре В не 0 идти на dly
ret
возврат из подпрограммы
bpp:xra a
очистить аккумулятор
out 60
записать 00 в выходное устройство
- 90 -
call delay
вызвать подпрограмму задержки
cma
записать код FF в регистр А
записать код FF в выходное устройство
out 60
call delay
вызвать подпрограмму задержки
ret
возврат из подпрограммы
main:in 80
прочитать число из входного регистра в аккумулятор
mov c,a
записать число в регистр С
call bpp
вызвать подпрограмму BPP
jmp main
продолжать
Задание №3: Исследование программы П5.4
1.Ввести программ П5.4 в память эмулятора
2.Установить на выходном устройстве переключатели соответственно числу
11. Осуществить пуск программы. Убедиться, что МПС будет находиться в режиме
ожидания появления 0 в любом разряде входного устройства.
3.Установить 0 с помощью переключателей в любом из разрядов входного
устройства. Проверить содержимое всех регистров МП после окончания программы.
Осуществить повторный пуск программы при наличии нулей в двух разрядах
входного устройства. Какое число будет записано в регистре В после окончания
выполнения программы?
Программа №5.4:
lxi sp,0bb0
записать в SP адрес стека
m1:in 80
получить число из входного устройства
cri ff
содержит ли какой-нибудь разряд 0?
jz m1
если нет, то ждать
call m2
если да, то вызвать подпрограмму определения разряда
hit
останов
m2:mvi b,ff
m3:inr b
увеличить содержимое В
- 91 -
rrc
сдвиг вправо
jc m3
если CY=1, то продолжать
ret
возврат из подпрограммы
Задание №4: Исследование программы 5.5
1.
Записать программу 5.5 в память эмулятора
2.
Убедиться, что программа осуществляет временную задержку на 10 сек.
Программа №5.5:
push bc
записать в стек содержимое регистра ВС
lxi bc,1218
занести в регистр ВС время задержки
call cnt
обращение к подпрограмме
jmp done
перейти в конец программы
cnt:dcx bc
декремент содержимого ВС
jnz cnt
если ВС0, идти на cnt
ret
иначе возврат из подпрограммы
done:pop bc
восстановить содержимое ВС
hlt
останов программы
Методика анализа результатов, полученных по лабораторной работе
Команда условного перехода проверяет состояние соответствующего разряда
регистра признаков (F). Если при проверке состояния разряда регистра признаков
условие не подтверждается, то выполняется следующая по порядку команда
программы, иначе происходит переход.
Программа 4.1 осуществляет ожидание простого (двоичного) события и при
возникновении этого события формирует простое (двоичное) управление. В
программе каждый бит порта с адресом 03h ассоциируется с некоторым событием
- 92 -
от внешнего устройства, например, соответствует состоянию некоторого концевого
переключателя технологического процесса. Таким образом, в технологическом
процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в
технологическом процессе задействованы 8 исполнительных механизмов с
номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное
состояние (0 или 1).
Порядок выполнения отчета по лабораторной работе
1.
Наименование и цель работы
2.
Программы временных задержек.
3.
Рассчитанные числа для задержки на 0.5, 1 и 10 сек.
4.
Программу 5.4 с пояснением содержимого регистра В.
5.
Ответы на контрольные вопросы
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №6
Разработка и использование программ с подпрограммами
Учебные цели: Исследование особенностей записи подпрограмм и
обращения к подпрограммам на языке Ассемблер в микропроцессорных системах
;
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
Выполнение работы
- 93 -
Задание №1:
Программа 5.1.
MOV B,C
// Переслать данные из регистра C в регистр B. (тактов 5).
DLY: NOP
// пустая операция.
(тактов 4).
DCR B
// декрементировать B.
(тактов 5).
JNZ DLY
// если B не ноль, то переход по метке.
(тактов 10-если
переход, 4-если не переход).
HLT
// Останов.
(тактов 7).
Эту программу можно условно разделить на несколько частей: команды
которые повторяются только один раз, команды которые могут повторяться много
раз. Каждая команда выполняется за определённое количество тактов, причём
команда условного перехода JNZ
DLY выполняется за 10 тактов если условие
верно и осуществляется переход, и за 7 тактов – если условие не выполнено. Можно
составить уравнение по подсчету нужного количества итераций цикла этой
программы, оно имеет вид:
S = 5 + n·(4+5) + (n-1)·10 + 4 + 7,
где S – общее число тактов на выполнение программы, n – число итераций цикла.
Что бы найти количество итераций цикла для обеспечения нужного числа тактов
программы, а следовательно задержки нужно формулу преобразовать:
Td  t1  t 2  t3  t 4 N  t5 ,
С учётом того, что один такт равен 0,5·10-3 , чтобы получить задержку в 0,5
сек., подставляем в формулу значение S и получаем количество итераций цикла
равным 52 в десятичной системе счисления, необходимо перевести это число в
шестнадцатеричную систему счисления для того что бы процессор мог их корректно
обработать. Оно равно 34h. Это число нужно записать в регистр C до начала
выполнения программы.
- 94 -
Задание №2:
MVI A,02h
RET_:
OUT 90
RAL
RAL
CALL WAT_
JMP RET_
HLT
WAIT_:
MOV B,C
DLY:
NOP
DCR B
JNZ DLY
RET
HLT
Программа №5.4:
lxi sp,0bb0
записать в SP адрес стека
m1:in 80
получить число из входного устройства
cri ff
содержит ли какой-нибудь разряд 0?
jz m1
если нет, то ждать
call m2
если да, то вызвать подпрограмму определения разряда
hit
останов
m2:mvi b,ff
m3:inr b
увеличить содержимое В
rrc
сдвиг вправо
jc m3
если CY=1, то продолжать
- 95 -
ret
возврат из подпрограммы
При наличии на входном устройстве числа FFh программа зацикливается на
первой итерации.
При наличии одной единицы программа выполняется и в конце программы в
регистре B остаётся число – номер первого разряда с нулём слева на право.
При наличии большего числа нулей в регистре B получается номер разряда самого
левого из нулей.
Задание №3:
Программа №5.5:
push bc
записать в стек содержимое регистра ВС
lxi bc,1218
занести в регистр ВС время задержки
call cnt
обращение к подпрограмме
jmp done
перейти в конец программы
cnt:dcx bc
декремент содержимого ВС
jnz cnt
если ВС0, идти на cnt
ret
иначе возврат из подпрограммы
done:pop bc
восстановить содержимое ВС
hlt
останов программы
На опыте оказалось, что программа выполняется за 6 секунд, что на 4 секунды
быстрее указанного времени.
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
- 96 -
Программный раздел содержит наборы программ для исследования на языке
ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и
комментарии; за каждой программой следует по крайней мере один пример ее
использования.
При
исследовании
программ
была
получена
следующая
информация: назначение программы, процедуру ее выполнения, используемые
регистры, размер памяти, необходимый для программы и ее данных, а также
специальные случаи, входные и выходные условия.
Программа 5.1 реализует алгоритм программной задержки, где
один байт: регистр С Для получения требуемой
поэтому величина
N Tdможет
 t1  t 2 варьироваться
 t3  t 4 N  t5 ,
N
занимает
задержки организован цикл,
от 00h до FFh (т. е. от 0 до 256),
для
вычисления временной задержки здесь может быть использована
Для получения задержки 0,5 сек в регистр С необходимо записать число 34h.
Программа 5.2 реализует алгоритм программной задержки, где
N
занимает
два байта: В и С. Для увеличения времени задержки организовано два цикла (цикл в
цикле), поэтому величина
N
может варьироваться от 0000h до FFFFh (т. е. от 0 до
65535), однако, для вычисления временной задержки здесь должна использоваться
гораздо более сложная формула.
Число записанное в регистровой паре, рассчитанное по формуле, ВС =1218
дало временную задержку 6 сек. Чтобы получить 10 сек нужно число увеличить.
Оно будет равно 1896
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №7
Разработка и исследование программ работы со стеком
Учебные цели: Исследование методов использования стека при создании
программ и подпрограмм.
- 97 -
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами
программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального
времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
- 98 -
1.Используя программу эмулятора микропроцессорной системы исследовать
систему команд микропроцессора КР580ВМ80 и программы типовых функций
управления;
2.Для ввода данных в стек используется участок ОЗУ с начальным адресом
1000h;
3.Практическое использование нового программного продукта.
Обеспеченность занятия:
1. Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры.
Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования
микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и
вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А,
КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов
/Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
2. Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
3.Технические средства обучения:
- Персональный компьютер;
- Принтер.
- 99 -
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
4. Ручка.
5. Карандаш простой.
6. Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
Подпрограммами
называют
модули
программ,
которые
могут
быть
использованы неоднократно, причем обращение к подпрограммам (вызов) может
быть осуществлен из любого места основной программы. При этом для запоминания
адреса возврата в основную программу используется область памяти ОЗУ,
организованная особым образом, получившую название стек. Его название
происходит от английского слова Stack, т.е. кипа, стопка (бумаг). Назначение стека в
том, чтобы сохранять текущее содержание всех регистров, если происходит
прерывание основной программы. Образно стек можно представить в виде записи
значений на отдельных листах бумаги и складывания их стопкой.
Извлечение из стека происходит всегда в обратном порядке, т.е. только с
верхушки стека. Иными словами, соблюдается принцип "последним вошел –
первым вышел" (по-английски Last In - First Out, сокращенно LIFO). В любой
момент времени в стек можно включить дополнительную информацию, но при
извлечении первой всегда будет та, которая включена последней.
- 100 -
Для работы со стеком необходимо загрузить его адрес в указатель стека (по
умолчанию, указатель стека SP уже настроен на конец памяти). Обычно это делается
одной из первых команд программы. Указатель стека загружается либо командой
LXI SP, <адрес стека>, либо командой SPHL. В последнем случае в указатель стека
загружается содержимое регистра HL.
Чаще всего стек используется явно для временного хранения текущего
содержимого регистров общего назначения. Поместить данные в стек можно
командой PUSH, а извлечь командой POP. Операнд команды указывает
наименование регистровой пары или PSW.
Нет никакой аппаратной зависимости между тем, откуда они впоследствии
загружаются. Например, можно поместить данные в стек из одной регистровой пары
и загрузить их в другую. Регистр признаков FL, входящий младшим байтом в состав
PSW, можно сохранить в стеке или явно переслать через стек в один из рабочих
регистров.
Специальная команда XTHL позволяет обменять содержимое регистра HL с
двумя байтами вершины стека. Значение указателя стека при этом не меняется.
Адрес верхушки стека в текущий версии эмулятора равен 1000h.
Вопросы для закрепления материала к лабораторной работе:
1. Почему непосредственно после выполнения команды загрузки в стек не
требуется использовать команду уменьшения на 1 содержимого указателя стека?
2. Для какой цели используется начальная установка указателя стека?
3. Какая команда используется для передачи данных из стека?
4. Какое из указанных ниже действий может произойти при изъятии данных из
стека, если его содержимое подверглось изменениям:
- извлечение из стека;
- загрузка в стек;
- вложение подпрограмм;
- нарушение работы программы?
- 101 -
Задания для лабораторной работы:
Задание №1: Исследование заданных программ.
1.
Исследовать программы 6.1,6.2,6.3,6.
Задание №2: Составить программу осуществляющую сложение двух чисел по
адресам 0010,0011. Записать эти числа в регистры В и С и записать результат в
регистр D. Запись содержимого этих регистров и PSW в стек.
После исполнения программы составить таблицу: адреса ячеек стека и
содержимого этих ячеек, регистры из которых производилась запись информации в
стек.
№
Коман
да
A
Адре
B
C
с
\М1да
М2/да
М3/да
нные
нные
нные
D
1
Инструкция по выполнению лабораторной работы
Задание №1: Исследование заданных программ.
2.
Исследовать программу 6.1, после чего убедиться, что указатель стека
уменьшается на 2.
3.
Исследовать программу 6.2, после чего убедиться, что указатель стека
увеличивается на 2.
4.
Исследовать программу 6.3 и проследить за выполнением команды
XTHL. Исследовать программу 6.4 и убедиться в сохранении слова состояния
программы. Записать двоичный код этого слова.
- 102 -
Задание №2: Составить программу осуществляющую сложение двух чисел по
адресам 0010,0011. Записать эти числа в регистры В и С и записать результат в
регистр D. Запись содержимого этих регистров и PSW в стек.
После исполнения программы составить таблицу: адреса ячеек стека и
содержимого этих ячеек, регистры из которых производилась запись информации в
стек.
Составить графическое изображение выполнения команды ADD С
Программа 6.1:
lxi bc,8513
загрузить данные в ВС
push bc
запомнить ВС в стеке
hlt
останов
Программа 6.2:
lxi sp,0ffe
загрузить указатель стека
pop
загрузить DE из стека
hlt
все
Программа 6.3:
mvi l,5
подготовка данных для
mvi c,10
демонстрации команды
push bc
<XTHL>
xthl
обмен HL и вертушки стека
xthl
обмен HL и верхушки стека
pop bc
восстановить ВС
mov a,b
hlt
Программа 6.4:
рush psw
[A] и [F] в стек
- 103 -
[A] – H; [F] – L
pop hl
останов
hlt
Методика анализа результатов, полученных в ходе лабораторной работы
Автоматическое сохранение и восстановление адреса основной программы
при выполнении подпрограмм позволяет сделать подпрограммы вложенными, т. е.
осуществить вызов одной подпрограммы из другой. Уровень вложенности для
данного МП определяется размером стека.
Помимо команд вызова подпрограмм и возврата из них, со стеком можно
обмениваться информацией. С помощью команды PUSH RP осуществляется запись
в стек содержимого регистра RP МП, а с помощью команды POP RP – запись
данных из стека в регистр RP процессора. Эти команды однобайтные
Порядок выполнения отчета по лабораторной работе
1.
Наименование и цель работы.
2.
Программы 6.1 – 6.4
3.
Составленную программу и заполненную таблицу с результатами её
исследования.
4.
Графическое изображение порядка выполнения команды ADD C
5.
Ответы на контрольные вопросы
6.
Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №7
Разработка и исследование программ работы со стеком
Учебные
цели:
Исследование
маскирования данных и
- 104 -
методов
программных
способов
организация условных переходов в микропроцессорных системах
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
Выполнение работы
Задание №1.
Программа 6.1:
lxi bc,8513
загрузить данные в ВС
push bc
запомнить ВС в стеке
hlt
останов
Программа 6.2:
lxi sp,0ffe
загрузить указатель стека
pop
загрузить DE из стека
hlt
все
Программа 6.3:
mvi l,5
подготовка данных для
mvi c,10
демонстрации команды
push bc
<XTHL>
xthl
обмен HL и вертушки стека
xthl
обмен HL и верхушки стека
pop bc
восстановить ВС
- 105 -
mov a,b
hlt
Программа 6.4:
рush psw
pop hl
[A] – H; [F] – L
останов
hlt
1.
[A] и [F] в стек
До выполнения программы адрес вершины стека был 100h, после
выполнения команды PUSH адрес уменьшился на 2 и стал равным 0FFEh.
2.
До: 0FFEh, после: 1000h.
3.
Команда XTHL взаимно обменивает содержимое регистров: L с
содержимым стека с адресом SP и содержимое регистра H с содержимым стека
SP+1. При выполнении 2-х таких команд подряд содержимое не изменится.
4.
Слово состояния сохраняется в стеке как один байт, с последующим
увеличением SP на 2.
Задание №2. 1.Составить программу осуществляющую сложение двух чисел
по адресам 0010,0011. Записать эти числа в регистры В и С и записать результат в
регистр D. Запись содержимого этих регистров и PSW в стек.
2.После исполнения программы составить таблицу: адреса ячеек стека и
содержимого этих ячеек, регистры из которых производилась запись информации в
стек.
адрес
0010
0011
MVI HL,0010
MOV B,M
MVI HL,0011
MOV C,M
MOV A,B
ADD C
B→
00FE
00FD
0FFC
0FFB
0FFA
0FF9
0FF8
C→
D→
F→
данные
01
01
стек
01
00
01
00
02
00
14
Содержание памяти
MOV D,A
- 106 -
PUSH B
PUSH C
PUSH D
PUSHPSW
HLT
Информация в регистрах МП и ячейках стека при выполнении задания 2.
Таблица 1
№
1
Команда
MVI H,
0010
2
MOV
B,M
3
MVI H,
0011
4
MOV
C,M
5
MOV
A,B
6
ADD C
7
MOV
D,A
8
9
10
11
PUSH B
PUSH C
PUSH D
00
00
00
00
01
02
02
02
02
02
PUSHPS
W
12
A
HLT
FL
B
-
-
-
-
-
-
-
-
-
C
00
00
01
00
01
00
01
01
01
01
01
01
01
01
01
01
01
01
01
01
02
02
-
М1/дан
М2/дан
М3/данн
ные
ные
ые
0010/01
00
00
0010/01
00
00
0010/01 0011/01
00
0010/01 0011/01
00
0010/01 0011/01
00
0010/01 0011/01
00
0010/01 0011/01
00
0010/01 0011/01 00FE/01
00FD/00
0010/01 0011/01 0FFC/01
0FFB/00
0010/01 0011/01 0FFA/02
0FF9/00
D
00
00
00
00
00
00
02
02
02
02
0010/01 0011/01 0FF8/14
01
01
01
01
- 107 -
02
0010/01 0011/01 00
02
3.Составить графическое изображение выполнения команды ADD С
Аккумулятор
Аккумулятор
0000 0001
0000 0010
СЛОЖИТЬ
До операции
После операции
ADD C
0000 0001
0 0
Регистр С
S
Z
-
Индикаторы
0 - 0 - 0
AC
P
CY
Рисунок 1. Графическое представление команды сложения
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ для исследования на
языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы
введение и комментарии; за каждой программой следует по крайней мере один
пример ее использования. При исследовании программ была получена
следующая информация: назначение программы, процедуру ее выполнения,
используемые регистры, размер памяти, необходимый для программы и ее
данных, а также специальные случаи, входные и выходные условия.
С помощью команды PUSH RP осуществляется запись в стек содержимого
регистра RP МП, а с помощью команды POP RP – запись данных из стека в
регистр RP процессора. Эти команды однобайтные. В них содержится номер
пары регистров МП. Сущность команд можно показать следующим образом:
- 108 -
PUSH B: (SP – 1)  B, (SP – 2)  C; SP = SP – 2
POP D: E  (SP), D  (SP + 1); SP = SP + 2
При записи в стек содержимого пары регистров или программного
счетчика по адресу SP – 1 записывается содержимое старшего регистра из
указанной пары (в примере B) или старшего байта PCH (программного счетчика),
а по адресу SP – 2 в стек записывается содержимое младшего регистра (в
примере C) из указанной пары или младшего байта PCL (программного
счетчика).
При записи из стека данных в пару регистров или в программный счетчик в
младший регистр регистровой пары или в PCL записывается число из адреса,
указанного в указателе стека SP, а в старший регистр регистровой пары или в
PCH – число, записанное по адресу SP + 1. В результате выполнения команды
содержимое SP увеличивается на 2. Таким образом, при записи данных адреса
стека убывают от больших к меньшим, а указатель стека SP всегда содержит
последний адрес стека, в котором записано число. При разработке программ
необходимо назначать область стека, записывая в SP адрес с помощью команды
LXI SP, <Адрес> или команды SPHL.
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №8
Программирование арифметических операций над многобайтными числами
Учебные цели: Изучение способов организации и исследование программ
выполнения арифметических операций.
Учебные задачи:
- 109 -
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, а также компонентов микропроцессорной системы, используя
программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами
программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального
времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.Используя программу эмулятора микропроцессорной системы исследовать
систему команд микропроцессора КР580ВМ80 и программы типовых функций
управления;
- 110 -
2.Изучить команды арифметических операций МП КР580ВМ80
3.Практическое использование нового программного продукта.
Обеспеченность занятия:
1. Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры.
Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования
микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и
вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А,
КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов
/Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
2. Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
3.Технические средства обучения:
- Персональный компьютер;
- Принтер.
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
- 111 -
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
7. Ручка.
8. Карандаш простой.
9. Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
Так как МП серии КР580 не имеет специальных команд для работы с числами
с плавающей точкой, то при составлении программ для этого процессора, как
правило,
используется
представление
чисел
с
фиксированной
точкой.
Восьмиразрядное слово данных позволяет представить число, как двоичное число со
знаком, имеющее значение от –128 до +127. При этом отрицательные числа
представляются в дополнительном коде, а старший разряд числа используется как
знаковый. Такое представление чисел не позволяет выполнять арифметические
операции с использованием переноса при сложении и заема при вычитании. Число с
фиксированной точкой можно представить также двоичными числами без знака,
имеющими значения от 0 до 255.
Для МП БИС можно представить также числа в виде двоичного числа Binariсoded-decimal (BCD), при котором каждый байт рассматривается как два полубайта,
две тетрады, каждая из которых кодирует десятичную цифру. Такое представление
позволяет закодировать 1 байт числа от 0 до 99.
Невысокая разрядность адресуемой ячейки памяти в МП КР580 порождает
необходимость в программах, реализующих арифметические операции с числами
занимающими в памяти группу последовательных ячеек.
- 112 -
Идея алгоритма, например сложения трех байтовых чисел, заключается в
использовании команды ADC (сложение с заемом). По этой команде к сумме
однобайтных слагаемых добавляется содержимое признака СY, в котором (на
предыдущем шаге) формируется бит переноса из старшего разряда, т.е. перенос из
младших байтов тригер переноса отбрасывается.
Операция вычитания выполняется по тому же алгоритму.
Микро-ЭВМ может представить арифметические числа с двойной или
большей длиной машинного слова. Так как МП имеет 8-разрядное АЛУ, то
операции с такими числами должны производиться по байтам, начиная с младших
байтов. Так операция сложения чисел 17F5 + 3411 будет производиться следующим
образом:
Чи
Млад
Ф
Старш
сл
ший
л
ий
а
байт
а
байт
г
С
17
11110
00010
F5
101
111
+
+
+
34
00010
00110
11
001
100
1
+
1
4С
00000
01001
06
110
100
Из приведенных примеров видно, что при суммировании (вычитании) младших
байтов чисел можно применять команду ADD (SUB), а при суммировании
(вычитании) остальных байтов чисел необходимо использовать команду ADC
(SBB), которая будет учитывать состояние разряда С регистра признаков МП.
- 113 -
Вопросы для закрепления теоретического материала к лабораторной работе
1.
Объясните, что происходит с результатом сложения с применением команды
СЛОЖЕНИЕ С ПЕРЕНОСОМ?
2.
Объясните, что происходит с результатом сложения с применением команды
ВЫЧИТАНИЕ С ПЕРЕНОСОМ?
3.
В регистровой паре ВС содержится число FFFF,
которое подвергается
положительному приращению. Каковы последствия этого действия?
4.
Поясните алгоритм сложения многобайтовых чисел в 8-ми разрядном
микропроцессоре.
5.
В регистровой паре ВС содержится число FFFF; производится положительное
приращение содержимого регистра С. Каковы последствия этого действия?
Задания для закрепления теоретического материала к лабораторной работе
Задание №1:
Рассмотреть и исследовать программу П7.1 сложения трехбайтных чисел.
Задание №2:
Рассмотреть и иисследовать программу П7.2 вычитания многобайтных чисел.
Задание №3:
Составить программу сложения двухбайтных чисел, расположенных в ячейках 0010,
0011, и 0015, 0016 с записью результата в ячейки 0020, 0021.
Инструкция по выполнению лабораторной работы
Задание №1:
1.
Рассмотреть и изучить программу П7.1 сложения трехбайтных чисел.
2.
Ввести программу и произнести её пуск. Изменяя числа в соответствующих
ячейках ЗУ. проследить за работой программы.
Программа П7.1
lxi bc,0010
загрузить адрес в ВС
- 114 -
lxi hi,0013
загрузить адрес в HL
mvi d,3
xra a
очистить бит CY
be6:ldax bc
загрузить байт по адресу BC
adc m
сложить с байтом по адресу HL и с CY
stax bc
запомнить результат в ВС
dcr d
уменьшить счетчик на 1
jz end
перейти, если D=0
inx bc
указать следующий байт
inx hl
указать следующий байт
jmp be6
перейти к сложению
end:hlt
останов
Примечание:
Младший байт первого слагаемого 0010
Младший байт второго слагаемого 0013
Результат – 0010-0012
Задание №2:
1.
Рассмотреть и изучить программу П7.2 вычитания многобайтных чисел.
2.
Ввести программу и произвести её пуск. Изменяя числа (вычитаемое и
уменьшаемое) проследить за работой программы.
Программа П7.2
xra a
очистить аккумулятор и CY
mvi c,3
вызвать подпрограмму
call cnt
hlt
все
cnt:ldax de
записать уменьшаемое в А
sbb m
вычесть
mov m,a
записать результат
inx hl
указать на следующий байт уменьшаемого
- 115 -
inx de
указать на следующий байт вычитаемого
dcr c
уменьшить счетчик длины байт
jnz cnt
если не 0, то идти на cnt
mc
если байт старший, и результат без заемо, то возврат
call beep
иначе, выдать сигнал
ret
beep:mvi a,1
out 60
xra a
dly:dcr a
jnz dly
mvi a,0
out 60
ret
Примечание:
Адрес младшего байта вычитаемого 0010 занести в регистровую
пару HL. В регистр С занести длину чисел (в байтах). Адрес младшего байта
уменьшаемого 0013 в регистровую пару DE. Результат 0010, 0011.
Задание №3:
Составить программу сложения двухбайтных чисел, расположенных в ячейках 0010,
0011, и 0015, 0016 с записью результата в ячейки 0020, 0021.
Методика анализа результатов, полученных в ходе лабораторной работы
Невысокая разрядность адресуемой ячейки памяти в МП КР580 порождает
необходимость в программах, реализующих арифметические операции с
числами занимающими в памяти группу последовательных ячеек.
Идея алгоритма, например сложения трех байтовых чисел, заключается в
использовании команды ADC (сложение с заемом). По этой команде к сумме
однобайтных слагаемых добавляется содержимое признака СY, в котором (на
- 116 -
предыдущем шаге) формируется бит переноса из старшего разряда, т.е.
перенос из младших байтов триггер переноса отбрасывается.
Порядок выполнения отчета по лабораторной работе
1.
Наименование и цель работы
2.
Программу сложения трехбайтовых чисел в формате ассемблера. Результат
работы программы
3.
Программу вычитания двухбайтных чисел в формате ассемблера. Результат
работы программы
4.
Разработанную программу сложения двухбайтных чисел в формате ассемблера.
Результаты работы программы
5.
6.
Ответы на контрольные вопросы
Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №8
Программирование арифметических операций над многобайтными числами
Учебные цели: Исследование методов программных способов маскирования
данных и
организация условных переходов в микропроцессорных системах
Учебные задачи:
2.
Закрепление
полученных
теоретических
знания
по
программированию
микропроцессорных систем.
3.
Практически
рассмотреть
микропроцессора,
а
также
состояние
различных
компонентов
используя программное моделирование.
- 117 -
узлов
и
микропроцессорной
устройств
системы,
Выполнение работы:
Задание №1.
Первое
0010
01
01
слагаемое
0011
00
00
0012
00
00
Второе
0013
01
FF
слагаемое
0014
00
00
0015
00
00
После выполнения программы
0010
02
00
0011
00
01
0012
00
00
Первое
0010
02
FF
слагаемое
0011
00
DF
0012
00
00
Второе
0013
01
01
слагаемое
0014
00
FF
0015
00
00
Задание №2.
После выполнения программы
001
0
0
02
0
20
0
00
1
001
1
0
001
- 118 -
2
0
Задание №3
Программа сложения двухбайтных чисел, расположенных в ячейках 0010,
0011, и 0015, 0016 с записью результата в ячейки 0020, 0021.
LXI BC,0010
15
LXI HL,0015
В2
XRA A
00
LDAX BC
15
ADC M
С6
PUSHPSW
14
STA 0020
С6
INX BC
АА
INX HL
22
POPPSW
14
LDAX BC
АА
ADC M
СС
STA 0021
СС
HLT
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ для исследования на языке
ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и
комментарии; за каждой программой следует по крайней мере один пример ее
использования.
При
исследовании
программ
- 119 -
была
получена
следующая
информация: назначение программы, процедуру ее выполнения, используемые
регистры, размер памяти, необходимый для программы и ее данных, а также
специальные случаи, входные и выходные условия.
Невысокая разрядность адресуемой ячейки памяти в МП КР580 порождает
необходимость в программах, реализующих арифметические операции с числами
занимающими в памяти группу последовательных ячеек.
Идея алгоритма, например сложения трех байтовых чисел, заключается в
использовании команды ADC (сложение с заемом). По этой команде к сумме
однобайтных слагаемых добавляется содержимое признака СY, в котором (на
предыдущем шаге) формируется бит переноса из старшего разряда, т.е. перенос из
младших байтов триггер переноса отбрасывается.
Целью работы является исследование и
сложения многобатовых чисел
разработка простой программы
для приобретения практических
навыков
программирования на языке ассемблера и закрепления знаний.
Цель работы достигнута. Разработана программа сложения двухбайтных
чисел. Программа отлажена и протестирована средствами эмулятора
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №9
Разработка и исследование программ умножения данных
Учебные цели: Исследование методов программных способов умножения
в микропроцессорных системах на МП КР580ВМ80
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
- 120 -
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора
при выполнении операции умножения, а также компонентов
микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами
программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального
времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.Используя программу эмулятора микропроцессорной системы исследовать
систему команд микропроцессора КР580ВМ80 и программы типовых функций
управления;
2.Изучить методику выполнения операции умножения
3.Практическое использование нового программного продукта.
- 121 -
Обеспеченность занятия:
1. Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры.
Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования
микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и
вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А,
КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов
/Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
2. Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
3.Технические средства обучения:
- Персональный компьютер;
- Принтер.
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
- 122 -
6. Рабочая тетрадь в клетку
7.Ручка.
8.Карандаш простой.
9.Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
Существует несколько алгоритмов умножения чисел. При одном алгоритме
умножение можно заменить многократным сложением. Например 143=14+14+14.
Существует недостаток этого способа: значительная длительность вычисления. При
другом алгоритме умножение осуществляется так:
0010=6

0011=3
0110
+0110
10010=18
При вычислении результата по второму способу необходимо осуществлять
многократное суммирование со сдвигом влево множимого при одновременной
проверке содержимого разрядов множителей, начиная со стороны его младшего
разряда. При этом если в очередном разряде множителя записана 1, то множимое
прибавляется к сумме и сдвигается влево на 1 разряд, а если в разряде записан 0 –
произойдет только сдвиг множимого. Сдвиг множимого влево можно заменить
сдвигом суммы вправо. По этому принципу работает программа умножения двух
однобайтных чисел с получением двухбайтного результата программа 9.2.
- 123 -
Умножение
Счетчик битов равен 08, сумма = 00.
нет
Содержимое бита = 1?
сумма = сумма + множимое.
Сдвинуть сумму вправо.
Указать на след. бит множителя.
Последний бит?
нет
Конец
Рис.1 . Программа умножения двух однобайтных чисел с получением
двухбайтного результата
Вопросы для закрепления теоретического материала к лабораторной
работе
1.
Как оценить максимальное время выполнения программы умножения
двух чисел?
2.
На чем основаны алгоритмы программ умножения чисел Изучить
подгруппу арифметических команд МП.
3.
Ознакомиться с правилами выполнения команды DAA (десятичная
коррекция аккумулятора).
4.
Определить значения признаков CY (перенос), AC (полуперенос), S
(знак), Z (нуль) и P (четность) в микропроцессоре КР580ВМ80А после выполнения
команды ADD B, если до ее выполнения A = 9BH, B = 36H.
5.
В какие ячейки памяти будет произведена запись информации и чему
будет равно их содержимое, а также содержимое указателя стека SP после
выполнения в микропроцессоре КР580ВМ80А команды PUSH B, если до ее
выполнения B = 8AH, C = 15H, SP = 2304H?
- 124 -
Задания для закрепления теоретического материала к лабораторной
работе
Задание №1:
1.
Изучить и исследовать работу программы П9.1 умножение целых чисел
без знака.
Задание №2:
1.
Изучить и исследовать программу умножения двух однобайтных чисел
с получением двухбайтного результата 9.2
Инструкция по выполнению лабораторной работы
Задание №1:
2.
Изучить работы программы П9.1 умножение целых чисел без знака.
3.
Провести ввод и пуск программы. Произвести умножение нескольких
чисел.
Программа П9.1
mvi a,5
mvi d,2
lxi hl,0000
mvi c,08
сброс регистра произведения
инициализация счетчика бит
nxdit:dad h
сдвиг частичной суммы
ral
сдвиг множителя
jnc noadd
анализ бита множителя
dad d
суммирование множителя
noadd:aci 0
учет переноса
dcr c
декремент счетчика бит
jnz nxbit
умножение на следующий бит
hlt
умножение закончено
Примечание:
Множимое – в регистр А, множитель – в регистр D
- 125 -
Произведение в регистр H
Задание №2: . Программа умножения двух однобайтных чисел с получением
двухбайтного результата
Входными параметрами программы 9.1 алгоритм которой приведен ниже, на
Рис. 1, являются следующие регистры: регистр D – множимое, регистр E –
множитель. Результат записывается в регистровую пару BC.
D,
;Запись в D множимого.
E,
;Запись в E множителя.
B,
;Очистить регистры B и C.
L,
;Загрузка счетчика.
MOV A, E
;Множитель в Акк.
MVI
A1h
MVI
9Bh
LX
0000h
MVI
08h
LAB_
1:
RAR
;Сдвиг
анализируемого
бита
в
триггер C.
MOV E, A
;Возврат
в
E
сдвинутого
множителя.
JNC
;Если бит множителя равен нулю,
LAB_2
то идти ; на LAB_2.
MOV A, B ;Загрузка
в
Акк.
старшей
частичной суммы.
ADD D
;Прибавление к нему множимого.
MOV B, A ;Возврат в B старшей частичной
суммы.
- 126 -
MOV A, B ;Загрузка
в
Акк.
старшей
частичной суммы.
LAB_
2:
RAR
;Сдвиг старшей частичной суммы
вправо
; (младший бит в C).
MOV B, A ;Возврат в B старшей частичной
суммы.
MOV A, C ;Загрузка
в
Акк.
младшей
частичной суммы.
RAR
;Сдвиг младшей частичной суммы
вправо ; (C в старший бит).
MOV C, A ;Возврат в C младшей частичной
суммы.
DCR L
;Декрементация счетчика.
JNZ
;Если разряд не последний, то идти
LAB_1
на LAB_1.
HLT
;Выход из программы.
Методика анализа результатов, полученных входе лабораторной работы
Программа 9.1 реализует алгоритм умножения “младшими разрядами вперед
со сдвигом частичной суммы”. Множимое помещается в регистр А, множитель в
регистр D, произведение – однобайтное число - образуется в регистре Н. При
выполнении умножения последовательно анализируются биты множителя, начиная
с младшего, помещаемые по команде RAR (циклический сдвиг вправо через
перенос) в разряд переноса CY. Если очередной бит множителя ненулевой, то
множимое добавляется к байту частичной суммы, находящемуся в регистре Н.
Далее выполняется сдвиг этого байта вправо (вторая команда RAR), при этом его
младший бит вытесняется в разряд переноса CY. При сдвиге в следующем цикле
- 127 -
содержимого регистра А значение CY заносится в его старший бит, а в CY
помещается очередной бит множителя. Таким образом в регистре Н множитель
постепенно вытесняется
частичной суммой, которая после выполнения восьми
циклов дает результат умножения. Длина описанной программы - 19 байт.
Порядок выполнения отчета по лабораторной работе
1.Наименование и цель работы
2.Программа 9.1 и результат её работы
3.Программа умножения двух однобайтных чисел с получением двухбайтного
результата 9.2
4.Ответы на контрольные вопросы
5.Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе
ЛАБОРАТОРНАЯ РАБОТА №9
Разработка и исследование программ умножения данных
Учебные цели: Исследование методов программных способов умножения
в микропроцессорных системах на МП КР580ВМ80
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора
при выполнении операции умножения, а также компонентов
микропроцессорной системы, используя программное моделирование.
Выполнение работы
- 128 -
Задание №1:
Исследование работы программы П9.1 умножение целых чисел без знака.
Программа П9.1
mvi a,5
mvi d,2
lxi hl,0000
сброс регистра произведения
mvi c,08
инициализация счетчика бит
nxdit:dad h
сдвиг частичной суммы
ral
сдвиг множителя
jnc noadd
анализ бита множителя
dad d
суммирование множителя
noadd:aci 0
учет переноса
dcr c
декремент счетчика бит
jnz nxbit
умножение на следующий бит
hlt
умножение закончено
Вычислению квадратного корня с точностью до целых чисел.
Таблица 1
Число
Сумма нечетных чисел
Результат
1
1
= 1
2
1+3
= 4
3
1+3+5
= 9
4
1+3+5+7
= 16
5
1+3+5+7+9
= 25
Примечание:
Множимое – в регистр А, множитель – в регистр D
Произведение в регистр H
- 129 -
№ экспер А
D
H
1
05 02 10
2
03 04 12
3
05 05 15
4
04 05 20
5
06 03 18
Задание №2: . Программа умножения двух однобайтных чисел с получением
двухбайтного результата
Входными параметрами программы 9.1 алгоритм которой приведен ниже, на Рис. 1,
являются следующие регистры: регистр D – множимое, регистр E – множитель.
Результат записывается в регистровую пару BC.
MVI D,
;Запись в D множимого.
A1h
MVI E,
;Запись в E множителя.
9Bh
LXI B,
;Очистить регистры B и C.
0000h
MVI L,
;Загрузка счетчика.
08h
MOV A, E
;Множитель в Акк.
RAR
;Сдвиг анализируемого бита в
LAB_
1:
триггер C.
MOV E, A
;Возврат в E сдвинутого
множителя.
JNC
;Если бит множителя равен нулю,
LAB_2
то идти
- 130 -
; на LAB_2.
MOV A, B ;Загрузка в Акк. старшей
частичной суммы.
ADD D
;Прибавление к нему множимого.
MOV B, A ;Возврат в B старшей частичной
суммы.
MOV A, B ;Загрузка в Акк. старшей
частичной суммы.
LAB_
2:
RAR
;Сдвиг старшей частичной суммы
вправо
; (младший бит в C).
MOV B, A ;Возврат в B старшей частичной
суммы.
MOV A, C ;Загрузка в Акк. младшей
частичной суммы.
RAR
;Сдвиг младшей частичной суммы
вправо
; (C в старший бит).
MOV C, A ;Возврат в C младшей частичной
суммы.
DCR L
;Декрементация счетчика.
JNZ
;Если разряд не последний, то идти
LAB_1
на LAB_1.
HLT
;Выход из программы.
- 131 -
№
D
E
B
C
1
12h
7h
00
7B
2
22h
10h
00
EC
3
150h 15h
1B
90
4
120h 20h
24
00
экспер
Результат работы программы
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ для исследования на языке
ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и
комментарии; за каждой программой следует по крайней мере один пример ее
использования.
При
исследовании
программ
была
получена
следующая
информация: назначение программы, процедуру ее выполнения, используемые
регистры, размер памяти, необходимый для программы и ее данных, а также
специальные случаи, входные и выходные условия.
Программа 9.1 реализует алгоритм умножения “младшими разрядами вперед
со сдвигом частичной суммы”. Множимое помещается в регистр А, множитель в
регистр D, произведение – однобайтное число - образуется в регистре Н. При
выполнении умножения последовательно анализируются биты множителя, начиная
с младшего, помещаемые по команде RAR (циклический сдвиг вправо через
перенос) в разряд переноса CY. Если очередной бит множителя ненулевой, то
- 132 -
множимое добавляется к байту частичной суммы, находящемуся в регистре Н.
Далее выполняется сдвиг этого байта вправо (вторая команда RAR), при этом его
младший бит вытесняется в разряд переноса CY. При сдвиге в следующем цикле
содержимого регистра А значение CY заносится в его старший бит, а в CY
помещается очередной бит множителя. Таким образом в регистре Н множитель
постепенно вытесняется
частичной суммой, которая после выполнения восьми
циклов дает результат умножения.
При вычислении по программе 9.2 необходимо осуществлять многократное
суммирование со сдвигом влево множимого при одновременной проверке
содержимого разрядов множителей, начиная со стороны его младшего разряда. При
этом если в очередном разряде множителя записана 1, то множимое прибавляется к
сумме и сдвигается влево на 1 разряд, а если в разряде записан 0 – произойдет
только сдвиг множимого. Сдвиг множимого влево можно заменить сдвигом суммы
вправо. Так работает программа умножения двух однобайтных чисел с получением
двухбайтного результата.
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №10
Разработка и исследование программ деления данных
Учебные цели: Исследование методов программных способов деления для
микропроцессорной системы на МП КР580ВМ80
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
- 133 -
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, при выполнении операции деления а также компонентов
микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами
программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального
времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
4.
Используя
программу
эмулятора
микропроцессорной
системы
исследовать систему команд микропроцессора КР580ВМ80 и программы деления
чисел
5.
Изучить методику составления программ деления чисел
- 134 -
6.
Практическое использование нового программного продукта.
Обеспеченность занятия:
1. Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры.
Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования
микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и
вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А,
КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов
/Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
2. Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
3.Технические средства обучения:
- Персональный компьютер;
- Принтер.
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
5. Лабораторное оборудование:
- 135 -
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
7.Ручка.
8.Карандаш простой.
9.Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
Деление двоичных чисел, как и чисел, представленных в любой другой системе
счисления, основывается на последовательном вычитании делителя из делимого
и остатков от деления. Однако двоичное деление реализуется проще, так как
использование только двух цифр (0 и 1) исключает в каждом цикле деления
необходимость определения числа делителей, содержащихся в текущем
значении делимого или остатка (достаточно только сравнить их).
Операция алгебраического деления чисел содержит действия, связанные с
определением знака частного и действия, связанные с определением модуля
частного и положительного остатка.
Знак частного может быть определен
выделением из чисел содержимого знаковых
разрядов. Затем суммированием их по модулю 2
и введением в знаковый разряд частного после
того как будет найден модуль частного.
Рис. 10.1 . Схема алгоритма программы
деления двух восьмиразрядных чисел164
- 136 -
Модуль частного определяется следующим образом:
Пусть делимое и делитель – целые положительные числа. Делимое имеет 2n
разрядов. Делитель – n разрядов, их старшие разряды – знаковые и содержат 0.
Процесс
деления
сводится
к
следующей
циклически
повторяемой
последовательности действий. В первом повторении цикла – делимое, а в
последующих повторениях цикла - остаток сдвигаются на один разряд влево и затем
из него вычитается делитель; если полученный новый остаток –положительное
число, то в очередной разряд частного (начиная с его старшего разряда)
записывается 1, если новый остаток – отрицательное число, то в разряд частного
записывается
0,
а
к
остатку
прибавляется
делитель
и
таким
образом
восстанавливается предыдущий сдвинутый остаток. Эти действия циклически
повторяются n раз (n – число разрядов делителя). В результате образуется частное, а
последний остаток является результирующим остатком операции деления.
Для построения программы выполнение операции деления в микропроцессоре
примем n=8. При этом делимое будет 16 разрядов (2 байта) и для его хранения
потребуется пара регистров.
Используем для его хранение регистр BC. При каждом сдвиге влево
содержимого регистра ВС в освобождающийся правый разряд будет заноситься
значение
очередного
разряда
частного.
Таким
образом,
после
окончания
выполнения операции в регистре С образуется значение частного. Так как действия
вычитания (или сложения) делителя должны производиться над старшими восемью
разрядами остатка, то эти операции будут выполняться. Над содержимым регистра
B, а после окончания операции деления его содержимое будет результирующим
остатком операции. Для хранения однобайтного делителя используем регистр D. На
регистре E, предварительно загружаемым числом 8, построим счетчик числа
повторения цикла.
Вопросы для закрепления теоретического материала к лабораторной
работе
- 137 -
1.На чем основаны алгоритмы работы программа деления чисел?
2.Оцените максимальное время выполнения программы деления двух чисел,
если время машинного такта для МП t= 1 мкс.
3.Можно ли непосредственно исследовать перемножения двух чисел по
программе П10.1? Пояснить
4. Определить содержимое регистров A, H и L после выполнения следующего
фрагмента программы, если до выполнения было: A = 5CH, H = A3H, L = 9DH.
ADD H
MOV L, A
INX H
5.Какие машинные циклы реализуются в микропроцессоре КР580ВМ80А при
выполнении команды JNC ADR и какова длительность этой команды?
Задания для закрепления теоретического материала к лабораторной
работе
Задание №1:
1.
Изучить и исследовать работу программы П10.1 деления целых чисел
без знака.
Задание №2:
2.
Изучить и исследовать программу умножения двух однобайтных чисел
с получением двухбайтного результата 9.2
Инструкция по выполнению лабораторной работы
Схема алгоритма деления двоичных чисел приведена на рис. 10.1.
Программа DIVB построена по этому алгоритму (программа П10.1). Входными
параметрами этой программы являются делимое (в регистре Е) и делитель (в регистре D); выходными параметрами — частное (в регистре Н) и остаток (в
регистре С).
- 138 -
Задание №1:
Порядок выполнения задания:
Изучить работу программы П10.1 деления целых чисел без знака.
2.
2 Произвести ввод и пуск программы П10.1.
Входными параметрами данной программы являются делимое (в регистре Е) и
делитель (в регистре D), а выходными параметрами – частное (в регистре Н) и
остаток (в регистре С). Перед началом выполнения программы признак переноса C
должен быть сброшен.
Программа 10.1
MVI E,
;Загрузка в E делимого.
A9h
MVI D,
;Загрузка в D делителя.
54h
LXI H,
;Загрузить счетчик битов (L) и
0008h
очистить
; регистр H.
MVI C,
;Очистить регистр
00h
промежуточного делимого.
MOV A, E
;Загрузить делимое в Акк.
RAL
;Сдвинуть старший бит в разряд С.
MOV E, A
;Возвратить делимое в регистр E.
LAB_
1:
MOV A, C ;В Акк. промежуточное делимое из
регистра С.
RAL
;Сдвинуть разряд С в младший бит
Акк.
SBB D
;Вычесть из содержимого Акк.
делитель
- 139 -
; с учетом заема.
JNC
;Если результат положительный,
LAB_2
то идти
; на LAB_2 (C = 0).
ADD D
;Сложить содержимое регистра D с
Акк.
MOV C, A ;Возвратить промежуточное
LAB_
делимое в
2:
; регистр С.
CMC
;Инвертировать разряд С.
MOV A, H ;Запись цифры частного.
RAL
MOV H, A
DCR L
;Проверены ли все 8 разрядов.
JNZ
;Если нет, продолжать.
LAB_1
HLT
;Выход из программы.
3. Записать в регистры Е, D соответственно делимое и делитель.
4. Осуществить пуск программы и проверить результат деления двух чисел по
содержимому регистров Н, С.
5. Выполнить деление нескольких чисел.
Методика анализа результатов, полученных входе лабораторной работы
Программа 9.1 реализует алгоритм умножения “младшими разрядами вперед
со сдвигом частичной суммы”. Множимое помещается в регистр А, множитель в
регистр D, произведение – однобайтное число - образуется в регистре Н. При
выполнении умножения последовательно анализируются биты множителя, начиная
с младшего, помещаемые по команде RAR (циклический сдвиг вправо через
перенос) в разряд переноса CY. Если очередной бит множителя ненулевой, то
- 140 -
множимое добавляется к байту частичной суммы, находящемуся в регистре Н.
Далее выполняется сдвиг этого байта вправо (вторая команда RAR), при этом его
младший бит вытесняется в разряд переноса CY. При сдвиге в следующем цикле
содержимого регистра А значение CY заносится в его старший бит, а в CY
помещается очередной бит множителя. Таким образом в регистре Н множитель
постепенно вытесняется
частичной суммой, которая после выполнения восьми
циклов дает результат умножения. Длина описанной программы - 19 байт.
Порядок выполнения отчета по лабораторной работе
1.
Наименование и цель работы
2.
Программа 10.1 и результат её работы
3.
Ответы на контрольные вопросы
4. Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе
ЛАБОРАТОРНАЯ РАБОТА №10
Разработка и исследование программ деления данных
Учебные цели: Исследование методов программных способов деления,
отладки и тестирования программ
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию
микропроцессорных систем.
- 141 -
3. Практически рассмотреть состояние различных узлов и устройств
микропроцессора, при выполнении операции деления а также компонентов
микропроцессорной системы, используя программное моделирование.
Выполнение работы
Задание №1:
Порядок выполнения задания:
3. Изучить работу программы П10.1 деления целых чисел без знака.
2 Произвести ввод и пуск программы П10.1.
Входными параметрами данной программы являются делимое (в регистре Е) и
делитель (в регистре D), а выходными параметрами – частное (в регистре Н) и
остаток (в регистре С). Перед началом выполнения программы признак переноса C
должен быть сброшен.
Программа 10.1
MVI E,
;Загрузка в E делимого.
A9h
MVI D,
;Загрузка в D делителя.
54h
LXI H,
;Загрузить счетчик битов (L) и
0008h
очистить
; регистр H.
MVI C,
;Очистить регистр
00h
промежуточного делимого.
MOV A, E
;Загрузить делимое в Акк.
RAL
;Сдвинуть старший бит в разряд С.
MOV E, A
;Возвратить делимое в регистр E.
LAB_
1:
- 142 -
MOV A, C ;В Акк. промежуточное делимое из
регистра С.
RAL
;Сдвинуть разряд С в младший бит
Акк.
SBB D
;Вычесть из содержимого Акк.
делитель
; с учетом заема.
JNC
;Если результат положительный,
LAB_2
то идти
; на LAB_2 (C = 0).
ADD D
;Сложить содержимое регистра D с
Акк.
MOV C, A ;Возвратить промежуточное
LAB_
делимое в
2:
; регистр С.
CMC
;Инвертировать разряд С.
MOV A, H ;Запись цифры частного.
RAL
MOV H, A
DCR L
;Проверены ли все 8 разрядов.
JNZ
;Если нет, продолжать.
LAB_1
HLT
;Выход из программы.
3. Записать в регистры Е, D соответственно делимое и делитель.
4. Осуществить пуск программы и проверить результат деления двух чисел
по содержимому регистров Н, С.
5. Выполнить деление нескольких чисел.
№ экспер Е
D Н
С
- 143 -
1
27 5 5
2
2
98 8 12 2
3
66 6 11 0
Результат работы программы
РАЗДЕЛ 1
Тема 1.7 Тестирование и комплексная отладка микропроцессорных
систем
ЛАБОРАТОРНАЯ РАБОТА №11
Работа с программой – отладчиком
Учебные цели: Практическое освоение основных функций программыотладчика TURBO DEBUGGER.
Учебные задачи:
1. Закрепление полученных теоретических знания по программированию и
отладке микропроцессорных систем.
2. Изучить методику применения основных команд
для работы с окнами
отладчика Turbo Debugger
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию
микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- 144 -
- отлаживать программы реального времени
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- особенности программирования микропроцессорных систем реального
времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.Изучить применение программы отладчика TURBO DEBUGGER
2.Осуществить компиляцию и отладку заданных программ
3.Практическое использование нового программного продукта.
Обеспеченность занятия:
1. Учебно-методическая литература:
- Абель П. Язык Ассемблера для IBM PC и программирования /Пер. c англ.
М.:Высш.шк., 2002,c 93-115.
- А.Крупник. Ассемблер. Серия: самоучитель./С-Пб., ПИТЕР, 2003 г , 242 с
2. Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов
Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
3.Технические средства обучения:
- 145 -
- Персональный компьютер;
- Принтер.
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
7.Ручка.
8.Карандаш простой.
9.Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме
лабораторной работы
Турбо отладчик (Turbo Debugger) - это современный отладчик, позволяющий
отлаживать программы на уровне исходного текста и предназначенный для
программистов, работающих на Турбо языках фирмы Borland. Многочисленные
перекрывающие
друг
друга
окна,
а
также
сочетание
спускающихся
и
раскрывающихся меню обеспечивают быстрый, интерактивный пользовательский
интерфейс. Интерактивная, контекстно-зависимая система подсказки обеспечит вас
подсказкой на всех стадиях работы. Непосредственно после запуска отладчика
открыто окно CPU. В окне CPU (ЦП) показано все состояние центрального
процессора. С его помощью вы можете проверять и изменять биты и байты,
составляющие код и данные программы. В окне Code (Код) для временной
- 146 -
коррекции своей программы вы можете использовать встроенный Ассемблер. При
этом инструкции вводятся точно также, как при наборе исходных операторов
Ассемблера. Можно также получить доступ к соответствующим данным любой
структуры данных, выводя и изменяя их в различных форматах.
В области регистров (верхняя область справа от области кода) выводится
содержимое регистров центрального процессора.
Верхней правой областью является область флагов, где показано содержимое
восьми флагов центрального процессора. В области флагов показано значение
каждого флага ЦП.
В области данных показано непосредственное содержимое выбранной области
памяти. В левой части каждой строки показан адрес данных, выводимых на данной
строке. Адрес выводится в виде шестнадцатеричного значения сегмента и
смещения. Значение сегмента заменяется именем сегмента DS, если значение
сегмента совпадает с текущим содержимым регистра DS.
В правой части каждой строки выводятся символы, соответствующие
показанным
байтам.
Турбо
отладчик
выводит
все
печатаемые
значения,
соответствующие байтовым эквивалентам, поэтому не удивляйтесь, если на экране
вы
увидите
странные
символы
-
просто
это
символьный
шестнадцатеричных значений байтов данных.
В нижнем правом углу окна CPU показано содержимое стека.
Некоторые команды программы DEBUG:

D (Dump) - Команда вывода на экран содержимого памяти

E (Enter) - Команда ввода

F (FILL) - Команда заполнения памяти

G (Go) - Команда выполнения программы

R (Register) - Команда операции с регистрами

Т (Тгасе) - Команда отслеживания

A (Assemble) - Команла трансляции
- 147 -
эквивалент
Команды работы с отладчиком TURBO DEBUGGER
- 148 -
Вопросы для закрепления теоретического материала к лабораторной
работе
1. Каковы задача и содержание этапа отладки программ?
2. Типы программ-отладчиков и особенности их работы.
3. Основные команды для работы с ячейками памяти и регистрами отладчика
Turbo Debugger ?
4. Основные команды для отладки загруженной программы ?
5. Основные команды для работы с окнами отладчика Turbo Debugger
6. Объяснить порядок загрузки отлаживаемой программы
7.Каким образом можно редактировать ассемблерную программу?
8. Как осуществляется изменение содержимого оперативной памяти и
регистров средствами отладчика?
9. Как через меню отладчика запустить программу на выполнение?
Задания для лабораторной работы
- 149 -
Задание 1: Изучить методические рекомендации по работе с программой
отладчиком TURBO DEBUGGER
Задание 2:
1.Изучить
и
исследовать
структуру
экрана
TURBO
DEBUGGER
и
использование команд отладчика.
2.Ознакомиться с командами программы отладчика и методикой их
использования
Задание 3: Выполнить запуск и отладку программ 11.1 и 11.2
Инструкция по выполнению лабораторной работы
Задание 1: Изучить методические рекомендации по работе с программой
отладчиком TURBO DEBUGGER
Запуск
программы
осуществляется
файлом
td.exe,
расположенный
в
директории BIN каталога BP или BC.
Задание 2:
1.Изучить
и
исследовать
структуру
экрана
TURBO
DEBUGGER
и
использование команд отладчика.
2.Ознакомиться с командами программы отладчика и методикой их
использования
При запуске Turbo Debugger на экране появляется его основное меню и
рабочее окно рис.1.
Рабочее окно состоит из следующих четырёх окон:
1. окно команд – CPU;
2. окно регистров и флагов – Registers;
3. окно данных – Dump;
4. окно стека.
- 150 -
Рисунок 1. Окно основного рабочего меню TURBO DEBUGGER
В свою очередь окно Registers поделено на две части. В левой его части
указано содержимое всех регистров микропроцессора (ax,bx,cx,dx…), а в правой
части показаны биты регистра флагов.
Задание 3: Выполнить запуск и отладку программ 11.1 и 11.2
1.
Запустить программу отладчика
2.
Открыть меню File/Open и загрузить программу 11.1
Программа 11.1
lxi hi,0010
записать адрес 0010 в паре HL
mov a,m
передать данные в аккумулятор
cma
инвертировать содержимое аккумулятора
lnx hl
инвертировать содержимое HL
mov m,a
передать содержимое регистра А в ячейку памяти
hit
прервать выполнение программы
1.
Указать содержимое каждого из восьми РОН после выполнения двух
любых выбранных команд в программах П11.1 и П11.2.
2.
Выполнить все команды TURBO DEBUGGER
- 151 -
1. Ассемблируйте исходный текст программы П11.1 в режиме /zi ,
произведите его компоновку в режиме /v . Поместите полученные файлы в каталоге,
что и TD.EXE.
2. Запустите программу TD на выполнение. После появления визитной
карточки отладчика нажмите клавишу ENTER. Обратите внимание на то, что в
нижней строке расположена подсказка о назначении функциональных клавиш, в
верхней строке перечислены меню отладчика, а в основном поле экрана открыто
окно CPU (ЦП). Клавишей ZOOM измените размер открытого окна.
.3. Обратите внимание на то, что окно CPU разделено рамками на части,
относящиеся к сегментам кода, стека, данных и РОНам. В сегменте кода команда по
смещению, равному содержимому регистра IP, а в сегменте стека данные по
смещению, равному содержимому регистра SP, отмечены стрелками. Клавишей
TAB измените положение выделяющей информацию цветной рамки.
.4. Нажатием комбинации клавиш alt-F10, попробуйте открыть окна
локальных меню в каждой рамке окна CPU. Ознакомьтесь с их содержанием.
Закрывайте окна клавишей ESC.
5.5. Используя клавишу F10, перейдите в главное меню. Откройте окно FILE.
Включите режим OPEN... . Клавишей TAB выделите окно FILES.
Курсорными клавишами выберите имя файла hello.exe и загрузите его. Сравните
информацию, содержащуюся в рамке кода с листингом вашей программы.
.6. В окне CPU произведите трассировку программы (пошаговое выполнение)
нажатием клавиши F8. На каждом шаге контролируйте содержимое регистров,
флагов и состояние стека. После завершения программы перейдите в окно
WINDOW главного меню и установите режим USER SCREEN. Убедитесь, что
программа выполнила свою задачу. Клавишей ESC верните изображение окна CPU.
7. Через окно FILE повторите загрузку программы П11.1. Перейдите в рамку
сегмента данных. Откройте его локальное меню. Перейдите на смещение 100Н,
используйте для этого режим GOTO. Для удобства анализа сегмента данных
войдите в окно VIEW главного меню. Установите режим DAMP. Клавишей ZOOM
увеличьте размеры рамки сегмента данных. Просмотрите содержимое ячеек памяти.
- 152 -
Подводя курсор к элементам данных Вашей программы, редактируйте их
шестнадцатеричные значения, используйте для этого клавиши 0-9 и a-f.
Произведите запуск программы (F9). Проанализируйте результат ее работы.
8. Произведите проверку работы программы П11.2. Открыть меню File/Open и
загрузить программу
Программа №11.2
lxi hl,0010
записать адрес 0010 в регистр HL
lxi bc,0011
записать адрес 0011 в регистр ВС
ldax bc
передать
данные
из
ячейки
по
адресу
ВС
в
аккумулятор
add m
сложить содержимое аккумулятора и ячейки 0010
inx bc
увеличить содержимое ВС на 1
stax bc
передать содержимое аккумулятора в ячейку ВС
hlt
завершить выполнение
9.Завершите работу отладчика. Воспользуйтесь пунктом EXIT окна FILE.
Методика анализа результатов, полученных в ходе лабораторной работы
Используя программу TURBO DEBUGGER, мы изучили команды программы
TURBO DEBUGGER, необходимые при разработке и отладки программ на языке
Ассемблера.
ЕХЕ-программы сложнее в исполнении, но для них отсутствует ограничение
размера в 64 килобайта, так что все достаточно большие программы используют
именно этот формат. Конечно, ассемблер позволяет уместить и в 64 килобайтах
весьма сложные и большие алгоритмы, а все данные хранить в отдельных файлах,
но ограничение размера все равно очень серьезно усложняет отладку больших по
объему программ.
Порядок выполнения отчета по лабораторной работе
- 153 -
1.
Наименование и цель работы
2.
Исследуемые программы
3.
Результат выполнения задания 2
4.
Ответы на контрольные вопросы
5.
Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе
ЛАБОРАТОРНАЯ РАБОТА №11
Работа с программой – отладчиком
Учебные цели: Практическое освоение основных функций программыотладчика TURBO DEBUGGER.
Учебные задачи:
1. Закрепление полученных теоретических знания по программированию и
отладке микропроцессорных систем.
2. Изучить методику применения основных команд
для работы с окнами
отладчика Turbo Debugger
Выполнение работы
Задание 1: Изучить методические рекомендации по работе с программой
отладчиком TURBO DEBUGGER
Некоторые команды программы DEBUG:

D (Dump) - Команда вывода на экран содержимого памяти

E (Enter) - Команда ввода

F (FILL) - Команда заполнения памяти

G (Go) - Команда выполнения программы

R (Register) - Команда операции с регистрами
- 154 -

Т (Тгасе) - Команда отслеживания

A (Assemble) - Команла трансляции
Задание 2:
1.Изучить
и
исследовать
структуру
экрана
TURBO
DEBUGGER
и
использование команд отладчика.
2.Ознакомиться с командами программы отладчика и методикой их
использования
При запуске Turbo Debugger на экране появляется его основное меню и
рабочее окно рис.1.
Рабочее окно состоит из следующих четырёх окон:
1. окно команд – CPU;
2. окно регистров и флагов – Registers;
3. окно данных - Dump;
4. окно стека.
Рисунок 1. Окно основного рабочего меню TURBO DEBUGGER
В свою очередь окно Registers поделено на две части. В левой его части указано
содержимое всех регистров микропроцессора (ax,bx,cx,dx…), а в правой части
показаны биты регистра флагов.
Задание 3: Выполнить запуск и отладку программ 11.1 и 11.2
Программа 11.1
lxi hi,0010
записать адрес 0010 в паре HL
mov a,m
передать данные в аккумулятор
- 155 -
cma
инвертировать содержимое аккумулятора
lnx hl
инвертировать содержимое HL
mov m,a
передать содержимое регистра А в ячейку памяти
hit
прервать выполнение программы
3. Указать содержимое каждого из восьми РОН после выполнения двух любых
выбранных команд в программах П11.1 и П11.2.
Тестирование программы 11.1
Исходные данные
Ожидаемый результат
Полученный результат
F5
инверсия : 0A,ED,50
инверсия : 0A,ED,50
12
М0010 =F5,12,AF
М0011 =0A,ED,50
AF
HL=0011
HL=0011
4. Выполнить все команды TURBO DEBUGGER
Программа №11.2
lxi hl,0010
lxi bc,0011
записать адрес 0010 в регистр HL
записать адрес 0011 в регистр ВС
ldax bc
передать данные из ячейки по адресу ВС в аккумулятор
add m
сложить содержимое аккумулятора и ячейки 0010
inx bc
увеличить содержимое ВС на 1
stax bc
передать содержимое аккумулятора в ячейку ВС
hlt
завершить выполнение
Исходные данные
Ожидаемый результат
Полученный результат
50+12
Суммы : 62,D6,FF
Суммы : 62,D6,FF
A0+36
Минимальная сумма = 62
Минимальная сумма = 62
3A+C5
ВС=0011, HL=0010
ВС=0011, HL=0010
Ответы на контрольные вопросы:
1.
- 156 -
2.
3.
4.
5.
6.
Анализ результатов, полученных в ходе лабораторной работы:
Используя программу TURBO DEBUGGER, мы изучили команды программы
TURBO DEBUGGER, необходимые при разработке и отладки программ на языке
Ассемблера.
В результате выполнения данной лабораторной работы, были получены
практические знания проектирования и тестирования программ. Разработана схема
работы программы, проделаны тесты, подтвердившие правильность работы
программы.
Освоены основы низкоуровневого языка программирования Ассемблер.
Изучили назначение и взаимодействие регистров, ячеек памяти, а также
псевдокодов. Научились разрабатывать и отлаживать простейшие управляющие
программы с использованием псевдокодов.
- 157 -
Приложение А
Система команд микропроцессора КР580ВМ80А
В приложении 1 представлены мнемокоды команд МП КР580, указано количество
машинных циклов и тактов, требуемых для выполнения отдельной команды МП,
а также признаки, на которые влияет выполнение команды.
Принятые сокращения:

- операция пересылки

- операция обмена
AND - конъюнкция (И)
OR
- дизъюнкция (ИЛИ)
XOR - сложение по модулю 2 (исключающее ИЛИ)
INV
- инверсия
R
- один из семи регистров: А, В, С, D, Е, Н, L
RP
- одна из регистровых пар: В, D, Н или SP
RP'
- одна из регистровых пар: В или D
RP"
- одна из регистровых пар: В, D, Н, или PSW
RPH
- старший регистр в регистровой паре
RPL
- младший регистр в регистровой паре
М
- память, адресуемая косвенно через HL
PORT - восьмиразрядный адрес порта ввода-вывода
N
- один из восьми уровней прерывания: 0, 1, 2, 3, 4, 5, 6,7
D8
- восьмиразрядный непосредственный операнд
D16
- шестнадцатиразрядный непосредственный операнд
А16
- шестнадцатиразрядный адрес
(R)
- содержимое регистра
(RP)
- содержимое регистровой пары
- 158 -
M(RP) - содержимое ячейки памяти по адресу, хранящемуся в регистровой паре
RP
I(PORT)
- содержимое порта ввода с адресом PORT
O(PORT)
- содержимое порта вывода с адресом PORT
COND
- одно из восьми условий:
NZ
- ненулевой результат (Z==0)
Z
- нулевой результат (Z=1)
NC
- отсутствие переноса из старшего разряда или заема в старший разряд
С
- наличие переноса или заема (CY=1)
PO
- нечетность числа единиц в результате (Р=0)
PE
- четность числа единиц в результате (Р==1)
Р
- «плюс» (S=0)
М
- «минус» (S=1)
МЦ
- количество машинных циклов
МТ
- количество машинных тактов
Ф
- формат команды в байтах
- 159 -
Группа команд пересылки
Мнемокод
Операция
МЦ MT
Ф
Признаки
1
MOV Rl, R2 (RI)(R2)
1
5
1
Все признаки
2
XCHG
(HL)(DE)
1
4
1
сохраняют свои
3
SPHL
(SP)(HL)
1
5
1
значения
4
MOV R, M
(R)M(HL)
2
7
1
5
MOV M, R
M(HL)(R)
2
7
1
6
LDAX RP’
(A)M(RP’)
2
7
1
7
STAX RP’
M(RP’)(A)
2
7
1
8
LDA A16
(A)M(A16)
4
13
3
9
STA A16
M (A16)(A)
4
13
3
10 LHLD А16
(HL)M(A16)
6
1
3
11 SHLD A16
M(A16)(HL)
6
16
3
12 MVI R,D8
(R)D8
2
7
2
13 LXI RP,D16 (RP)D16
3
10
3
14 MVI M, D8
M (HL)D8
3
10
2
15 PUSH RP’’
M(SP-1)(RP’’H)
8
11
1
3
11
1
5
18
1
M(SP-2)(RP’’L)
(SP)(SP)-2
16 POP RP’’
(RP’’L)M(SP)
(RP’’H)M(SP+1)
(SP)(SP)+2
17 XTHL
M(SP)(H)
M (SP-1)(L)
18 IN PORT
(A)I(PORT)
3
10
2
19 OUT PORT
O(PORT)(A)
3
10
2
- 160 -
Группа команд арифметических операций
Мнемокод
Операция
МЦ MT
Ф
Признаки
20 ADD R
(A)(A)+(R)
1
4
1
S, Z, AC, P, CY
21 ADC R
(A)(A)-(R)+CY
1
4
1
S, Z, AC, P, CY
22 SUB R
(A)(A)-(R)
1
4
1
S, Z, AC, P, CY
23 SBB R
(A)(A)-(R)-CY
1
4
1
S, Z, AC, P, CY
24 INR R
(R)(R)+1
1
6
1
S, Z, AC, P
25 DCR R
(R)(R)-1
1
5
1
S, Z, AC, P
26 DAD RP
(HL)(HL)+(RP)
3
10
1
CY
27 INX RP
(RP)(RP)+1
1
5
1
28 DCX RP
(RP)(RP)-1
1
5
1
29 ADD M
(A)(A)+M(HL)
2
7
1
S, Z, AC, P, CY
30 ADC M
(A)(A)+M(HL)+
2
7
1
S, Z, AC, P, CY
+CY
Мнемокод
Операция
МЦ MT
Ф
Признаки
31 SUB M
(A)(A)-M(HL)
2
7
1
S, Z, AC, P, CY
32 SBB M
(A)(A)-M(HL)-
2
7
1
S, Z, AC, P, CY
-CY
33 INR M
M(HL)M(HL)+1
3
10
1
S, Z, AC, P
34 DCR M
M(HL)M(HL)-1
3
10
1
S, Z, AC, P
36 ADI D8
(A)(A)+D8
2
7
2
S, Z, AC, P, CY
36 ACI D8
(A)(A)+D8+CY
2
7
2
S,Z, AC, P, CY
87 SUl D8
(A)(A)-D8
2
7
2
S, Z,AC, P, CY
38 SBI D8
(A)(A)-D8-CY
2
7
2
S, Z, AC,P, CY
39 DAA
десятичная
1
4
1
S, Z, AC, P, CY
коррекция (A)
- 161 -
Группа команд логических операций
Мнемокод
40 ANA R
Операция
МЦ MT
1
(A)(A) AND (R)
4
Ф
Признаки
1
S, Z, P, AC*,
CY==0
41 XRA R
(A)(A) XOR (R)
1
4
1
S,Z,P AC=CY=0
42 ORA R
(A)(A) OR (R)
1
4
1
S,Z,P AC=CY=0
43 CMP R
(A)-(R)
1
4
1
S, Z, AC, P. CY
44 RLC
Сдвиг влево цикл.
1
4
1
CYA (7),
AC=0
45 RRC
Сдвиг вправо цикл.
1
4
1
CYA (0)
АС=0
46 RAL
Сдвиг влево цикл
1
4
1
через A(0)CY
47 RAR
AC=O
Сдвиг вправо через
1
4
1
A(7)CY
CYA(0),
AC=O
48 CMA
(A)INV (А)
1
4
1
49 ANA M
(A)(A)
2
7
1
S, Z, P, AC,
CY=0
AND M(HL)
50 XRA M
CYA (7),
(A)(A)
2
7
1
SZ, P, AC=CY=0
2
7
1'
S, Z, P,
XOR M(HL)
51 ORA M
(A)(A)OR M(HL)
AC=CY=0
52 CMP M
(A)-M(HL)
2
7
1
S, Z, AC, P, CY
53 ANI D8
(A)(A) AND D8
2
7
2
S, Z, P, AC*,
CY==0
54 XRI D8
(A)(A) XOR D8
2
7
2
S, Z, P,
AC=CY=0
56 ORI D8
(A)(A) OR D8
2
7
2
S, Z, P.
AC=CY=0
- 162 -
56 CPID8
Мнемокод
(A)D8
Операция
2
7
МЦ MT
2
S, Z, AC, P, CY
Ф
Признаки
57 CMC
(CY)INV (CY)
1
4
1
CY
58 STC
(CY)1
1
4
1
CY=1
Группа команд передачи управления
Мнемокод
59 PCHL
Операция
(PCH)(H)
МЦ MT
1
5
Ф
Признаки
1
Все признаки
сохраняют свои
(PCL)(L)
значения
60 JMP A16
(PC)A16
3
10
3
61 J(COND)
Если условие
6
17
3
3
11
--
5
17
3
3
11
-
3
11
1
3
10
1
A16
выполняется, то
(PC)A16, иначе
(PC)(PC)+1
62 CALL A16
M(SP-1)(PCH)
M(SP-2)(PCL)
(SP)(SP)-2
(PC)A16
63 С (COND)
A16
Если условие
выполняется, то
см. ком. 62, иначе
(PC)(PC)+1
64 RST N
M(SP)(PC)
(PC)N*8
65 RET
(PCL)M (SP)
(PCH)M (SP+1)
(SP)(SP)+2
- 163 -
66 R (COND)
Если условие
3
11
1
3
1
выполняется. то
см. ком. 65, иначе
(РС)(РС)+1
Группа специальных команд
Мнемокод
67 EI
68 DI
Операция
МЦ MT
Разрешить
1
4
Ф
Признаки
1
Все признаки
прерывание
сохраняют свои
(триггер РПР)1
значения
Запретить
1
4
1
1
7
1
прерывания
(триггер РПР)0
69 HLT
Останов
70 NOP
Пустая операция
1
- 164 -
4
1
Приложение Б
Машинные коды команд микропроцессора КР580ВМ80А
Мнемокод
КО
ANA
E
A3
CPI
D8
FE
П
ANA
H
A4
CPO
ADDR
E4
ACI
D8
CE
ANA
L
A5
CZ
ADDR
CC
ADC
A
8F
ANA
M
A6
DAD
B
09
ADC
B
88
ANI
D8
E6
DAD
D
19
ADC
C
89
CALL ADDR
CD
DAD
H
29
ADC
D
3A
CC
ADDR
DC
DAD
SP
39
ADC
E
8B
CM
ADDR
FC
DCR
A
3D
ADC
H
8C
CMA
2F
DCR
B
05
ADC
L
8D
CMC
3F
DCR
C
0D
ADC
M
8E
CMP
A
BF
DCR
D
15
ADD
A
87
CMP
B
B8
DCR
E
1D
ADD
B
80
CMP
C
B9
DCR
H
25
ADD
C
81
CMP
D
BA
DCR
L
2D
ADD
D
82
CMP
E
BB
DCR
M
35
ADD
E
83
CMP
H
BC
DCX
B
0B
ADD
H
84
CMP
L
BD
DCX
D
1B
ADD
L
85
КО
DCX
H
2B
ADD
M
86
П
DCX
SP
3B
ADI
D8
C6
CMP
M
BE
DI
F3
ANA
A
A7
CNC
ADDR
D4
EI
FB
ANA
B
A0
CNZ
ADDR
C4
HLT
76
ANA
C
A1
CP
ADDR
F4
IN
PORT
DB
ANA
D
A2
CPE
ADDR
EC
INR
A
3C
Мнемокод
- 165 -
INR
B
04
D
MOV
C,H
4C
INR
C
0C
LXI
B,D16
01
MOV
C,L
4D
INR
D
14
LXI
D,D16
11
MOV
C,M
4E
INR
E
1C
LXI
H,D16
21
MOV
D,A
57
INR
H
24
LXI
SP,D16 31
MOV
D,B
50
INR
L
2C
MOV
A,A
7F
MOV
D,C
51
INR
M
34
MOV
A,B
78
MOV
D,D
52
INX
B
03
MOV
A,C
79
MOV
D,E
53
INX
D
13
MOV
A,D
7A
MOV
D,H
54
INX
H
23
MOV
A,E
7B
MOV
D,L
55
КО
MOV
A,H
7C
MOV
D,M
56
П
MOV
A,L
7D
MOV
E,A
5F
Мнемокод
INX
SP
33
MOV
A,M
7E
MOV
E,B
58
JC
ADDR
DA
MOV
B,A
47
MOV
E,C
59
JM
ADDR
FA
MOV
B,B
40
MOV
E,D
5A
JMP
ADDR
C3
MOV
B,C
41
MOV
E,E
5B
JNC
ADDR
D2
MOV
B,D
42
MOV
E,H
5C
JNZ
ADDR
C2
MOV
B,E
43
MOV
E,L
5D
JP
ADDR
F2
MOV
B,H
44
MOV
E,M
5E
JPE
ADDR
EA
MOV
B,L
45
MOV
H,A
67
JPO
ADDR
E2
MOV
B,M
46
MOV
H,B
60
JZ
ADDR
CA
MOV
C,A
4F
MOV
H,C
61
LDA
ADDR
3A
MOV
C,B
48
MOV
H,D
62
LDA
B
0A
MOV
C,C
49
MOV
H,E
63
MOV
C,D
4A
MOV
H,H
64
MOV
C,E
4B
MOV
H,L
65
КО
MOV
H,M
66
П
MOV
L,A
6F
X
LDA
D
1A
Мнемокод
X
LHL
ADDR
2A
166
MOV
L,B
68
ORA
B
B0
RPO
E0
MOV
L,C
69
ORA
C
B1
RRC
0F
MOV
L,D
6A
ORA
D
B2
RST
0
C7
MOV
L,E
5B
ORA
E
B3
RST
1
CF
MOV
L,H
6C
ORA
H
B4
MOV
L,L
6D
ORA
L
B5
MOV
L,M
6E
ORA
M
B6
MOV
M,A
77
ORI
D8
F6
MOV
M,B
70
OUT
PORT
D3
RST
2
D7
MOV
M,C
71
PCHL
E9
RST
3
DF
MOV
M,D
72
POP
B
C1
RST
4
E7
MOV
M,E
73
POP
D
D1
RST
5
EF
MOV
M,H
74
POP
H
E1
RST
6
F7
MOV
M,L
75
POP
PSW
F1
RST
7
FF
PUSH B
C5
RZ
PUSH D
D5
SBB
A
9F
КО
PUSH H
E5
SBB
B
98
П
PUSH PSW
F5
SBB
C
99
Мнемокод
Мнемокод
КО
П
C8
MVI
A,D8
3E
RAL
17
SBB
D
9A
MVI
B,D8
06
RAR
1F
SBB
E
9B
MVI
C,D8
0E
RC
D8
SBB
H
9C
MVI
D,D8
16
RET
C9
SBB
L
9D
MVI
E,D8
1E
RLC
07
SBB
M
9E
MVI
H,D8
26
RM
F8
SBI
D8
DE
MVI
L,D8
2E
RNC
D0
SHLD ADDR
22
MVI
M,D8
36
RNZ
C0
SPHL
F9
00
RP
F0
STA
B7
RPE
E8
STAX B
NOP
ORA
A
167
ADDR
32
02
STAX D
12
STC
37
SUB
A
97
SUB
B
90
SUB
C
91
SUB
D
92
SUB
E
93
SUB
H
94
SUB
L
95
SUB
M
96
SUI
D8
D6
XCH
EB
G
XRA
A
AF
XRA
B
A8
XRA
C
A9
XRA
D
AA
XRA
E
AB
XRA
H
AC
XRA
L
AD
XRA
M
AE
XTH
E3
L
XRI
D8
EE
168
Приложение Б
Министерство образования и науки Самарской области
Государственное образовательное учреждение
среднего профессионального образования
«Жигулевский государственный колледж»
ОТЧЕТ ПО ЛАБОРАТОРНЫМ РАБОТАМ
по междисциплинарному курсу МДК02.01
«Микропроцессорные системы»
профессионального модуля
ПМ02. Применение микропроцессорных систем, установка и настройка
периферийного оборудования
для специальности СПО 230113 «Компьютерные системы и комплексы»
Выполнил: студент группы Д3Т1
Иванов И.И.
Проверил преподаватель
Кузнецов Е.Г.
2014
-1-
Download