Министерство образования и науки Самарской области
Государственное бюджетное образовательное учреждение
среднего профессионального образования
"Жигулевский государственный колледж"
МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ
ЛАБОРАТОРНЫХ РАБОТ
по междисциплинарному курсу МДК02.01
«Микропроцессорные системы»
профессионального модуля
ПМ02. Применение микропроцессорных систем, установка и настройка периферийного оборудования
Курс 3
Для специальности СПО 230113 «Компьютерные системы и комплексы»
с контрольными заданиями и методическими указаниями
Жигулевск, 2014г.
РАССМОТРЕНО
на заседании предметной (цикловой) комиссии электронно-вычислительного цикла
___________________________________
Протокол № ____от ___________2014г.
Председатель
___________________________________
Составлено в соответствии с требованиями ФГОС СПО к результатам освоения основной профессиональной образовательной программы по специальности/профессии 230113
___Компьютерные системы и комплексы_
____________________________________
СОГЛАСОВАНО
Заместитель директора
по учебно-воспитательной работе
____________________Н.В. Ванчурова
«____» ________________ 2014 г.
УТВЕРЖДЕНО
на заседании научно-методического совета
Протокол № ____от ____________2014г.
Председатель НМС
______________________Т.А. Агошкова
Составитель: Кузнецов Е.Г., преподаватель ГБОУ СПО «ЖГК»
Рецензенты: Ежова Н.И., преподаватель, председатель ПЦК ГБОУ СПО «ЖГК»
Орешина Н.А., методист ГБОУ СПО «ЖГК»
СОДЕРЖАНИЕ
Введение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
ВВЕДЕНИЕ
УВАЖАЕМЫЙ СТУДЕНТ!
Методические указания по МДК02.01 «Микропроцессорные системы» для выполнения лабораторных работ созданы Вам в помощь для работы на занятиях, подготовки к лабораторным работам, правильного составления отчетов.
Приступая к выполнению лабораторной работы, Вы должны внимательно прочитать цель и задачи занятия, ознакомиться с требованиями к уровню Вашей подготовки в соответствии с федеральными государственными стандартами третьего поколения (ФГОС-3), краткими теоретическими и учебно-методическими материалами по теме лабораторной работы, ответить на вопросы для закрепления теоретического материала.
Все задания к лабораторной работе Вы должны выполнять в соответствии с инструкцией, анализировать полученные в ходе занятия результаты по приведенной методике.
Отчет о лабораторной работе Вы должны выполнить по приведенному алгоритму, опираясь на образец.
Наличие положительной оценки по лабораторным работам по МДК02.01 «Микропроцессорные системы» необходимо для получения допуска к экзамену, поэтому в случае отсутствия на уроке по любой причине или получения неудовлетворительной оценки за лабораторную Вы должны найти время для ее выполнения или пересдачи.
Внимание! Если в процессе подготовки к лабораторным работам или при решении задач у Вас возникают вопросы, разрешить которые самостоятельно не удается, необходимо обратиться к преподавателю для получения разъяснений или указаний в дни проведения дополнительных занятий.
Пособие содержит материалы для организации лабораторных работ по междисциплинарному курсу "Микропроцессорные системы" и является частью профессионального модуля ПМ02 «Применение микропроцессорных систем, установка и настройка периферийного оборудования», а также частью основной профессиональной образовательной программы по специальности СПО в соответствии с ФГОС по специальности 230113 Компьютерные системы и комплексы базовой и углубленной подготовки) в части освоения основного вида профессиональной деятельности (ВПД): 230113 Компьютерные системы и комплексы и соответствующих профессиональных компетенций (ПК):
1. ПК2.1. Создавать программы на языке ассемблера для микропроцессорных систем.
2. ПК2.2. Производить тестирование и отладку микропроцессорных систем.
С целью овладения указанным видом профессиональной деятельности и соответствующими профессиональными компетенциями обучающийся в ходе выполнения лабораторных работ должен:
иметь практический опыт:
- создания программ на языке ассемблера для микропроцессорных систем;
-тестирования и отладки микропроцессорных систем;
- применения микропроцессорных систем;
уметь:
- составлять программы на языке ассемблера для микропроцессорных систем;
- производить тестирование и отладку микропроцессорных систем (МПС);
- выбирать микроконтроллер/микропроцессор для конкретной системы управления;
- выявлять причины неисправностей и сбоев, принимать меры по их устранению;
знать:
- базовую функциональную схему МПС;
- программное обеспечение микропроцессорных систем;
- структуру типовой системы управления (контроллер) и организацию микроконтроллерных систем;
- методы тестирования и способы отладки МПС;
.
В пособии рассматриваются основы создания программ на ассемблере, а также средства отладки такого программного обеспечения. Изучение этих вопросов ведется на примере языка программирования микропроцессора КР580ВМ80А (Intel 8080), учебно-отладочного устройства “Эмулятор МПС580” и кросс-средств для персонального компьютера.
Целью данного пособия является привитие первичных навыков по программированию микропроцессорных систем на уровне микропроцессора (на языке ассемблера), а также ознакомление с аппаратными и программными средствами отладки таких систем и соответствующего программного обеспечения.
В основу пособия положено изучение системы команд микропроцессора КР580ВМ80А (зарубежный аналог - Intel 8080). Этот микропроцессор впервые увидел свет в 1974 году, однако до сих пор используется в относительно простых микропроцессорных устройствах. Кроме того, он стал своеобразной основой для появления и развития микропроцессоров следующих поколений. Основные принципы построения микропроцессора КР580ВМ80А и систем на его основе, заложенные более 25 лет назад, целиком находят свое отражение в современных изделиях. С этой точки зрения данный микропроцессор является своеобразной “классической учебной моделью” для первоначального ознакомления как с языком программирования микропроцессоров (ассемблером), так и с основными принципами проектирования и отладки систем на их основе.
Важнейшим этапом создания любой технической системы является ее отладка. Особенностью отладки микропроцессорных систем является нерасторжимость программных и аппаратных средств. Поэтому проектировщик таких систем должен владеть средствами отладки программного обеспечения и средствами комплексной отладки программной и аппаратной частей системы. Пособие знакомит студентов с такими средствами на примере учебно-отладочного устройства “Эмулятор МПС580” и кросс-средств проектирования и отладки программного обеспечения на персональном компьютере Turbo Debuger.
Пособие содержит примеры написания вычислительных и управляющих программ для микропроцессора КР580ВМ80А. На основе этих примеров предлагаются варианты заданий для самостоятельной индивидуальной работы, которые фактически являются и заданиями для лабораторных занятий по основам микропроцессорной техники. Пособие содержит все справочные материалы, необходимые для их выполнения.
Лабораторные работы 1 и 2 дают возможность исследования оперативных запоминающих устройств микропроцессорных систем статического и динамического типа, а также возможности задания различных способов адресации информации.
ЗАДАНИЯ ДЛЯ ДОМАШНЕЙ ПОДГОТОВКИ
Для выполнения лабораторной работы необходимо изучить теоретические вопросы, связанные с построением микропроцессорных систем на основе МП КР580ВМ80А. Эти вопросы включают:
1) Ознакомление с техническими характеристиками микропроцессора КР580ВМ80А (аналог Intel 8080): разрядность, объем адресуемой памяти, количество устройств ввода вывода и т.д.;
2) Ознакомление с программной моделью микропроцессора:
количество регистров, назначение, разрядность и правила использования регистров;
3) Ознакомление с типовой архитектурой микропроцессорных систем на основе изучаемого процессора;
4) Ознакомиться с назначением в типовой структуре шин микропроцессорной системы: шины данных, адреса, управления. Изучить понятие однонаправленной и двунаправленной шины, шины с тремя состояниями, понятия разрядности шин и чем оно определяется.
5) Изучение структуры, режимов работы и схему перехода к различным режимам работы микроЭВМ.
6) Изучение правил работы с числами в различных системах счисления. Перевод чисел из одной системы счисления в другую (двоичную, шестнадцатеричную, десятичную).
7) Правила выполнения арифметических и логических операций с числами в двоичной системе счисления. Таблицы истинности логических операций.
8)Ознакомление с языком программирования и системой команд МП КР580ВМ80А
9) Изучение правила записи программ на языке Ассемблера
Желаем Вам успехов!!!
РАЗДЕЛ 1
Тема 1.2 .Организация памяти микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №1
АДРЕСАЦИЯ ИНФОРМАЦИИ И ВЫЧИСЛЕНИЕ АДРЕСОВ
Учебные цели: Изучение основных методов адресации информации и обработки адресов по теме
Учебные задачи:
1.Исследование различных способов адресации информации при написании команд и программ;
2. Закрепление полученных теоретических знания по вопросам принципа адресации информации при программировании микропроцессорных систем.
3.Практически определять исполнительные адреса при различных способах адресации информации.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы.
Задачи лабораторной работы:
Используя специальные программные средства исследовать способы задания адресов ячеек памяти при составления команд и инструкций для программирования микропроцессорных систе;.
Практическое использование нового программного продукта.
Обеспеченность занятия:
Учебно-методическая литература:
- Нешумова К.А. Электронные вычислительные машины и системы. -М.: Академия., 2009,366 с.
- Калиш Г.Г. Основы вычислительной техники. – М.: Высшая школа, 2000 г.
- Коган Б.М. Электронные вычислительные машины и системы - М.:Энергоатомиздат, 1995,552 с.
- Кузин А.В., Жаворонков М.А. Микропроцессорная техника. – М., ИЦ Академия, 2007 г.
- Келим Ю.М. Вычислительная техника. Учебное пособие для студентов СПО:М.,Академия, 2007.-384.
Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.
Технические средства обучения:
- Персональный компьютер;
- Принтер.
Программное обеспечение:
- Операционная система Windows;
- Учебная программа VMSLAB 5.
Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Для выполнения операций, указанных в программе , процессор должен получить двоичные коды необходимых операндов, которые хранятся в оперативной памяти. Существует два различных принципа поиска операндов в памяти: ассоциативный и адресный.
В лабораторной работе изучаются некоторые варианты адресного поиска, который предполагает, что искомый операнд извлекается из ячейки оперативной памяти, номер которой формируется на основе информации в адресном поле команды.
В современных ЭВМ адресный код и исполнительный адрес, как правило, не совпадают. Таким образом, способ адресации можно определить как способ формирования исполнительного адреса операнда Аисп по адресному коду команды Ак.
Способов адресации существует достаточно много. Параметры процесса обработки информации существенно зависят от выбранного способа адресации. Одни способы позволяют увеличить объем адресуемой памяти без удлинения команды, но снижают скорость выполнения операции, другие ускоряют операции над массивами данных, третьи упрощают работу с подпрограммами и т.п.
В лабораторной работе предлагается изучить следующие методы адресации:
- прямой;
- косвенный;
- индексный;
- относительный.
Рассмотрим способы адресации операндов и команд.
Прямая адресация. Исполнительный адрес - адрес ячейки ОП, в которой хранится адресуемое слово, совпадает с адресной частью команды. Этот метод используется в ЭВМ в комбинации с другими методами адресации.
Прямая регистровая адресация. В адресном поле команды содержится адрес R регистра СОЗУ процессора, в котором хранится операнд .При таком способе адресации быстродействие ЭВМ повышается, так как нет необходимости извлекать операнды из ОП и команда имеет более короткий формат, так как регистров в СОЗУ обычно значительно меньше чем ячеек в оперативной памяти.
Косвенная адресация. В адресном поле команды указывается адрес ячейки оперативной памяти, содержащей другой адрес, который может быть исполнительным А или еще одним косвенным адресом (так называемая многоступенчатая косвенная адресация).
Таким образом, косвенная адресация может быть определена как "адресация адреса". Она используется в тех случаях, когда часто разрядов в адресной части команды недостаточно для указания всех адресов оперативной памяти ЭВМ.
Относительная адресация. При динамическом распределение памяти базовые адреса массивов изменяются в процессе выполнения программы, в результате адреса не могут быть зафиксированы в программе. Для обеспечения динамического распределения палили используют способ относительной адресации. Относительный адрес состоит из двух полей: В, указывающего базовый адрес Аб массива; D, представляющего собой относительный адрес Аотн Поле D принято называть смещение D операнда относительно начала массива.
Исполнительный адрес вычисляется по формуле Аисп = (В)+ D.
Индексная адресация. В этом случае адрес в команде представляется двумя полями. В поле В указывается базовый адрес массива А- оперативной памяти. Поле 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
-
03
индексная, косвенная, относительная
15
1
4
3
04
прямая, индексная, относительная
13
5
7
5
05
прямая, непосредственная, косвенная
5
-
-
-
06
относительная, непосредственная, прямая
11
-
3
6
07
индексная, относительная. прямая
12
3
7
7
08
непосредственная, индексная, косвенная
10
7
3
-
09
прямая, косвенная, непосредственная
5
-
-
-
10
прямая, индексная, косвенная
9
2
8
-
Инструкции по выполнению работы
В упрощенном виде все указанные методы адресации смоделированы программным путем и представлены в графической форме на экране монитора. Вся работа ведется в диалоговом режиме по командам, отображаемым на экране. Началу работы предшествует краткое объяснение цели работы и ее содержания. Для выполнения работы инициируется модуль start12.bat. Текст описания лабораторной работы содержится в файле «Лабораторная работа №12. После запуска программы, появляется возможность исследования различных способов адресации информации, используемых в запоминающих устройствах МПС.
Внимание! Выполняйте инструкции, появляющиеся на экране монитора.
Интерфейс программы «Прямая адресация»:
Интерфейс программы «Косвенная адресация»:
Интерфейс программы «Индексная адресация»:
Интерфейс программы «Относительно-индексная адресация»:
Интерфейс программы «Относительная адресация»:
Методика анализа результатов, полученных в ходе лабораторной работы:
Отметим, что выбор того или иного метода адресации в значительной степени определяет время выполнения команды. Самая быстрая адресация это регистровая, так как она не требует дополнительных циклов обмена по магистрали. Если же адресация требует обращения к памяти, то время выполнения команды будет увеличиваться за счет длительности необходимых циклов обращения к памяти. Понятно, что чем больше внутренних регистров у процессора, тем чаще и свободнее можно применять регистровую адресацию, и тем быстрее будет работать система в целом.
Порядок выполнения отчета по лабораторной работе:
1. Наименование и цель работы
2. Примеры исследуемых методов адресации. Изобразить форматы команд и способ формирования исполнительного адреса. (распечатка экрана программы или графическое отображение в форме таблиц)
3. Ответы на контрольные вопросы
4. Выводы. Сравнительный анализ различных методов адресации
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №1
АДРЕСАЦИЯ ИНФОРМАЦИИ И ВЫЧИСЛЕНИЕ АДРЕСОВ
Учебные цели: Изучение основных методов адресации информации и обработки адресов по теме
Учебные задачи:
1.Исследование различных способов адресации информации при написании команд и программ;
2. Закрепление полученных теоретических знания по вопросам принципа адресации информации при программировании микропроцессорных систем.
3.Практически определять исполнительные адреса при различных способах адресации информации.
Способы адресации бывают:
Регистровая адресация. Операнд разыскивается во внутреннем операнде МП. Всегда является однобайтовыми, потому что они не требуют данных и адресов вне МП.
Непосредственная адресация. Операнд поступает в программную память из следующего байта (иногда из двух байтов). Операнд следует команде непосредственно за КОП. Данные загружаются с помощью команды LXI SP, принадлежащие группе передачи данных.
Прямая адресация. Второй и третий байты команды указывают на адрес операнда. Они являются адресами в прямом способе адресации, тогда как при непосредственной адресации эти же байты были операндами.
Косвенная адресация. Пара регистров HL указывает на адрес операнда в памяти. Этот тип команды всегда однобайтовый. Соответствующий адрес памяти данных указывается содержимым пары HL, которая здесь играет роль адресного регистра.
Задание
В сумматоре (13 EMBED Equation.3 1415) АЛУ процессора находится число 3. К нему необходимо прибавить число 6 используя заданные способы адресации. Число 5 хранится в ОЗУ в ячейке№. Смещение хранится в индексном регистре №. или, при относительной адресации, в счетчике команд процессора.
Вар
Адресация
Ячейка №
Индексный
регистр №
Смещение
Счетчик команд
12
косвенная, индексная
9
5
3
-
Содержимое 13 EMBED Equation.3 1415= 3, индексного регистра 5=3, ячейки 9=5. Прибавить 2 к 13 EMBED Equation.3 1415, используя косвенную и индексную адресацию.
Косвенная.
13 SHAPE \* MERGEFORMAT 1415
КОП
ПА
косвенная
Поле А=7
- формат команды при косвенной адресации
13 SHAPE \* MERGEFORMAT 1415
КОП
ПА
индексная
Индкс Р5=3
Поле А=6
- формат команды при индексной адресации
Ответы на контрольные вопросы:
1.
2.
3.
4.
Выводы. Сравнительный анализ различных методов адресации
Каждая команда, выбираемая (читаемая) из памяти процессором, определяет алгоритм поведения процессора на ближайшие несколько тактов. Код команды говорит о том, какую операцию предстоит выполнить процессору и с какими операндами (то есть кодами данных), где взять исходную информацию для выполнения команды и куда поместить результат (если необходимо). Код команды может занимать от одного до нескольких байт, причем процессор узнает о том, сколько байт команды ему надо читать, из первого прочитанного им байта или слова. В процессоре код команды расшифровывается и преобразуется в набор микроопераций, выполняемых отдельными узлами процессора.
Большая часть команд процессора работает с кодами данных (операндами). Одни команды требуют входных операндов (одного или двух), другие выдают выходные операнды (чаще один операнд). Входные операнды называются еще операндами-источниками, а выходные называются операндами-приемниками. Все эти коды операндов (входные и выходные) должны где-то располагаться. Они могут находиться во внутренних регистрах процессора (наиболее удобный и быстрый вариант). Они могут располагаться в системной памяти (самый распространенный вариант). Наконец, они могут находиться в устройствах ввода/вывода (наиболее редкий случай). Определение места положения операндов производится кодом команды. Причем существуют разные методы, с помощью которых код команды может определить, откуда брать входной операнд и куда помещать выходной операнд. Эти методы называются методами адресации. Эффективность выбранных методов адресации во многом определяет эффективность работы всего процессора в целом.
Отметим, что выбор того или иного метода адресации в значительной степени определяет время выполнения команды. Самая быстрая адресация это регистровая, так как она не требует дополнительных циклов обмена по магистрали. Если же адресация требует обращения к памяти, то время выполнения команды будет увеличиваться за счет длительности необходимых циклов обращения к памяти. Понятно, что чем больше внутренних регистров у процессора, тем чаще и свободнее можно применять регистровую адресацию, и тем быстрее будет работать система в целом.
РАЗДЕЛ 1
Тема 1.2 .Организация памяти микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА № 2
ИССЛЕДОВАНИЕ РАБОТЫ ЗАПОМИНАЮЩИХ УСТРОЙСТВ РАЗЛИЧНОГО ТИПА
Учебные цели: 1. Изучение основных принципов построения оперативных запоминающих устройств статического и динамического типов и их работа
2.Исследование оперативных ЗУ статического и динамического типов
Учебные задачи:
1.Исследование работы и принципа организации оперативных ЗУ статического и динамического типа;
2. Закрепление полученных теоретических знания по вопросам организации запоминающих устройств;
3.Практически наблюдать принципы записи и считывания информации из ячеек памяти по командам процессора
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы.
- структуру типовой системы управления и организации микроконтроллерных систем;
- состояние производства и использования микропроцессорных систем.
Задачи лабораторной работы:
Используя специальные программные средства исследовать принципы записи и считывания данных из ячеек памяти статических и динамических ЗУ;
Практическое использование нового программного продукта.
Обеспеченность занятия:
Учебно-методическая литература:
- - Калиш Г.Г. Основы вычислительной техники. – М.: Высшая школа, 2000 г.
- Коган Б.М. Электронные вычислительные машины и системы - М.:Энергоатомиздат, 1995,552 с.
- Кузин А.В., Жаворонков М.А. Микропроцессорная техника. – М., ИЦ Академия, 2007 г.
- Келим Ю.М. Вычислительная техника. Учебное пособие для студентов СПО:М.,Академия, 2007.-384.
- Сергеев Н.П., Вашкевич Н.П. Основы вычислительной техники. Изд.-М., Академия,2008 г,312с
Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.
Технические средства обучения:
- Персональный компьютер;
- Принтер.
Программное обеспечение:
- Операционная система Windows;
- Учебная программа VMSLAB 9.
Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Чаще всего ЗУ выполнены в виде ЗУ с произвольной выборкой, которые имеют ряд преимуществ перед ЗУ с последовательным доступом. Полупроводниковые ОЗУ подразделяются на: - статические оперативные запоминающие устройства (СОЗУ); - динамические оперативные запоминающие устройства (ДОЗУ).
Статическое запоминающее устройство. Структура микросхем статических ОЗУ (рис.2.1) включает матрицу накопителя, дешифраторы кода адреса строк и столбцов, устройство ввода-вывода (УВВ). Для управления ИС предназначены: адресные сигналы Ап_1 -АО, обеспечивающие обращение к заданному ЭП, сигнал "Запись-Считывание" (ЗС), определяющий режим ИС, сигнал "Выборка микросхемы"(ВМ),разрешающий доступ к накопителю по информационным входу D и выходу F.
Матрица накопителя состоит из строк и столбцов, на пересечениях которых размещены элементы памяти. Основу ЭП, вариант схемотехнической реализации которого приведен на рис. 2.2а), составляет статический триггер на транзисторах VTI-VT4. Транзисторы VT5, VT6 являются ключами, через которые триггер подключается к информационным разрядным шипам РШО и РШI. Состояние ключей зависит от уровня сигнала на шине строки Xi: при 1 ключи открыты и информация из разрядных шин записывается в триггер или считывается из него в разрядные шины и далее на выход; при О ключи закрыты, и триггер находится в режиме хранения.
Рисунок 2.1
Для обращения к ИС для записи 0 или 1 следует подвести эту информацию ко входу D, затем подать код адреса, разрешающий сигнал ВМ и сигнал ЗС, соответствующий режиму записи, при указанных сигналах возбуждается заданная строка, выбранная дешифратором кода адреса строк, и в результате этого открывается доступ по информационным (разрядным) шинам ко всем ЭП данной строки.
Обычно требования к информационной емкости ОЗУ значительно превосходят возможности одной ИС памяти как в отношении разрядности, так и числа хранимых слов. Поэтому при построении ЗУ ИС объединяют в модули, которые вместе с регистрами и устройством управления образуют функционально-законченный блок ОЗУ.
Запоминающая ячейка динамического ОЗУ. В отличие от статических ЗУ, которые хранят информацию пока включено питание, в динамических ЗУ необходима постоянная регенерация информации, однако при этом для хранения одного бита в ДОЗУ нужны всего 1-2 транзистора и накопительный конденсатор (рис. 2.2. Такие схемы более компактны.
Естественно, что в микросхеме динамического ОЗУ есть один или несколько тактовых генераторов и логическая схема для восстановления информационного заряда, стекающего с конденсатора. Это несколько "утяжеляет" конструкцию ИМС.
Рисунок 2.2. Запоминающая ячейка динамического ОЗУ.
В лабораторной работе изучается типичная ячейка динамического ОЗУ на трех транзисторах.. Бит информации хранится в виде заряда емкости затвор-подложка (Cg).
Для опроса ячейки подается импульс на линию предварительной зарядки и открывается транзистор T1. При этом выходная емкость Cr заряжается до уровня Ec и возбуждается линия выборки при считывании.
Операция ЗАПИСЬ выполняется путем подачи соответствующего уровня напряжения на линию записи данных с последующей подачей импульса на линию выборки при записи. При этом транзистор T1 включен и Cg заряжается до потенциала линии записи данных.
Период регенерации зависит от температуры и для современных приборов находится, как правило, в интервале 1-3 мс при температуре от 0 до 55С. Регенерация ячейки динамического ОЗУ выполняется путем считывания хранимого бита информации, передачи его на линию записи данных и последующей записи этого бита в ту же ячейку при помощи импульса, подаваемого на линию выборки при записи.
Вопросы для закрепления теоретического материала к лабораторной работе:
1.Как осуществляется обмен данными между микропроцессором и памятью?
2. Какие причины ограничивают быстродействие ОЗУ?
3. Предложите способ наращивания емкости памяти при использовании БИС с организацией 1Кх1бит; 1Кх8бит.
4. Назовите достоинства и недостатки статических и динамических ЗУ.
5. Почему нецелесообразно использовать динамические ЗУ для построения небольшой по объёму памяти?
6. Какой тип памяти применяют при построении КЭШ-памяти?
7. Какая технология производства интегральных схем преимущественно используется при изготовлении микросхем памяти? Чем это можно объяснить?
8. Как выполняется регенерация динамического ЗУ?
Задания для лабораторного занятия:
1. Исследовать работу статического ЗУ в режиме записи и считывания информации.
Выполнить операции, указанные в п.1.1. и провести запись исходных данных по 8 последовательно расположенным адресам, начиная о адреса А 1 в соответствии с табл.1
1.2. Зарисовать временную диаграмму записи данных в ЗУ
Таблица 1
№ п/п
Адрес
Исходные
данные
Запись
Чтение
1
2
3
4
5
6
7
8
0001
0010
0011
0100
0101
0110
0111
1000
1.3. Выполнить операции, указанные в п.1.2., и провести считывание записанной в ЗУ информации. Результаты измерений занести в таблицу (табл.2). Провести сравнение результатов записи с исходной информацией.
1.4. Зарисовать временную диаграмму считывания данных из ЗУ
Исследование ЗУ матричного типа
2.1. Выполнить операции, указанные в п.2.1. и провести запись исходных данных по 8 последовательно расположенным адресам, начиная о адреса А 1 в соответствии с табл.2
Таблица 2
№ п/п
Адрес
Исходные
данные
Запись
Чтение
1
2
3
4
5
6
7
8
0001
0010
0011
0100
0101
0110
0111
1000
Выполнить операции, указанные в п.2.2., и провести считывание записанной в ЗУ информации. Результаты измерений занести в таблицу (табл.2). Провести сравнение результатов записи с исходной информацией.
Исследование ячейки ЗУ динамического типа
3.1 Выполнить операции, указанные в п.3.1. и провести запись данных в динамическую ячейку памяти. Убедиться в том, что при записи логической «1», происходит накопление заряда на конденсаторе МОП транзистора Т3
3.1. Выполнить операции, указанные в п.3.1., и провести считывание записанной в ячейку ЗУ информации. Убедиться в том, что при считывании «1» информация теряется (т.е. конденсатор разряжается)
Инструкции по выполнению работы
Лабораторная работа состоит из двух частей:
- в первой изучается статическое запоминающее устройство, а также принцип объединения отдельных устройств для построения памяти большой емкости;
- во второй изучаются особенности работы динамической памяти.
В лабораторной работе используются программные модели различных
ЗУ. Для выполнения работы надо инициировать файл START9.BAT.
Исследование статического ЗУ
Для этого :
- при нажатии цифры 1, предлагается интерфейс программы для исследования ЗУ статического типа;
- программа работает в интерактивном режиме и предлагает выполнять определенные действия с помощью клавиатуры;
1.1. Исследование работы статического ЗУ в режиме записи
- выбирается режим ЗАПИСИ данных;
- набирается адрес любой ячейки памяти от ячейки с адресом 0 до F в двоичном коде;
- предлагается записать в ячейку памяти данные 0 или 1;
- при соответствующем выборе на экране монитора появится новая информация о том, что запись произошла. На схеме возникнет состояние триггера ячейки, временная диаграмма сигналов ЗАПИСИ в ОЗУ и ячейка примет состояние записанной информации 0 или 1.
- заполнить таблицу 1
1.2 Исследование работы статического ЗУ в режиме считывания
- выбирается режим СЧИТЫВАНИЯ данных;
- далее, выполнить операции, указанные в п.1.1 и провести считывание записанной в ЗУ информации по тем же адресам. Результаты занести в таблицу (табл.1). Провести сравнение результатов записи с исходной информацией.
Интерфейс программы исследования ОЗУ статического типа:
2 Исследование матрицы накопителя ЗУ
Для этого :
- при нажатии цифры 2, предлагается интерфейс программы для исследования ЗУ матричного типа;
- программа работает в интерактивном режиме и предлагает выполнять определенные действия с помощью клавиатуры;
2.1. Исследование работы накопителя ЗУ в режиме записи
- выбирается режим ЗАПИСИ данных;
- набирается адрес любой ячейки памяти от ячейки с адресом 0 до F в двоичном коде;
- предлагается записать в ячейку памяти четырехразрядные данные 0 - F;
- при соответствующем выборе на экране монитора появится новая информация о том, что запись произошла. На схеме возникнет состояние триггера ячейки, временная диаграмма сигналов ЗАПИСИ в ОЗУ и ячейка примет состояние записанной информации 0 - F .
- заполнить таблицу 1
2.2 Исследование работы накопителя ЗУ в режиме считывания
- выбирается режим СЧИТЫВАНИЯ данных;
- далее, выполнить операции, указанные в п.2.1 и провести считывание записанной в ЗУ информации по тем же адресам. Результаты занести в таблицу (табл.2). Провести сравнение результатов записи с исходной информацией.
3 Исследование ячейки памяти динамического ЗУ
Для этого :
- при нажатии цифры 3, предлагается интерфейс программы для исследования ЗУ динамического типа;
- программа работает в интерактивном режиме и предлагает выполнять определенные действия с помощью клавиатуры;
3.1. Исследование работы ячейки динамического ЗУ в режиме записи
- выбирается режим ЗАПИСИ данных;
- на линию ЗАПИСЬ подаем с клавиатуры ПК требуемый сигнал;;
- предлагается записать в ячейку памяти логической « 1»;
- при соответствующем выборе на экране монитора появится новая информация о том, что запись произошла. На схеме возникнет состояние составного транзистора ячейки, и ячейка примет состояние записанной информации «1» (отобразится изменением цвета накопление заряда перехода МОП транзистора Т3) .
- в правом окне интерфейса программы будут даны разъяснения происходящих изменений состояния транзисторов ячейки памяти. Внимательно ознакомиться с этими разъяснениями.
3.2 Исследование работы ячейки динамического ЗУ в режиме считывания
- выбирается режим СЧИТЫВАНИЯ данных;
- на линия СЧИТЫВАНИЕ подаем с клавиатуры требуемый сигнал
- далее, выполнить операции, указанные в п.3.1 и провести считывание записанной в ячейку ЗУ информации.
Рис.2 Интерфейс программы исследования ОЗУ динамического типа:
Убедиться в том, что при считывании изменится состояние транзисторов ячейки и потенциал уровня «1» пойдет по линии считывания. Информация о логической «1» в ячейке разрушится;
- в правом окне интерфейса программы будут даны разъяснения происходящих изменений состояния транзисторов ячейки памяти. Внимательно ознакомиться с этими разъяснениями.
Содержание отчета.
1. Наименование и цель работы
2. Таблицы полученных экспериментов;
3. Временную диаграмму в циклах ЗАПИСЬ и ЧТЕНИЕ;
4. Схему работы запоминающего элемента в динамической памяти.
5. Ответы на контрольные вопросы.
6. Анализ полученных результатов6.
Методика анализа результатов, полученных в ходе лабораторной работы:
Оперативная память является одним из важнейших элементов компьютера. Именно из нее процессор берет программы и исходные данные для обработки, в нее он записывает полученные результаты. Название “оперативная” эта память получила потому, что она работает очень быстро, так что процессору практически не приходится ждать при чтении данных из памяти или записи в память. Однако содержащиеся в ней данные сохраняются только пока компьютер включен. При выключении компьютера содержимое оперативной памяти стирается. Часто для оперативной памяти используют обозначение RAM (Random Access Memory, то есть память с произвольным доступом) .
При обращении к памяти МП выставляет по ША адрес ячейки памяти (ЯП), а по ШУ - сигнал MEMRD в цикле чтения памяти или MEMWR в цикле записи (рис.3).
13 EMBED Paint.Picture 1415
Рис. 3 Временная диаграмма работы блока памяти
Образец отчета по лабораторной работе
ЛАБОРАТОРНАЯ РАБОТА № 2
ИССЛЕДОВАНИЕ РАБОТЫ ЗАПОМИНАЮЩИХ УСТРОЙСТВ РАЗЛИЧНОГО ТИПА
Учебные цели: 1. Изучение основных принципов построения оперативных запоминающих устройств статического и динамического типов и их работа
2.Исследование оперативных ЗУ статического и динамического типов
Учебные задачи:
1.Исследование работы и принципа организации оперативных ЗУ статического и динамического типа;
2. Закрепление полученных теоретических знания по вопросам организации запоминающих устройств;
3.Практически наблюдать принципы записи и считывания информации из ячеек памяти по командам процессора
1. Исследование работы статического ЗУ
Исследование режима записи и считывания
Таблица 1
№ п/п
Адрес
Исходные
данные
Запись
Чтение
1
2
3
4
5
6
7
8
0001
0010
0011
0100
0101
0110
0111
1000
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
Временная диаграмма записи. Операция записи заключается в том, что активное устройство (микропроцессор), захватив магистраль, пытается передать данные в ячейку памяти ОЗУ. На рис. 2. приведена временная диаграмма записи при указании адреса. Последовательность событий следующая.
Момент t1,. Захватив магистраль, активное устройство выдает сигнал по линии С1 (запись), адрес и данные, которые нужно записать по этому адресу.
Момент t2. Через время, не меньшее 150 не (75 нс на «успокоение» магистрали и 75 нсзапас), активное устройство выдает сигнал сопровождения адреса MSYN.
Момент t3. ОЗУ, опознаёт адрес и принимает информацию с шины данных в соответствующую ячейку. Приняв данные, это устройство отвечает ведущему сигналом SSYN.
Рис. 2. Временная диаграмма записи
Момент t4. Получив сигнал SSYN, активное устройство «узнаёт», что запись состоялась, и поэтому снимает с магистрали все сигналы, кроме сигнала BBSY,
Момент t5. Убедившись в том, что ответный сигнал SSYN воспринят активным устройством (о чем говорит снятие сигнала MSYN), ОЗУ снимает сигнал SSYN.
Момент t6. Активное устройство, дождавшись снятия сигнала SSYN, освобождает магистраль, т. е. снимает сигнал BBSY.
Временная диаграмма чтения. При чтении активное устройство пытается получить слово данных от некоторого программно-доступного элемента, например от ячейки ОЗУ. При правильном указании адреса реализуется временная диаграмма, показанная на рис. 3. При отсутствии абонента с указанным адресом возникает зависание, которое примерно через 10 мкс устраняется искусственной выдачей ответного сигнала от специальной схемы, как и в предыдущем случае. Приведем последовательность событий при чтении.
Момент t1. Захватив магистраль, активное устройство выдает адрес ячейки памяти, из которой нужно извлечь данные (одно слово).
Рис. 3. Временная диаграмма чтения
Момент t2. Активное устройство формирует сигнал MSYN, подтверждающий истинность адреса.
Момент t3. Схемы дешифрации адреса выбирают нужную ячейку ОЗУ.
Момент t4. Активное устройство, получив сигнал SSYN, узнаёт о том, что через время, большее 75 не, информацию можно будет принять с шины данных. Выждав 75нс (или более), устройство принимает информацию.
Момент t5. Приняв информацию, активное устройство снимает адрес и сигнал MSYN, так как чтение уже состоялось и эти сигналы утратили актуальность.
Момент t6. Оперативное запоминающее устройство снимает данные и сигнал SSYN, так как оно узнало (по снятию сигнала с линии MSYN) о том, что данные уже приняты активным устройством.
Исследование работы матричного ЗУ
Таблица 1
№ п/п
Адрес
Исходные
данные
Запись
Чтение
1
2
3
4
5
6
7
8
0001
0010
0011
0100
0101
0110
0111
1000
0101
1010
1101
0011
1110
1000
0111
1111
0101
1010
1101
0011
1110
1000
0111
1111
0101
1010
1101
0011
1110
1000
0111
1111
Исследование ячейки памяти динамического ЗУ
Запоминающая ячейка динамического ОЗУ. В отличие от статических ЗУ, которые хранят информацию пока включено питание, в динамических ЗУ необходима постоянная регенерация информации, однако при этом для хранения одного бита в ДОЗУ нужны всего 1-2 транзистора и накопительный конденсатор (рис. 4. Такие схемы более компактны.
Естественно, что в микросхеме динамического ОЗУ есть один или несколько тактовых генераторов и логическая схема для восстановления информационного заряда, стекающего с конденсатора. Это несколько "утяжеляет" конструкцию ИМС.
Рисунок 4. Запоминающая ячейка динамического
В лабораторной работе изучается типичная ячейка динамического ОЗУ на трех транзисторах.. Бит информации хранится в виде заряда емкости затвор-подложка (Cg).
Для опроса ячейки подается импульс на линию предварительной зарядки и открывается транзистор T1. При этом выходная емкость Cr заряжается до уровня Ec и возбуждается линия выборки при считывании.
Операция ЗАПИСЬ выполняется путем подачи соответствующего уровня напряжения на линию записи данных с последующей подачей импульса на линию выборки при записи. При этом транзистор T1 включен и Cg заряжается до потенциала линии записи данных.
Период регенерации зависит от температуры и для современных приборов находится, как правило, в интервале 1-3 мс при температуре от 0 до 55С. Регенерация ячейки динамического ОЗУ выполняется путем считывания хранимого бита информации, передачи его на линию записи данных и последующей записи этого бита в ту же ячейку при помощи импульса, подаваемого на линию выборки при записи.
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы
ОЗУ предназначено для хранения переменной информации; оно допускает изменение своего содержимого в ходе выполнения вычислительного процесса. Таким образом, процессор берёт из ОЗУ код команды и, после обработки каких-либо данных, результат обратно помещается в ОЗУ. Причем возможно размещение в ОЗУ новых данных на месте прежних, которые при этом перестают существовать. В ячейках происходит стирание старой информации и запись туда новой. Из этого видно, что ОЗУ является очень гибкой структурой и обладает возможностью перезаписывать информацию в свои ячейки неограниченное количество раз по ходу выполнения программы.
Основной составной частью микросхемы ОЗУ является массив элементов памяти, объединённых в матрицу накопителя. Элемент памяти (ЭП) может хранить один бит информации. Каждый ЭП обязательно имеет свой адрес. Для обращения к ЭП необходимо его “выбрать” с помощью кода адреса, сигналы которого подводят к соответствующим выводам микросхемы.
В качестве элемента памяти в статическом ЗУ используются триггера на биполярных или МДП - транзисторах. Число состояний триггера равно двум, что позволяет использовать его для хранения двоичной единицы информации. Получив заряд один раз, ячейка такой памяти способна хранить его сколь угодно долго, по крайней мере до тех пор, пока будет питание. Естественно, что в данном случае исчезают непроизводительные задержки на обновление информации, что приводит к ускорению работы с такими микросхемами. Однако статические ЗУ стоят существенно дороже, чем динамические. В результате, сфера применения микросхем статических ЗУ ограничена теми областями, для которых требуется небольшой объем памяти, а значительное быстродействие.
Устройства динамической памяти базируются иеся на способности сохранять электрический заряд. Микросхемы динамических ОЗУ отличаются от микросхем статических ОЗУ большей информационной ёмкостью, что обусловлено меньшим числом компонентов в одном элементе памяти и, следовательно, более плотным их размещением в полупроводниковом кристалле.
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №3
Запись и выполнение простых программ
Учебные цели: исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ.
Учебные задачи:
1. Исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ.
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления;
Практическое использование нового программного продукта.
Обеспеченность занятия:
Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
Технические средства обучения:
- Персональный компьютер;
- Принтер.
Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
При изучении специализированных микропроцессорных устройств рассматриваются приемы проектирования как аппаратных, так и программных средств МПС.
Проектирование программных средств требует знаний, необходимых для выбора метода и алгоритма решения задач, входящих в функции микропроцессорного устройства, для составления программ (часто с использованием языков низкого уровня – языка кодовых комбинаций, языка Ассемблера), а также умения использовать средства отладки программ.
Важнейшим этапом создания любой технической системы является ее отладка. Особенностью отладки микропроцессорных систем является нерасторжимость программных и аппаратных средств. Поэтому проектировщик таких систем должен владеть средствами программирования и отладки программного обеспечения системы. Пособие знакомит студентов с такими средствами на примере учебно-отладочного устройства – программы - эмклятора“КР580” используемого при отладке программного обеспечения на персональном компьютере.
Пособие содержит примеры написания вычислительных и управляющих программ для микропроцессора КР580ВМ80А. На основе этих примеров предлагаются варианты заданий для самостоятельной индивидуальной работы, которые фактически являются и заданиями для лабораторных занятий по основам микропроцессорной техники.
Интерфейс программы: 1 - поле исследуемых программ; 2 – цифровой дисплей; 3 – порт ввода; 4 – порт вывода; 5 – область стековой памяти; 6 - содержимое регистров общего назначения; 7 – флаги регистра признаков; 8 – оперативная память; 9 – программный счетчик (счетчик команд); 10 –указатель стека
Интерфейс выбора заданий:
Учебно-отладочное устройство (УОУ) предназначено для практического овладения студентами колледжа принципами построения микро-ЭВМ различного назначения на базе микропроцессора КР580ВМ80А, для обучения программированию указанного микропроцессора, а также для отладки программного обеспечения этих микро-ЭВМ. Эмулятор по структуре представляет собой универсальную микро-ЭВМ и может быть использован для моделирования процессов в простых системах управления технологическими процессами при условии оснащения соответствующим программами. Тактовая частота микропроцессора в эмуляторе– 2 МГц.
Учебная программа «SHELL» предназначена для знакомства с особенностями построения микро – ЭВМ на микропроцессоре с фиксированным набором команд и может быть использована для исследования методов программирования и работы БИС, входящих в микропроцессорный комплект серии К580. Микро – ЭВМ при создании и исследовании систем управления различными объектами. Она является легко осваиваемыми и удобным средством для отладки относительно небольших (до 1500 строк) программ пользователя.
Рабочие зоны эмулятора
Экран эмулятора состоит из 6 зон. Зона №1 представляет собой экран с исходным текстом программы на ассемблере. Курсор, представляющий собой символ «(» указывает на команду, которая выполняется следующей. Счетчик команд РС указывает номер линии с выполняемой командой. Зона №2 – шесть семи сегментных индикаторов с точкой. Запись в них осуществляется посредством команды OUT 7075, где адрес порта составляет номер индикатора. Таким образом команда OUT 70 запишет в первый индикатор значение регистра А. А команда OUT 73 запишет в четвертый индикатор регистра А. Соответствующие сегменты индикаторов к битам регистра А приведены на рис.3.2
Если соответствующие сегмент индикатора включен, то на мониторе он светится ярким цветом, иначе его видно блеклым цветом.
Зона №3 представляет собой окно, в котором можно просматривать и изменять содержимое памяти.
Зона №4 – это два регистра ввода вывода. Верхний представляет собой регистр ввода. Значение его получить командой IN 80. При этом в регистре А скажется значение этого порта.
Регистр вывода выполнен в виде светодиодов. Вывод в него осуществляется командой OUT 90. При этом значения светодиодов устанавливаются соответственно битам регистра А.
Существует еще один регистр вывода – звуковой. Включение динамика осуществляется записью не нулевого значение регистра А командой OUT 60. Если в регистре А – 0, то динамик отключится.
Зона №5 содержит значения каждого из регистров микропроцессора КР580. Для записи данных в регистры необходимо нажать клавишу, соответствующую номеру регистра. Регистр А имеет №1 и т.д. После введения номера регистра появится окно, для записи данных. Данные – это числа в шестнадцатиричной системе от 01 до FF.
И наконец, зона №6 указывает на область памяти, на которую ссылается регистр SP.
Описание клавиш эмулятора
Клавиши используемые для управления ходом выполнением программы.
Клавиша F2 используется для перезагрузки программы.
Нажав клавишу F4 ваша программа будет выполняться до тех пор, пока не будет достигнуто одно из следующих событий:
- Программный счетчик РС достигнет той строки, на которой стоял курсор.
Пользователь не нажимает клавишу ESC.
Программа завершит свое выполнение с помощью команды HLT.
Возникнет какая либо ошибка (например, синтаксическая).
После того как возникли две предыдущие ситуации, появится окно, в котором будет написана ситуация, из-за которой программа прекратила свое выполнение, строка в которой произошло событие, и варианты действий. Если вы нажмете клавишу 0, то эмулятор реинициализируется и можно будет снова начать выполнение программы. Если вы нажмете клавишу 1, то вы выйдете из эмулятора. Нажав клавишу 2, вы сможете спрятать окно с сообщением до повторного нажатия этой клавиши. Это дает возможность просмотреть результаты работы вашей программы.
С помощью клавиши F9 эмулятор будет выполнять вашу программу до возникновения событий, описанных выше. С помощью клавиш курсора (клавиш со стрелками) вы можете перемещаться по вашей программе вверх/вниз и просматривать её.
Для просмотра памяти используйте клавиши [и]. Клавиша [сдвигает содержимое в зоне №3 на одну ячейку назад, а клавиша] – на одну ячейку вперёд. Для того чтобы редактировать содержимое памяти, нажмите клавишу М. Появится окно, в котором вас спросят об адресе ячейки памяти. Введите адрес, в пределах от 0000h до 1000h и нажмите Enter. Затем в диалоговом окне введите содержимое ячейки – от 00h до FFh.
Для просмотра содержимого стека используются клавиши + и -.
Для изменения содержимого вводного порта используйте клавиши 18 – где клавиша 1 – соответствует 0 биту регистра, и т.д., вплоть до клавиши 8, которая соответствует седьмому биту входного регистра. Повторное нажатие клавиши инвертирует соответствующий бит регистра.
Для изменения выходного регистра пользуйтесь клавишами Alt-1Alt-8.
3.2 Описание программы MENU
Программа MENU предназначена для запуска лабораторных программ. Эта программа, как и программа SHELL состоит из нескольких зон.
Зона №1 – главная зона этой программы. В ней вы можете выбрать, какую программу необходимо загрузить. В этом окне вы увидите название и номер лабораторной работы. Выберите нужную работу и нажмите клавишу Enter или клавишу R. Появится второе окно, в котором вам предложат загрузить нужную программу из лабораторной работы. Выберите нужную программу с помощью курсора и нажмите Enter – для выполнения эмулирования этой программы. Если вместо клавиши R (или Enter) вы нажмёте клавишу E – то вы сможете отредактировать исходный текст программы. После выхода из редактора загрузится эмулятор с текстом изменённой программы.
3.3 Описание программы EDITOR
Программа EDITOR нужна для редактирования уже существующих программ, или для создания новых. При запуске этой программы вы увидите главный (и единственный () экран программы. Вверху будет строчка статуса, в которой показывается информация о тексте, который редактируется. В остальной части экрана будет сам редактируемый текст. По тексту можно будет передвигаться с помощью клавиш курсора (клавиш со стрелками). Текущая редактируемая программа выделена более ярким цветом, чем остальные. Клавишами «(» и «(» можно передвигать курсор по длине редактируемой строки, а клавишами «(» и «(» - по редактируемому тексту. Клавиши с буквами и цифрами – изменяется текст. Нажатием клавиши Backspace – удаляется символ слева от курсора. Клавишей Delete – справа от курсора. Если курсор находится в конце редактируемой строки и вы нажали клавишу Delete, то две строки (текущая и следующая) объединяются в одну. Нажав клавишу Enter вы разбиваете строку в месте положения курсора на две строки – первая часть (до курсора) остается на месте, а вторая часть переносится на следующую.
После того, как вы закончили править текст программы, нажмите клавишу Esc – программа запишет все изменения и завершит свою работу.
Вопросы для закрепления теоретического материала к лабораторной работе:
Что такое мнемоническое имя команды микропроцессора?
Определите команды, которые следовало бы использовать для выполнения перечисленных действий:
- переслать данные в аккумулятор из конкретной области памяти, на которую указывают второй и третий байты команды;
- записать копию содержимого аккумулятора в область памяти, на которую указывает содержимое регистровой пары ВС;
- загрузить регистр В данными, содержащимися во втором байте команды;
- переслать данные из регистра С в регистр В;
- записать в область памяти ААСЕ копию содержимого аккумулятора;
- загрузить содержимое аккумулятора в регистр 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
Листинги программ находятся в тексте описания лабораторной работы.
Внимание: Количество выполняемых заданий назначает преподаватель
Инструкции по выполнению работы
Микропроцессор КР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. Программа запустится и через некоторое время появится стартовое сообщение. Нажмите любую клавишу, появится главный интерфейс программы с выбранной программой для исследования в окне исследуемых программ. Теперь можно приступать к её исследованию.
Задание 1: Исследование программы 2.1
1.1 Ввести программу 2.1 в микро – ЭВМ
1.2 Записать исследуемое число по адресу 0010
1.3 Проверить результат выполнения программы по числу записанному в ячейке 0011
1.4 Составьте таблицу 1 содержимого регистров микропроцессора при выполнении программы 3.1 с командой CMA при выполнении программы по шагам.
Таблица 1
Содержимое регистров после выполнения каждой команды программы 3.1
Регистры
МП
Шаг программы (команда, после которой анализируется содержимое регистров)
0 шаг
(начало)
1шаг
LXI H
2 шаг
MOV A,M
3шаг
CMA
4 шаг
INX HL
5 шаг
MOV M,A
6 шаг
HLT
A
FL
H
L
M1=0010
M2=0011
Задание 2: Исследование программы 2.2
2.1Вызвать окно выбора задания и в меню выбрать программу 2.2
2.2 Занести в ячейки 0010 и 0011 сравниваемые числа
2.3 Результат выполнения программы находится в регистре В
2.4 Проконтролировать содержимое ячеек памяти и регистров микропроцессора, участвующих в работе программы
2.5 Графически отобразить выполнение команды lda 0010
13 EMBED Word.Picture.8 1415
Графическое представление команды загрузки аккумулятора
Задание 3: Исследовать работу программы 2.3
3.1 Загрузить программу 2.3 в память
3.2 Записать данные в ячейки памяти 0010 и 0011
3.3 Результирующее число находится в ячейке, адресуемой парой регистров ВС
3.4 Составьте таблицу 2 содержимого регистров микропроцессора при выполнении программы 3.3 с командой ADD M при выполнении программы по шагам.
Таблица 2
№
Команда
A
FL
HL
М1/данные
М2/данные
М3/данные
ВС
DE
1
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
При выполнении заданий №№ 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 в регистр ВС
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
mov a,m передать данные в аккумулятор из ячейки HL
cma инвертировать число в аккумуляторе
mov d,a передать содержимое аккумулятора в регистр D
hlt останов программы
Методика анализа результатов, полученных в ходе лабораторной работы
Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия.
Во всех программах был использован следующий метод передачи параметров:
Первый 8-разрядный параметр передается в аккумуляторе, второй 8-разрядный параметр- регистре В, а третий- в регистре С.
Первый 16-разрядный параметр передается в регистрах Н и L, при этом старший байт- в регистре Н. Второй 16-разрядный параметр передается в регистрах D и Е со старшим байтом в D.
Большее число параметров передается прямо или косвенно. Вход в программу осуществляется с помощью .
Для большинства коротких программ было определена процедура выполнения отдельных команд.
Порядок выполнения отчета по лабораторной работе:
Цель и наименование работы:
Перечень команд передачи данных;
Исследуемые программы с комментариями:
Заполненные таблицы результатов исследования программ:
Графическое представление выполнения команд
Ответы на контрольные вопросы:
Анализа результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
Лабораторная работа № 3.
Запись и выполнение простых программ
Учебные цели: исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ.
Учебные задачи:
1. Исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ.
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Оборудование: ПК IBM/PC или совместимый с программным эмулятором КР580.
Порядок выполнения работы.
Задание №1.
Программа 2.1.
LXI HL,0010 // записать число (адрес) 0010h в регистровую пару HL.
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шаг
LXI H
2 шаг
MOV A,M
3шаг
CMA
4 шаг
INX HL
5 шаг
MOV M,A
6 шаг
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.
Задание №3.
Программа2.3. – сложение двух чисел.
Слагаемые находятся в ячейках памяти 0010h и 0011, и имеют значение 15h и 01h соответственно. Результат находится в ячейке 0012h и после выполнения программы имеет числовое значение 16h.
Таблица 2
№
Команда
A
FL
HL
М1/данные
М2/данные
М3/данные
ВС
1
lxi hl 0010
0
-
0010
15h
00
00
0000
2
lxi bc, 0011
0
-
0010
15h
01h
00
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.
Задание №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.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия.
Разработанные программы позволили использовать, исследовать и анализировать команды с различными способами адресации. Используя различные способы адресации можно получить более эффективное исполнение программы.
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №4
Исследование программ ввода вывода
Учебные цели: Исследование методов подключения и организации обмена информацией с простейшими устройствами ввода – вывода.
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления;
Для ввода данных используется порт с адресом 80, а для вывода – с адресом 90;
Практическое использование нового программного продукта.
Обеспеченность занятия:
Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
Технические средства обучения:
- Персональный компьютер;
- Принтер.
Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
К командам ввода – вывода КР580ВМ80 относится команды IN и OUT . При выполнении команды IN микро – ЭВМ считывает число из входного устройства с адресом микро – ЭВМ записывает число из аккумулятора в выходное устройство с адресом . Так как адрес устройства указывается в одном байте, то с помощью этих команд микро – ЭВМ может обмениваться информацией не более чем 256 внешними устройствами.
В качестве простейших устройств ввода – вывода могут использоваться восьми разрядные регистры.
Вопросы для закрепления теоретического материала к лабораторной работе:
С какими регистрами микропроцессора могут оперировать команды IN, OUT?
Почему после выполнения команды ввода данных нельзя использовать команду условного перехода?
С помощью каких машинных циклов выполняется команда IN?
С помощью каких машинных циклов выполняется команда OUT?
Сколько состояний требуется для выполнения команд IN и OUT.
Какие действия выполняет микропроцессор в каждом такте при выполнении команд IN и OUT?
Задания для лабораторного занятия:
Задание №1:
Изучить способы организации обмена информацией между микро – ЭВМ и ВУ;
Исследовать программу П3.1
Задание №2:
Выполнить программу П3.1 в пошаговом режиме. Информация после выполнения каждого шага отображается на экране. Заполнить таблицу 1
Изобразить временные диаграммы команды IN 80.. Пояснить, какими действиями выполняется МП в каждом машинном цикле.
Задание №3:
1.Разработать программу поочередного включения 1-3-5-7 разрядов светодиодов входного устройства. Информация должна поступать из регистра С.
Листинги программ находятся в тексте описания лабораторной работы.
Внимание: Количество выполняемых заданий назначает преподаватель
Инструкции по выполнению работы
Задание №1:
Изучить способы организации обмена информацией между микро – ЭВМ и ВУ.
Ввести в микро – ЭВМ программу П3.1. Осуществить её пуск.
Убедиться, что при выполнении программы микро – ЭВМ постоянно переписывает данные с входного регистра на выходное. Для этого с помощь клавиш 18 измените значение входного устройства.
После запуска приведенной выше программы микропроцессор циклически читает содержимое входного устройства и выводит его в выходное устройство, т.е. любое изменение переключателей входного устройства будет индицироваться состоянием светодиодов выходного устройства. Таким образом, при выполнении этой программы две линейки светодиодов (входного и выходного устройства) будут иметь одинаковое количество светящихся и погашенных светодиодов.
Задание №2:
Выполнить программу в пошаговом режиме. Информация после выполнения каждого шага отображается на экране.
Изобразить временные диаграммы IN 80, OUT 90. Пояснить, какими действиями выполняется МП в каждом машинном цикле.
Задание №3:
Разработать программу поочередного включения 1-3-5-7 разрядов светодиодов входного устройства. Информация должна поступать из регистра С.
Произвести ввод и отладку программы.
Порядок выполнения отчета по лабораторной работе
Наименование и цель работы
Программа П3.1
Временные диаграммы команд IN 80
Разработать программу включения светодиодов.
Ответы на контрольные вопросы
Вывод поясняющий принцип программного ввода – вывода информации.
Программа П3.1
start:in 80 считать число из порта 80 в аккумулятор
out 90 записать значение аккумулятора в порт 90
jmp start идти на start
Методика анализа результатов, полученных в ходе лабораторной работы
Программный раздел содержит наборы программ ввода-вывода информации для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, входные и выходные условия.
В качестве устройства управления использовался восьмиразрядный порт
Во всех программах был использован следующий метод передачи параметров:
Первый 8-разрядный параметр передается в аккумуляторе, второй 8-разрядный параметр- регистре В, а третий- в регистре С.
Первый 16-разрядный параметр передается в регистрах Н и L, при этом старший байт- в регистре Н. Второй 16-разрядный параметр передается в регистрах D и Е со старшим байтом в D.
Большее число параметров передается прямо или косвенно. Вход в программу осуществляется с помощью .
Для большинства коротких программ было определена процедура выполнения отдельных команд.
Порядок выполнения отчета по лабораторной работе:
Цель и наименование работы:
Перечень команд передачи данных;
Исследуемые программы с комментариями:
Заполненные таблицы результатов исследования программ:
Графическое представление выполнения команд
Ответы на контрольные вопросы:
Анализа результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
Лабораторная работа № 4.
Исследование программ ввода вывода
Учебные цели: Исследование методов подключения и организации обмена информацией с простейшими устройствами ввода – вывода.
Учебные задачи:
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.
Выполнить программу П3.1 в пошаговом режиме. Информация после выполнения каждого шага отображается на экране. Заполнить таблицу 1
Изобразить временные диаграммы команды IN 80.. Пояснить, какими действиями выполняется МП в каждом машинном цикле.
Таблица 1
Содержимое регистров после выполнения каждой команды программы 3.1
Регистры
МП
Шаг программы (команда, после которой анализируется содержимое регистров)
0 шаг
(начало)
1шаг
IN 80
2 шаг
OUT 90
3шаг
JMP START
4 шаг
HLT
A
00
49h
49h
49h
-
FL
-
-
-
-
-
Порт 80
00
49h
49h
49h
-
Порт 90
00
00
49h
49h
-
Пример выполнения команды ввода IN.
Команда имеет 2 слова, выполняется за 3 машинных цикла.
Цикл команды IN
М1
М2
М3
Т1
Т2
Т3
Т4
Т1
Т2
Т3
Т1
Т2
Т3
В цикле М1 происходит считывание кода команды.
В такте Т1 счетчик адреса (команд) выдаёт на шину адреса код ячейки памяти, содержащей первое слово команды.
В такте Т2 анализируется сигнал готовности внешнего устройства. Если устройство не готово, то процессор переходит в режим ожидания.
В такте Т3 происходит запись данных в регистр кода команды (РК).
В такте Т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.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ ввода – вывода для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия.
Разработанные программы позволили использовать, исследовать и анализировать команды обращения к портам микропроцессорной системы
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №5
Маскирование данных и организация условных переходов
Учебные цели: Исследование методов программных способов маскирования данных и
организация условных переходов в микропроцессорных системах
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления;
Для ввода данных используется порт с адресом 80, а для вывода – с адресом 90;
Практическое использование нового программного продукта.
Обеспеченность занятия:
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. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
В различных ситуациях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих операций:
Логическое умножение числа в аккумуляторе и маски – очищает разряд числа (устанавливает в 0), если в соответствующем разряде маски будет записан 0, и не изменяет его, если в этом разряде маски записана 1;
Логическое сложение числа в аккумуляторе и маски – устанавливает разряд числа в 1, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0;
Логическое "исключающее ИЛИ" числа в аккумуляторе и маски – инвертирует содержание разряда числа, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0.
Примеры использования операций маскирования содержимого аккумулятора в случае, если маска находится в регистре, приведены в 13 REF _Ref506813526 \h \* MERGEFORMAT 14Табл. 115. В этом случае команды однобайтные. Маскирование содержимого аккумулятора возможно также байтом данных (ANI D8, ORI D8 и XRI D8). В этом случае маска содержится в байте данных, а команды являются двухбайтными. При выполнении логических операций (И, ИЛИ, "исключающее ИЛИ" и НЕ) задействуются разряды Z, S, P, AC регистра признаков (С = 0). Это позволяет проверять состояние любого разряда числа и выполнять условные переходы в программах.
Примеры использования операций маскирования. Таблица 1
Мнемокод
Число в аккумуляторе
Маска в D
Результат в аккумуляторе
Комментарий
ANA D
00111010
11111111
00001111
11110000
00100011
10101100
00100010
11111111
11111111
00000000
00101000
00100010
00001111
11110000
00000000
Логическое умножение (И) содержимого Акк. с байтом D.
ORA D
00111010
00001111
11110000
10101100
00001111
00001111
10111110
00001111
11111111
Логическое сложение (ИЛИ) содержимого Акк. с байтом. D.
XRA D
00111100
00001111
11110000
10101100
00001111
00001111
10010110
00000000
11111111
Логическое "исключающее ИЛИ" содержимого Акк. с байтом D.
Организация условных переходов в МПС на МП КР580ВМ80 осуществляется с помощью регистра признаков МП БИС.
Регистр признаков имеет пять разрядов, каждый из которых устанавливается по определённому правилу в соответствии с выполнением МП БИС последней команды. Этими разрядами являются:
Разряд переноса С – СARRY. В него записывается «1», если при выполнении арифметической операции было переполнение аккумулятора, в противном случае в разряд записывается «0».
Разряд знака S – SIGN. В него записывается «1», если при выполнении арифметической или логической операции в старшем седьмом бите аккумулятора записана «1», в противном случае в разряд записывается «0».
Разряд первого результата Z – ZERO. В него записывается «1», если при выполнении арифметической или логической операции во всех разрядах аккумулятора «0», в противном случае разряд записывается «0».
Дополнительный разряд переполнения AC – AUX.CARRY. В него записывается «1», если при выполнении команд в аккумуляторе возникает единица переноса из третьего разряда числа.
Разряд четности P – PARITY. В него записывается «1», если при выполнении команды количество единиц в разрядах аккумулятора будет четным.
Во многих случаях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих логических операций.
Логического умножения числа в аккумуляторе и маки, которая очищает разряд числа, если в соответствующем разряде макси будет записан «0», и не изменяет его, если в этом разряде записана «1»;
Логического сложения чисел в аккумуляторе и маски, которое устанавливает разряд числа «1», если в таком же разряде маски будет записан «0»;
Логического исключающего или числа в аккумуляторе и маски, которое инвертирует содержимое разряда числа, если в соответствующем разряде маски записана «1», и не имеют его, если в этом разряде записано «0».
Проведение логических операций возможно также с содержимым аккумулятора и внутренними регистрами микро – ЭВМ. В этом случае команды однобайтные. При выполнении всех логических команд задействуются разряды Z,S,CY,P,AC регистра признаков (в разряд С записывается 0). Это позволяет проверить состояние любого разряда числа и выполнить условные переходы в программах.
Условные переходы организуются в программах с помощью команд условных переходов. При выполнении этих команд микро – ЭВМ проверяет состояние соответствующего разряда регистра состояния. Если при проверке состояния разреза регистра состояния условия не подтверждаются, то выполняется следующая по порядку команда программы.
Таким образом, команды условных переходов позволяют строить ветвящиеся алгоритмы и в зависимости от текущего значения результата выполнения программы переходить на различные участки программы.
Вопросы для закрепления теоретического материала к лабораторной работе
1.В чем состоит различие между командами условного перехода?
2.Во всех командах условного перехода, используемых микропроцессором, применяется прямая адресация. Что это значит?
В чем заключается различие между выполнением команд безусловного и условного переходов?
Какой из нижеперечисленных команд эквивалентна команда ПЕРЕХОД, ЕСЛИ РАВНО:
- ПЕРЕХОД, ЕСЛИ ПЕРЕНОС;
- ПЕРЕХОД, ЕСЛИ ПЛЮС;
- ПЕРЕХОД, ЕСЛИ НЕ МИНУС;
- ПЕРЕХОД, ЕСЛИ НУЛЬ?
Какой из нижеперечисленных команд эквивалентна команда ПЕРЕХОД, ЕСЛИ НЕ МИНУС:
- ПЕРЕХОД, ЕСЛИ ПЕРЕНОС;
- ПЕРЕХОД, ЕСЛИ ПЛЮС;
- ПЕРЕХОД, ЕСЛИ МИНУС;
- ПЕРЕХОД, ЕСЛИ НУЛЬ?
Задания для лабораторной работы:
Задание №1: Исследование программы 4.1
Выяснить, какая информация появляется в разряде Z регистра признаков, после выполнения программы.
Задание №2:
Видоизменить программу П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 и т.д.
Задание №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 разряд?
jz wait 1 если нет, идти на wait1
mvi a,11 иначе зачет светодиоды выходного
out 90 регистра 90
wait2:in 80 получить число из порта 80
ani 20 включен ли 5 разряд?
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.Понятие и назначения использования маскирования данных при программировании команд управления
3..Исследуемые программы.
4.Результаты исследования.
5.Ответы на контрольные вопросы
6.Анализ результатов полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №5
Маскирование данных и организация условных переходов
Учебные цели: Исследование методов программных способов маскирования данных и
организация условных переходов в микропроцессорных системах
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Понятие и назначения использования маскирования данных при программировании команд управления
В различных ситуациях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих операций:
Логическое умножение числа в аккумуляторе и маски – очищает разряд числа (устанавливает в 0), если в соответствующем разряде маски будет записан 0, и не изменяет его, если в этом разряде маски записана 1;
Логическое сложение числа в аккумуляторе и маски – устанавливает разряд числа в 1, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0;
Логическое "исключающее ИЛИ" числа в аккумуляторе и маски – инвертирует содержание разряда числа, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0.
Организация условных переходов в МПС на МП КР580ВМ80 осуществляется с помощью регистра признаков МП БИС.
Регистр признаков имеет пять разрядов, каждый из которых устанавливается по определённому правилу в соответствии с выполнением МП БИС последней команды. Этими разрядами являются:
Разряд переноса С – СARRY. В него записывается «1», если при выполнении арифметической операции было переполнение аккумулятора, в противном случае в разряд записывается «0».
Разряд знака S – SIGN. В него записывается «1», если при выполнении арифметической или логической операции в старшем седьмом бите аккумулятора записана «1», в противном случае в разряд записывается «0».
Разряд первого результата Z – ZERO. В него записывается «1», если при выполнении арифметической или логической операции во всех разрядах аккумулятора «0», в противном случае разряд записывается «0».
Дополнительный разряд переполнения AC – AUX.CARRY. В него записывается «1», если при выполнении команд в аккумуляторе возникает единица переноса из третьего разряда числа.
Разряд четности P – PARITY. В него записывается «1», если при выполнении команды количество единиц в разрядах аккумулятора будет четным.
Программа П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.
При вводе числа 20h в порту должно быть число 00h, но программа зацикливается на проверке 2-го разряда.
При вводе чисел, не содержащих единиц в 2-м и 5-м разрядах программа зацикливается.
WAIT: IN 80 // Получаем данные из порта 80
XRI 08h // проверяем есть ли ноль в 3-м разряде
JNZ WAIT // если нет, то переходим на Wait
HLT // если же в 3-м разряде ноль, то Останов.
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия.
Программа 13 REF _Ref506878839 \h \* MERGEFORMAT 14П4.115 осуществляет ожидание простого (двоичного) события и при возникновении этого события формирует простое (двоичное) управление. В программе каждый бит порта с адресом 03h ассоциируется с некоторым событием от внешнего устройства, например, соответствует состоянию некоторого концевого переключателя технологического процесса. Таким образом, в технологическом процессе задействованы 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
Разработка и использование программ с подпрограммами
Учебные цели: Исследование особенностей записи подпрограмм и обращения к подпрограммам на языке Ассемблер в микропроцессорных системах
;
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления;
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. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Память микропроцессорной системы на МП КР580ВМ80 может иметь не более 65 536 однобайтных ячеек. Учитывая это, нужно стараться сделать программы как можно короче. С этой целью, часть программы, которая повторяется, или программа, которая часто используется, могут быть сделаны в виде подпрограммы – последовательности команд, выполнение которых может быть вызвано из любого места программы любое количество раз. Процесс передачи управления к подпрограмме называется её вызовом. Данные адреса требуются для работы подпрограммы, называются входными параметрами. Результаты работы подпрограммы передаваемые по окончанию её работы в основную программу, называются выходными параметрами.
Для вызова подпрограммы и возврата из них используются команды CALL
На 13 REF _Ref506711142 \h \* MERGEFORMAT 14Рис. 115 приведен алгоритм простой подпрограммы временной задержки. Здесь общее время задержки вычисляется по формуле:
где 13 EMBED Equation.3 1415 – число, первоначально записанное в счетчик. В качестве счетчика использован регистр B, в котором записывается число из регистра C. Команда NOP нужна для увеличения времени выполнения цикла, а, следовательно, и общей задержки. Повтором необходимого числа команд NOP можно корректировать минимальную временную задержку. Величины 13 EMBED Equation.3 1415 и 13 EMBED Equation.3 1415 фиксированы и в цикл не входят. Минимальная задержка задается при 13 EMBED Equation.3 1415, а максимальная при 13 EMBED Equation.3 1415.
Рис. 1 Алгоритм подпрограммы временной задержки
Вопросы для закрепления теоретического материала к лабораторной работе:
В чем заключается основное различие между командами перехода и командами вызова подпрограмм?
Какая из нижеперечисленных проверок осуществляется при обращении к подпрограмме с помощью команды условного вызова:
- равенства 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 в память эмулятора
Задание №4: Исследование программы 5.5
1.Записать программу 6.5 в память эмулятора.
Листинги программ находятся в тексте описания лабораторной работы.
Внимание: Количество выполняемых заданий назначает преподаватель
Инструкции по выполнению работы
Задание №1: Исследование программы 5.1
Записать программу 5.1 в память микро – ЭВМ
Вычислить время выполнения программы с выполнением цикла один раз. Вычислить число в регистре С для получения задержки 0,5 сек.
Используя программу 5.1 как подпрограмму включить её в разработанную программу по включению светодиодов порта вывода в порядке 1-3-5-7 (программа 3.2. ЛР №4)
Убедиться в том, что светодиоды 1-3-5-7 включаются по очереди на время 0,5.
Подпрограмма №5.1:
mov b,c записать число из регистра С в регистр В
dly:nop нет операции
dcr b уменьшить содержимое В на 1
jnz dly пока в регистре В не 0 идти на dly
hlt все
Задание №2: Исследование программы 5.3
1.Записать полный текст программы 5.3 для генерации звуковых сигналов с учетом программ 5.1 и 5.2
2.Ввести в микро – ЭВМ программу. Установить на входном устройстве число 00. Произвести пуск программы и проследить за изменением тона звука, увеличивается число, записанное во входное устройство.
Подпрограмма №5.2:
jmp main
delay:mov b,c записать число из регистра С в регистр В
dly:nop нет операции
dcr b уменьшить содержимое В на 1
jnz dly пока в регистре В не 0 идти на dly
ret все
main:xra a очистить аккумулятор
out 60 записать 00 в выходное устройство
call delay вызвать подпрограмму задержки
cma записать код FF в регистр А
out 60 записать код FF в выходное устройство
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 в выходное устройство
call delay вызвать подпрограмму задержки
cma записать код FF в регистр А
out 60 записать код FF в выходное устройство
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 увеличить содержимое В
rrc сдвиг вправо
jc m3 если CY=1, то продолжать
ret возврат из подпрограммы
Задание №4: Исследование программы 5.5
Записать программу 5.5 в память эмулятора
Убедиться, что программа осуществляет временную задержку на 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 ассоциируется с некоторым событием от внешнего устройства, например, соответствует состоянию некоторого концевого переключателя технологического процесса. Таким образом, в технологическом процессе задействованы 8 концевых переключателей с номерами 0, 1, , 7. Так же в технологическом процессе задействованы 8 исполнительных механизмов с номерами 0, 1, , 7, могущих принимать выключенное состояние или включенное состояние (0 или 1).
Порядок выполнения отчета по лабораторной работе
Наименование и цель работы
Программы временных задержек.
Рассчитанные числа для задержки на 0.5, 1 и 10 сек.
Программу 5.4 с пояснением содержимого регистра В.
Ответы на контрольные вопросы
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №6
Разработка и использование программ с подпрограммами
Учебные цели: Исследование особенностей записи подпрограмм и обращения к подпрограммам на языке Ассемблер в микропроцессорных системах
;
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Выполнение работы
Задание №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 – число итераций цикла.
Что бы найти количество итераций цикла для обеспечения нужного числа тактов программы, а следовательно задержки нужно формулу преобразовать:
С учётом того, что один такт равен 0,5·10-3 , чтобы получить задержку в 0,5 сек., подставляем в формулу значение S и получаем количество итераций цикла равным 52 в десятичной системе счисления, необходимо перевести это число в шестнадцатеричную систему счисления для того что бы процессор мог их корректно обработать. Оно равно 34h. Это число нужно записать в регистр C до начала выполнения программы.
Задание №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, то продолжать
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.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия.
Программа 5.1 реализует алгоритм программной задержки, где 13 EMBED Equation.3 1415 занимает один байт: регистр С Для получения требуемой задержки организован цикл, поэтому величина 13 EMBED Equation.3 1415 может варьироваться от 00h до FFh (т. е. от 0 до 256), для вычисления временной задержки здесь может быть использована
Для получения задержки 0,5 сек в регистр С необходимо записать число 34h.
Программа 5.2 реализует алгоритм программной задержки, где 13 EMBED Equation.3 1415 занимает два байта: В и С. Для увеличения времени задержки организовано два цикла (цикл в цикле), поэтому величина 13 EMBED Equation.3 1415 может варьироваться от 0000h до FFFFh (т. е. от 0 до 65535), однако, для вычисления временной задержки здесь должна использоваться гораздо более сложная формула.
Число записанное в регистровой паре, рассчитанное по формуле, ВС =1218 дало временную задержку 6 сек. Чтобы получить 10 сек нужно число увеличить. Оно будет равно 1896
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №7
Разработка и исследование программ работы со стеком
Учебные цели: Исследование методов использования стека при создании программ и подпрограмм.
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
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.Технические средства обучения:
- Персональный компьютер;
- Принтер.
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Подпрограммами называют модули программ, которые могут быть использованы неоднократно, причем обращение к подпрограммам (вызов) может быть осуществлен из любого места основной программы. При этом для запоминания адреса возврата в основную программу используется область памяти ОЗУ, организованная особым образом, получившую название стек. Его название происходит от английского слова Stack, т.е. кипа, стопка (бумаг). Назначение стека в том, чтобы сохранять текущее содержание всех регистров, если происходит прерывание основной программы. Образно стек можно представить в виде записи значений на отдельных листах бумаги и складывания их стопкой.
Извлечение из стека происходит всегда в обратном порядке, т.е. только с верхушки стека. Иными словами, соблюдается принцип "последним вошел – первым вышел" (по-английски Last In - First Out, сокращенно LIFO). В любой момент времени в стек можно включить дополнительную информацию, но при извлечении первой всегда будет та, которая включена последней.
Для работы со стеком необходимо загрузить его адрес в указатель стека (по умолчанию, указатель стека SP уже настроен на конец памяти). Обычно это делается одной из первых команд программы. Указатель стека загружается либо командой LXI SP, <адрес стека>, либо командой SPHL. В последнем случае в указатель стека загружается содержимое регистра HL.
Чаще всего стек используется явно для временного хранения текущего содержимого регистров общего назначения. Поместить данные в стек можно командой PUSH, а извлечь командой POP. Операнд команды указывает наименование регистровой пары или PSW.
Нет никакой аппаратной зависимости между тем, откуда они впоследствии загружаются. Например, можно поместить данные в стек из одной регистровой пары и загрузить их в другую. Регистр признаков FL, входящий младшим байтом в состав PSW, можно сохранить в стеке или явно переслать через стек в один из рабочих регистров.
Специальная команда XTHL позволяет обменять содержимое регистра HL с двумя байтами вершины стека. Значение указателя стека при этом не меняется.
Адрес верхушки стека в текущий версии эмулятора равен 1000h.
Вопросы для закрепления материала к лабораторной работе:
1. Почему непосредственно после выполнения команды загрузки в стек не требуется использовать команду уменьшения на 1 содержимого указателя стека?
2. Для какой цели используется начальная установка указателя стека?
3. Какая команда используется для передачи данных из стека?
4. Какое из указанных ниже действий может произойти при изъятии данных из стека, если его содержимое подверглось изменениям:
- извлечение из стека;
- загрузка в стек;
- вложение подпрограмм;
- нарушение работы программы?
Задания для лабораторной работы:
Задание №1: Исследование заданных программ.
Исследовать программы 6.1,6.2,6.3,6.
Задание №2: Составить программу осуществляющую сложение двух чисел по адресам 0010,0011. Записать эти числа в регистры В и С и записать результат в регистр D. Запись содержимого этих регистров и PSW в стек.
После исполнения программы составить таблицу: адреса ячеек стека и содержимого этих ячеек, регистры из которых производилась запись информации в стек.
№
Команда
A
Адрес
B
C
\М1данные
М2/данные
М3/данные
D
1
Инструкция по выполнению лабораторной работы
Задание №1: Исследование заданных программ.
Исследовать программу 6.1, после чего убедиться, что указатель стека уменьшается на 2.
Исследовать программу 6.2, после чего убедиться, что указатель стека увеличивается на 2.
Исследовать программу 6.3 и проследить за выполнением команды XTHL. Исследовать программу 6.4 и убедиться в сохранении слова состояния программы. Записать двоичный код этого слова.
Задание №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 обмен HL и вертушки стека
xthl обмен HL и верхушки стека
pop bc восстановить ВС
mov a,b
hlt
Программа 6.4:
рush psw [A] и [F] в стек
pop hl [A] – H; [F] – L
hlt останов
Методика анализа результатов, полученных в ходе лабораторной работы
Автоматическое сохранение и восстановление адреса основной программы при выполнении подпрограмм позволяет сделать подпрограммы вложенными, т. е. осуществить вызов одной подпрограммы из другой. Уровень вложенности для данного МП определяется размером стека.
Помимо команд вызова подпрограмм и возврата из них, со стеком можно обмениваться информацией. С помощью команды PUSH RP осуществляется запись в стек содержимого регистра RP МП, а с помощью команды POP RP – запись данных из стека в регистр RP процессора. Эти команды однобайтные
Порядок выполнения отчета по лабораторной работе
Наименование и цель работы.
Программы 6.1 – 6.4
Составленную программу и заполненную таблицу с результатами её исследования.
Графическое изображение порядка выполнения команды ADD C
Ответы на контрольные вопросы
Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №7
Разработка и исследование программ работы со стеком
Учебные цели: Исследование методов программных способов маскирования данных и
организация условных переходов в микропроцессорных системах
Учебные задачи:
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 обмен HL и вертушки стека
xthl обмен HL и верхушки стека
pop bc восстановить ВС
mov a,b
hlt
Программа 6.4:
рush psw [A] и [F] в стек
pop hl [A] – H; [F] – L
hlt останов
До выполнения программы адрес вершины стека был 100h, после выполнения команды PUSH адрес уменьшился на 2 и стал равным 0FFEh.
До: 0FFEh, после: 1000h.
Команда XTHL взаимно обменивает содержимое регистров: L с содержимым стека с адресом SP и содержимое регистра H с содержимым стека SP+1. При выполнении 2-х таких команд подряд содержимое не изменится.
Слово состояния сохраняется в стеке как один байт, с последующим увеличением SP на 2.
Задание №2. 1.Составить программу осуществляющую сложение двух чисел по адресам 0010,0011. Записать эти числа в регистры В и С и записать результат в регистр D. Запись содержимого этих регистров и PSW в стек.
2.После исполнения программы составить таблицу: адреса ячеек стека и содержимого этих ячеек, регистры из которых производилась запись информации в стек.
MVI HL,0010
MOV B,M
MVI HL,0011
MOV C,M
MOV A,B
ADD C
MOV D,A
PUSH B
PUSH C
PUSH D
PUSHPSW
HLT
Информация в регистрах МП и ячейках стека при выполнении задания 2. Таблица 1
№
Команда
A
FL
B
C
М1/данные
М2/данные
М3/данные
D
1
MVI H, 0010
00
-
00
00
0010/01
00
00
00
2
MOV B,M
00
-
01
00
0010/01
00
00
00
3
MVI H, 0011
00
-
01
00
0010/01
0011/01
00
00
4
MOV C,M
00
-
01
01
0010/01
0011/01
00
00
5
MOV A,B
01
-
01
01
0010/01
0011/01
00
00
6
ADD C
02
-
01
01
0010/01
0011/01
00
00
7
MOV D,A
02
-
01
01
0010/01
0011/01
00
02
8
PUSH B
02
-
01
01
0010/01
0011/01
00FE/01
00FD/00
02
9
PUSH C
02
-
01
01
0010/01
0011/01
0FFC/01
0FFB/00
02
10
PUSH D
02
-
01
01
0010/01
0011/01
0FFA/02
0FF9/00
02
11
PUSHPSW
02
-
01
01
0010/01
0011/01
0FF8/14
02
12
HLT
02
-
01
01
0010/01
0011/01
00
02
3.Составить графическое изображение выполнения команды ADD С
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия.
С помощью команды PUSH RP осуществляется запись в стек содержимого регистра RP МП, а с помощью команды POP RP – запись данных из стека в регистр RP процессора. Эти команды однобайтные. В них содержится номер пары регистров МП. Сущность команд можно показать следующим образом:
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
Программирование арифметических операций над многобайтными числами
Учебные цели: Изучение способов организации и исследование программ выполнения арифметических операций.
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления;
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.
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Так как МП серии КР580 не имеет специальных команд для работы с числами с плавающей точкой, то при составлении программ для этого процессора, как правило, используется представление чисел с фиксированной точкой. Восьмиразрядное слово данных позволяет представить число, как двоичное число со знаком, имеющее значение от –128 до +127. При этом отрицательные числа представляются в дополнительном коде, а старший разряд числа используется как знаковый. Такое представление чисел не позволяет выполнять арифметические операции с использованием переноса при сложении и заема при вычитании. Число с фиксированной точкой можно представить также двоичными числами без знака, имеющими значения от 0 до 255.
Для МП БИС можно представить также числа в виде двоичного числа Binari-сoded-decimal (BCD), при котором каждый байт рассматривается как два полубайта, две тетрады, каждая из которых кодирует десятичную цифру. Такое представление позволяет закодировать 1 байт числа от 0 до 99.
Невысокая разрядность адресуемой ячейки памяти в МП КР580 порождает необходимость в программах, реализующих арифметические операции с числами занимающими в памяти группу последовательных ячеек.
Идея алгоритма, например сложения трех байтовых чисел, заключается в использовании команды ADC (сложение с заемом). По этой команде к сумме однобайтных слагаемых добавляется содержимое признака СY, в котором (на предыдущем шаге) формируется бит переноса из старшего разряда, т.е. перенос из младших байтов тригер переноса отбрасывается.
Операция вычитания выполняется по тому же алгоритму.
Микро-ЭВМ может представить арифметические числа с двойной или большей длиной машинного слова. Так как МП имеет 8-разрядное АЛУ, то операции с такими числами должны производиться по байтам, начиная с младших байтов. Так операция сложения чисел 17F5 + 3411 будет производиться следующим образом:
Числа
Младший байт
Флаг С
Старший байт
17F5
11110101
00010111
+
+
+
3411
00010001
00110100
1
+ 1
4С06
00000110
01001100
Из приведенных примеров видно, что при суммировании (вычитании) младших байтов чисел можно применять команду ADD (SUB), а при суммировании (вычитании) остальных байтов чисел необходимо использовать команду ADC (SBB), которая будет учитывать состояние разряда С регистра признаков МП.
Вопросы для закрепления теоретического материала к лабораторной работе
Объясните, что происходит с результатом сложения с применением команды СЛОЖЕНИЕ С ПЕРЕНОСОМ?
Объясните, что происходит с результатом сложения с применением команды ВЫЧИТАНИЕ С ПЕРЕНОСОМ?
В регистровой паре ВС содержится число FFFF, которое подвергается положительному приращению. Каковы последствия этого действия?
Поясните алгоритм сложения многобайтовых чисел в 8-ми разрядном микропроцессоре.
В регистровой паре ВС содержится число FFFF; производится положительное приращение содержимого регистра С. Каковы последствия этого действия?
Задания для закрепления теоретического материала к лабораторной работе
Задание №1:
Рассмотреть и исследовать программу П7.1 сложения трехбайтных чисел.
Задание №2:
Рассмотреть и иисследовать программу П7.2 вычитания многобайтных чисел.
Задание №3:
Составить программу сложения двухбайтных чисел, расположенных в ячейках 0010, 0011, и 0015, 0016 с записью результата в ячейки 0020, 0021.
Инструкция по выполнению лабораторной работы
Задание №1:
Рассмотреть и изучить программу П7.1 сложения трехбайтных чисел.
Ввести программу и произнести её пуск. Изменяя числа в соответствующих ячейках ЗУ. проследить за работой программы.
Программа П7.1
lxi bc,0010 загрузить адрес в ВС
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:
Рассмотреть и изучить программу П7.2 вычитания многобайтных чисел.
Ввести программу и произвести её пуск. Изменяя числа (вычитаемое и уменьшаемое) проследить за работой программы.
Программа П7.2
xra a очистить аккумулятор и CY
mvi c,3
call cnt вызвать подпрограмму
hlt все
cnt:ldax de записать уменьшаемое в А
sbb m вычесть
mov m,a записать результат
inx hl указать на следующий байт уменьшаемого
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, в котором (на предыдущем шаге) формируется бит переноса из старшего разряда, т.е. перенос из младших байтов триггер переноса отбрасывается.
Порядок выполнения отчета по лабораторной работе
Наименование и цель работы
Программу сложения трехбайтовых чисел в формате ассемблера. Результат работы программы
Программу вычитания двухбайтных чисел в формате ассемблера. Результат работы программы
Разработанную программу сложения двухбайтных чисел в формате ассемблера. Результаты работы программы
Ответы на контрольные вопросы
6. Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №8
Программирование арифметических операций над многобайтными числами
Учебные цели: Исследование методов программных способов маскирования данных и
организация условных переходов в микропроцессорных системах
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Выполнение работы:
Задание №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
Задание №2.
Первое слагаемое
0010
02
FF
0011
00
DF
0012
00
00
Второе слагаемое
0013
01
01
0014
00
FF
0015
00
00
После выполнения программы
0010
01
02
0011
00
20
0012
00
00
Задание №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.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия.
Невысокая разрядность адресуемой ячейки памяти в МП КР580 порождает необходимость в программах, реализующих арифметические операции с числами занимающими в памяти группу последовательных ячеек.
Идея алгоритма, например сложения трех байтовых чисел, заключается в использовании команды ADC (сложение с заемом). По этой команде к сумме однобайтных слагаемых добавляется содержимое признака СY, в котором (на предыдущем шаге) формируется бит переноса из старшего разряда, т.е. перенос из младших байтов триггер переноса отбрасывается.
Целью работы является исследование и разработка простой программы сложения многобатовых чисел для приобретения практических навыков программирования на языке ассемблера и закрепления знаний.
Цель работы достигнута. Разработана программа сложения двухбайтных чисел. Программа отлажена и протестирована средствами эмулятора
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №9
Разработка и исследование программ умножения данных
Учебные цели: Исследование методов программных способов умножения в микропроцессорных системах на МП КР580ВМ80
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора при выполнении операции умножения, а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления;
2.Изучить методику выполнения операции умножения
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.
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
7.Ручка.
8.Карандаш простой.
9.Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Существует несколько алгоритмов умножения чисел. При одном алгоритме умножение можно заменить многократным сложением. Например 14(3=14+14+14. Существует недостаток этого способа: значительная длительность вычисления. При другом алгоритме умножение осуществляется так:
0010=6
(
0011=3
0110
+0110
10010=18
При вычислении результата по второму способу необходимо осуществлять многократное суммирование со сдвигом влево множимого при одновременной проверке содержимого разрядов множителей, начиная со стороны его младшего разряда. При этом если в очередном разряде множителя записана 1, то множимое прибавляется к сумме и сдвигается влево на 1 разряд, а если в разряде записан 0 – произойдет только сдвиг множимого. Сдвиг множимого влево можно заменить сдвигом суммы вправо. По этому принципу работает программа умножения двух однобайтных чисел с получением двухбайтного результата программа 9.2.
Рис.1 . Программа умножения двух однобайтных чисел с получением двухбайтного результата
Вопросы для закрепления теоретического материала к лабораторной работе
Как оценить максимальное время выполнения программы умножения двух чисел?
На чем основаны алгоритмы программ умножения чисел Изучить подгруппу арифметических команд МП.
Ознакомиться с правилами выполнения команды DAA (десятичная коррекция аккумулятора).
Определить значения признаков CY (перенос), AC (полуперенос), S (знак), Z (нуль) и P (четность) в микропроцессоре КР580ВМ80А после выполнения команды ADD B, если до ее выполнения A = 9BH, B = 36H.
В какие ячейки памяти будет произведена запись информации и чему будет равно их содержимое, а также содержимое указателя стека SP после выполнения в микропроцессоре КР580ВМ80А команды PUSH B, если до ее выполнения B = 8AH, C = 15H, SP = 2304H?
Задания для закрепления теоретического материала к лабораторной работе
Задание №1:
Изучить и исследовать работу программы П9.1 умножение целых чисел без знака.
Задание №2:
Изучить и исследовать программу умножения двух однобайтных чисел с получением двухбайтного результата 9.2
Инструкция по выполнению лабораторной работы
Задание №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 умножение закончено
Примечание: Множимое – в регистр А, множитель – в регистр D
Произведение в регистр H
Задание №2: . Программа умножения двух однобайтных чисел с получением двухбайтного результата
Входными параметрами программы 9.1 алгоритм которой приведен 13 REF _Ref506314985 \p \h \* MERGEFORMAT 14ниже15, на 13 REF _Ref506315002 \h \* MERGEFORMAT 14Рис. 115, являются следующие регистры: регистр D – множимое, регистр E – множитель. Результат записывается в регистровую пару BC.
MVI D, A1h
;Запись в D множимого.
MVI E, 9Bh
;Запись в E множителя.
LX B, 0000h
;Очистить регистры B и C.
MVI L, 08h
;Загрузка счетчика.
LAB_1:
MOV A, E
;Множитель в Акк.
RAR
;Сдвиг анализируемого бита в триггер C.
MOV E, A
;Возврат в E сдвинутого множителя.
JNC LAB_2
;Если бит множителя равен нулю, то идти ; на LAB_2.
MOV A, B
;Загрузка в Акк. старшей частичной суммы.
ADD D
;Прибавление к нему множимого.
MOV B, A
;Возврат в B старшей частичной суммы.
LAB_2:
MOV A, B
;Загрузка в Акк. старшей частичной суммы.
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. При сдвиге в следующем цикле содержимого регистра А значение CY заносится в его старший бит, а в CY помещается очередной бит множителя. Таким образом в регистре Н множитель постепенно вытесняется частичной суммой, которая после выполнения восьми циклов дает результат умножения. Длина описанной программы - 19 байт.
Порядок выполнения отчета по лабораторной работе
1.Наименование и цель работы
2.Программа 9.1 и результат её работы
3.Программа умножения двух однобайтных чисел с получением двухбайтного результата 9.2
4.Ответы на контрольные вопросы
5.Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе
ЛАБОРАТОРНАЯ РАБОТА №9
Разработка и исследование программ умножения данных
Учебные цели: Исследование методов программных способов умножения в микропроцессорных системах на МП КР580ВМ80
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора при выполнении операции умножения, а также компонентов микропроцессорной системы, используя программное моделирование.
Выполнение работы
Задание №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
№ экспер
А
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 алгоритм которой приведен 13 REF _Ref506314985 \p \h \* MERGEFORMAT 14ниже15, на 13 REF _Ref506315002 \h \* MERGEFORMAT 14Рис. 115, являются следующие регистры: регистр D – множимое, регистр E – множитель. Результат записывается в регистровую пару BC.
MVI D, A1h
;Запись в D множимого.
MVI E, 9Bh
;Запись в E множителя.
LXI B, 0000h
;Очистить регистры B и C.
MVI L, 08h
;Загрузка счетчика.
LAB_1:
MOV A, E
;Множитель в Акк.
RAR
;Сдвиг анализируемого бита в триггер C.
MOV E, A
;Возврат в E сдвинутого множителя.
JNC LAB_2
;Если бит множителя равен нулю, то идти
; на LAB_2.
MOV A, B
;Загрузка в Акк. старшей частичной суммы.
ADD D
;Прибавление к нему множимого.
MOV B, A
;Возврат в B старшей частичной суммы.
LAB_2:
MOV A, B
;Загрузка в Акк. старшей частичной суммы.
RAR
;Сдвиг старшей частичной суммы вправо
; (младший бит в C).
MOV B, A
;Возврат в B старшей частичной суммы.
MOV A, C
;Загрузка в Акк. младшей частичной суммы.
RAR
;Сдвиг младшей частичной суммы вправо
; (C в старший бит).
MOV C, A
;Возврат в C младшей частичной суммы.
DCR L
;Декрементация счетчика.
JNZ LAB_1
;Если разряд не последний, то идти на LAB_1.
HLT
;Выход из программы.
№ экспер
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. Если очередной бит множителя ненулевой, то множимое добавляется к байту частичной суммы, находящемуся в регистре Н. Далее выполняется сдвиг этого байта вправо (вторая команда RAR), при этом его младший бит вытесняется в разряд переноса CY. При сдвиге в следующем цикле содержимого регистра А значение CY заносится в его старший бит, а в CY помещается очередной бит множителя. Таким образом в регистре Н множитель постепенно вытесняется частичной суммой, которая после выполнения восьми циклов дает результат умножения.
При вычислении по программе 9.2 необходимо осуществлять многократное суммирование со сдвигом влево множимого при одновременной проверке содержимого разрядов множителей, начиная со стороны его младшего разряда. При этом если в очередном разряде множителя записана 1, то множимое прибавляется к сумме и сдвигается влево на 1 разряд, а если в разряде записан 0 – произойдет только сдвиг множимого. Сдвиг множимого влево можно заменить сдвигом суммы вправо. Так работает программа умножения двух однобайтных чисел с получением двухбайтного результата.
РАЗДЕЛ 1
Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №10
Разработка и исследование программ деления данных
Учебные цели: Исследование методов программных способов деления для микропроцессорной системы на МП КР580ВМ80
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, при выполнении операции деления а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы деления чисел
Изучить методику составления программ деления чисел
Практическое использование нового программного продукта.
Обеспеченность занятия:
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. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
7.Ручка.
8.Карандаш простой.
9.Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Деление двоичных чисел, как и чисел, представленных в любой другой системе счисления, основывается на последовательном вычитании делителя из делимого и остатков от деления. Однако двоичное деление реализуется проще, так как использование только двух цифр (0 и 1) исключает в каждом цикле деления необходимость определения числа делителей, содержащихся в текущем значении делимого или остатка (достаточно только сравнить их).
Операция алгебраического деления чисел содержит действия, связанные с определением знака частного и действия, связанные с определением модуля частного и положительного остатка.
Знак частного может быть определен выделением из чисел содержимого знаковых разрядов. Затем суммированием их по модулю 2 и введением в знаковый разряд частного после того как будет найден модуль частного.
Рис. 10.1 . Схема алгоритма программы деления двух восьмиразрядных чисел164
Модуль частного определяется следующим образом:
Пусть делимое и делитель – целые положительные числа. Делимое имеет 2n разрядов. Делитель – n разрядов, их старшие разряды – знаковые и содержат 0.
Процесс деления сводится к следующей циклически повторяемой последовательности действий. В первом повторении цикла – делимое, а в последующих повторениях цикла - остаток сдвигаются на один разряд влево и затем из него вычитается делитель; если полученный новый остаток –положительное число, то в очередной разряд частного (начиная с его старшего разряда) записывается 1, если новый остаток – отрицательное число, то в разряд частного записывается 0, а к остатку прибавляется делитель и таким образом восстанавливается предыдущий сдвинутый остаток. Эти действия циклически повторяются n раз (n – число разрядов делителя). В результате образуется частное, а последний остаток является результирующим остатком операции деления.
Для построения программы выполнение операции деления в микропроцессоре примем n=8. При этом делимое будет 16 разрядов (2 байта) и для его хранения потребуется пара регистров.
Используем для его хранение регистр BC. При каждом сдвиге влево содержимого регистра ВС в освобождающийся правый разряд будет заноситься значение очередного разряда частного. Таким образом, после окончания выполнения операции в регистре С образуется значение частного. Так как действия вычитания (или сложения) делителя должны производиться над старшими восемью разрядами остатка, то эти операции будут выполняться. Над содержимым регистра B, а после окончания операции деления его содержимое будет результирующим остатком операции. Для хранения однобайтного делителя используем регистр D. На регистре E, предварительно загружаемым числом 8, построим счетчик числа повторения цикла.
Вопросы для закрепления теоретического материала к лабораторной работе
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:
Изучить и исследовать работу программы П10.1 деления целых чисел без знака.
Задание №2:
Изучить и исследовать программу умножения двух однобайтных чисел с получением двухбайтного результата 9.2
Инструкция по выполнению лабораторной работы
Схема алгоритма деления двоичных чисел приведена на рис. 10.1. Программа DIVB построена по этому алгоритму (программа П10.1). Входными параметрами этой программы являются делимое (в регистре Е) и делитель (в регистре D); выходными параметрами частное (в регистре Н) и остаток (в регистре С).
Задание №1:
Порядок выполнения задания:
Изучить работу программы П10.1 деления целых чисел без знака.
2 Произвести ввод и пуск программы П10.1.
Входными параметрами данной программы являются делимое (в регистре Е) и делитель (в регистре D), а выходными параметрами – частное (в регистре Н) и остаток (в регистре С). Перед началом выполнения программы признак переноса C должен быть сброшен.
Программа 10.1
MVI E, A9h
;Загрузка в E делимого.
MVI D, 54h
;Загрузка в D делителя.
LXI H, 0008h
;Загрузить счетчик битов (L) и очистить
; регистр H.
MVI C, 00h
;Очистить регистр промежуточного делимого.
LAB_1:
MOV A, E
;Загрузить делимое в Акк.
RAL
;Сдвинуть старший бит в разряд С.
MOV E, A
;Возвратить делимое в регистр E.
MOV A, C
;В Акк. промежуточное делимое из регистра С.
RAL
;Сдвинуть разряд С в младший бит Акк.
SBB D
;Вычесть из содержимого Акк. делитель
; с учетом заема.
JNC LAB_2
;Если результат положительный, то идти
; на LAB_2 (C = 0).
ADD D
;Сложить содержимое регистра D с Акк.
LAB_2:
MOV C, A
;Возвратить промежуточное делимое в
; регистр С.
CMC
;Инвертировать разряд С.
MOV A, H
;Запись цифры частного.
RAL
MOV H, A
DCR L
;Проверены ли все 8 разрядов.
JNZ LAB_1
;Если нет, продолжать.
HLT
;Выход из программы.
3. Записать в регистры Е, D соответственно делимое и делитель.
4. Осуществить пуск программы и проверить результат деления двух чисел по содержимому регистров Н, С.
5. Выполнить деление нескольких чисел.
Методика анализа результатов, полученных входе лабораторной работы
Программа 9.1 реализует алгоритм умножения “младшими разрядами вперед со сдвигом частичной суммы”. Множимое помещается в регистр А, множитель в регистр D, произведение – однобайтное число - образуется в регистре Н. При выполнении умножения последовательно анализируются биты множителя, начиная с младшего, помещаемые по команде RAR (циклический сдвиг вправо через перенос) в разряд переноса CY. Если очередной бит множителя ненулевой, то множимое добавляется к байту частичной суммы, находящемуся в регистре Н. Далее выполняется сдвиг этого байта вправо (вторая команда RAR), при этом его младший бит вытесняется в разряд переноса CY. При сдвиге в следующем цикле содержимого регистра А значение CY заносится в его старший бит, а в CY помещается очередной бит множителя. Таким образом в регистре Н множитель постепенно вытесняется частичной суммой, которая после выполнения восьми циклов дает результат умножения. Длина описанной программы - 19 байт.
Порядок выполнения отчета по лабораторной работе
Наименование и цель работы
Программа 10.1 и результат её работы
Ответы на контрольные вопросы
4. Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе
ЛАБОРАТОРНАЯ РАБОТА №10
Разработка и исследование программ деления данных
Учебные цели: Исследование методов программных способов деления, отладки и тестирования программ
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, при выполнении операции деления а также компонентов микропроцессорной системы, используя программное моделирование.
Выполнение работы
Задание №1:
Порядок выполнения задания:
Изучить работу программы П10.1 деления целых чисел без знака.
2 Произвести ввод и пуск программы П10.1.
Входными параметрами данной программы являются делимое (в регистре Е) и делитель (в регистре D), а выходными параметрами – частное (в регистре Н) и остаток (в регистре С). Перед началом выполнения программы признак переноса C должен быть сброшен.
Программа 10.1
MVI E, A9h
;Загрузка в E делимого.
MVI D, 54h
;Загрузка в D делителя.
LXI H, 0008h
;Загрузить счетчик битов (L) и очистить
; регистр H.
MVI C, 00h
;Очистить регистр промежуточного делимого.
LAB_1:
MOV A, E
;Загрузить делимое в Акк.
RAL
;Сдвинуть старший бит в разряд С.
MOV E, A
;Возвратить делимое в регистр E.
MOV A, C
;В Акк. промежуточное делимое из регистра С.
RAL
;Сдвинуть разряд С в младший бит Акк.
SBB D
;Вычесть из содержимого Акк. делитель
; с учетом заема.
JNC LAB_2
;Если результат положительный, то идти
; на LAB_2 (C = 0).
ADD D
;Сложить содержимое регистра D с Акк.
LAB_2:
MOV C, A
;Возвратить промежуточное делимое в
; регистр С.
CMC
;Инвертировать разряд С.
MOV A, H
;Запись цифры частного.
RAL
MOV H, A
DCR L
;Проверены ли все 8 разрядов.
JNZ LAB_1
;Если нет, продолжать.
HLT
;Выход из программы.
3. Записать в регистры Е, D соответственно делимое и делитель.
4. Осуществить пуск программы и проверить результат деления двух чисел по содержимому регистров Н, С.
5. Выполнить деление нескольких чисел.
№ экспер
Е
D
Н
С
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
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- отлаживать программы реального времени
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
1.Изучить применение программы отладчика TURBO DEBUGGER
2.Осуществить компиляцию и отладку заданных программ
3.Практическое использование нового программного продукта.
Обеспеченность занятия:
1. Учебно-методическая литература:
- Абель П. Язык Ассемблера для IBM PC и программирования /Пер. c англ.
М.:Высш.шк., 2002,c 93-115.
- А.Крупник. Ассемблер. Серия: самоучитель./С-Пб., ПИТЕР, 2003 г , 242 с
2. Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
3.Технические средства обучения:
- Персональный компьютер;
- Принтер.
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
7.Ручка.
8.Карандаш простой.
9.Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Турбо отладчик (Turbo Debugger) - это современный отладчик, позволяющий отлаживать программы на уровне исходного текста и предназначенный для программистов, работающих на Турбо языках фирмы Borland. Многочисленные перекрывающие друг друга окна, а также сочетание спускающихся и раскрывающихся меню обеспечивают быстрый, интерактивный пользовательский интерфейс. Интерактивная, контекстно-зависимая система подсказки обеспечит вас подсказкой на всех стадиях работы. Непосредственно после запуска отладчика открыто окно CPU. В окне CPU (ЦП) показано все состояние центрального процессора. С его помощью вы можете проверять и изменять биты и байты, составляющие код и данные программы. В окне Code (Код) для временной коррекции своей программы вы можете использовать встроенный Ассемблер. При этом инструкции вводятся точно также, как при наборе исходных операторов Ассемблера. Можно также получить доступ к соответствующим данным любой структуры данных, выводя и изменяя их в различных форматах.
В области регистров (верхняя область справа от области кода) выводится содержимое регистров центрального процессора.
Верхней правой областью является область флагов, где показано содержимое восьми флагов центрального процессора. В области флагов показано значение каждого флага ЦП.
В области данных показано непосредственное содержимое выбранной области памяти. В левой части каждой строки показан адрес данных, выводимых на данной строке. Адрес выводится в виде шестнадцатеричного значения сегмента и смещения. Значение сегмента заменяется именем сегмента DS, если значение сегмента совпадает с текущим содержимым регистра DS.
В правой части каждой строки выводятся символы, соответствующие показанным байтам. Турбо отладчик выводит все печатаемые значения, соответствующие байтовым эквивалентам, поэтому не удивляйтесь, если на экране вы увидите странные символы - просто это символьный эквивалент шестнадцатеричных значений байтов данных.
В нижнем правом углу окна CPU показано содержимое стека.
Некоторые команды программы DEBUG:
D (Dump) - Команда вывода на экран содержимого памяти
E (Enter) - Команда ввода
F (FILL) - Команда заполнения памяти
G (Go) - Команда выполнения программы
R (Register) - Команда операции с регистрами
Т (Тгасе) - Команда отслеживания
A (Assemble) - Команла трансляции
Команды работы с отладчиком TURBO DEBUGGER
Вопросы для закрепления теоретического материала к лабораторной работе
1. Каковы задача и содержание этапа отладки программ?
2. Типы программ-отладчиков и особенности их работы.
3. Основные команды для работы с ячейками памяти и регистрами отладчика Turbo Debugger ?
4. Основные команды для отладки загруженной программы ?
5. Основные команды для работы с окнами отладчика Turbo Debugger
6. Объяснить порядок загрузки отлаживаемой программы
7.Каким образом можно редактировать ассемблерную программу?
8. Как осуществляется изменение содержимого оперативной памяти и регистров средствами отладчика?
9. Как через меню отладчика запустить программу на выполнение?
Задания для лабораторной работы
Задание 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. окно стека.
Рисунок 1. Окно основного рабочего меню TURBO DEBUGGER
В свою очередь окно Registers поделено на две части. В левой его части указано содержимое всех регистров микропроцессора (ax,bx,cx,dx), а в правой части показаны биты регистра флагов.
Задание 3: Выполнить запуск и отладку программ 11.1 и 11.2
Запустить программу отладчика
Открыть меню File/Open и загрузить программу 11.1
Программа 11.1
lxi hi,0010 записать адрес 0010 в паре HL
mov a,m передать данные в аккумулятор
cma инвертировать содержимое аккумулятора
lnx hl инвертировать содержимое HL
mov m,a передать содержимое регистра А в ячейку памяти
hit прервать выполнение программы
Указать содержимое каждого из восьми РОН после выполнения двух любых выбранных команд в программах П11.1 и П11.2.
Выполнить все команды TURBO DEBUGGER
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 увеличьте размеры рамки сегмента данных. Просмотрите содержимое ячеек памяти. Подводя курсор к элементам данных Вашей программы, редактируйте их шестнадцатеричные значения, используйте для этого клавиши 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 килобайтах весьма сложные и большие алгоритмы, а все данные хранить в отдельных файлах, но ограничение размера все равно очень серьезно усложняет отладку больших по объему программ.
Порядок выполнения отчета по лабораторной работе
Наименование и цель работы
Исследуемые программы
Результат выполнения задания 2
Ответы на контрольные вопросы
Анализ результатов, полученных в ходе лабораторной работы
Образец отчета по лабораторной работе
ЛАБОРАТОРНАЯ РАБОТА №11
Работа с программой – отладчиком
Учебные цели: Практическое освоение основных функций программы-отладчика TURBO DEBUGGER.
Учебные задачи:
1. Закрепление полученных теоретических знания по программированию и отладке микропроцессорных систем.
2. Изучить методику применения основных команд для работы с окнами отладчика Turbo Debugger
Выполнение работы
Задание 1: Изучить методические рекомендации по работе с программой отладчиком TURBO DEBUGGER
Некоторые команды программы DEBUG:
D (Dump) - Команда вывода на экран содержимого памяти
E (Enter) - Команда ввода
F (FILL) - Команда заполнения памяти
G (Go) - Команда выполнения программы
R (Register) - Команда операции с регистрами
Т (Тгасе) - Команда отслеживания
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 передать данные в аккумулятор
cma инвертировать содержимое аккумулятора
lnx hl инвертировать содержимое HL
mov m,a передать содержимое регистра А в ячейку памяти
hit прервать выполнение программы
Указать содержимое каждого из восьми РОН после выполнения двух любых выбранных команд в программах П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
Выполнить все команды TURBO DEBUGGER
Программа №11.2
lxi hl,0010 записать адрес 0010 в регистр HL
lxi bc,0011 записать адрес 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.
2.
3.
4.
5.
6.
Анализ результатов, полученных в ходе лабораторной работы:
Используя программу TURBO DEBUGGER, мы изучили команды программы TURBO DEBUGGER, необходимые при разработке и отладки программ на языке Ассемблера.
В результате выполнения данной лабораторной работы, были получены практические знания проектирования и тестирования программ. Разработана схема работы программы, проделаны тесты, подтвердившие правильность работы программы.
Освоены основы низкоуровневого языка программирования Ассемблер.
Изучили назначение и взаимодействие регистров, ячеек памяти, а также псевдокодов. Научились разрабатывать и отлаживать простейшие управляющие программы с использованием псевдокодов.
Приложение А
Система команд микропроцессора КР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) - содержимое регистровой пары
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)
МЦ - количество машинных циклов
МТ - количество машинных тактов
Ф - формат команды в байтах
Группа команд пересылки
Мнемокод
Операция
МЦ
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
M(SP-2)((RP’’L)
(SP)((SP)-2
16
POP RP’’
(RP’’L)(M(SP)
3
11
1
(RP’’H)(M(SP+1)
(SP)((SP)+2
17
XTHL
M(SP)((H)
5
18
1
M (SP-1)((L)
18
IN PORT
(A)(I(PORT)
3
10
2
19
OUT PORT
O(PORT)((A)
3
10
2
Группа команд арифметических операций
Мнемокод
Операция
МЦ
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)+
+CY
2
7
1
S, Z, AC, P, CY
Мнемокод
Операция
МЦ
MT
Ф
Признаки
31
SUB M
(A)((A)-M(HL)
2
7
1
S, Z, AC, P, CY
32
SBB M
(A)((A)-M(HL)-
-CY
2
7
1
S, Z, AC, P, 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
десятичная коррекция (A)
1
4
1
S, Z, AC, P, CY
Группа команд логических операций
Мнемокод
Операция
МЦ
MT
Ф
Признаки
40
ANA R
(A)((A) AND (R)
1
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
Сдвиг влево цикл
через A(0)(CY
1
4
1
CY(A (7), AC=O
47
RAR
Сдвиг вправо через A(7)(CY
1
4
1
CY(A(0), AC=O
48
CMA
(A)(INV (А)
1
4
1
49
ANA M
(A)((A)
AND M(HL)
2
7
1
S, Z, P, AC, CY=0
50
XRA M
(A)((A)
XOR M(HL)
2
7
1
SZ, P, AC=CY=0
51
ORA M
(A)((A)OR M(HL)
2
7
1'
S, Z, P, 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
56
CPID8
(A)(D8
2
7
2
S, Z, AC, P, CY
Мнемокод
Операция
МЦ
MT
Ф
Признаки
57
CMC
(CY)(INV (CY)
1
4
1
CY
58
STC
(CY)(1
1
4
1
CY=1
Группа команд передачи управления
Мнемокод
Операция
МЦ
MT
Ф
Признаки
59
PCHL
(PCH)((H)
(PCL)((L)
1
5
1
Все признаки сохраняют свои значения
60
JMP A16
(PC)(A16
3
10
3
61
J(COND)
A16
Если условие выполняется, то
(PC)(A16, иначе
(PC)((PC)+1
6
17
3
62
CALL A16
M(SP-1)((PCH)
M(SP-2)((PCL)
(SP)((SP)-2
(PC)(A16
3
11
- -
63
С (COND)
A16
Если условие выполняется, то см. ком. 62, иначе
(PC)((PC)+1
5
3
17
11
3
-
64
RST N
M(SP)((PC)
(PC)(N*8
3
11
1
65
RET
(PCL)(M (SP)
(PCH)(M (SP+1)
(SP)((SP)+2
3
10
1
66
R (COND)
Если условие выполняется. то см. ком. 65, иначе
(РС)((РС)+1
3
1
11
3
1
Группа специальных команд
Мнемокод
Операция
МЦ
MT
Ф
Признаки
67
EI
Разрешить прерывание (триггер РПР)(1
1
4
1
Все признаки
сохраняют свои значения
68
DI
Запретить прерывания (триггер РПР)(0
1
4
1
69
HLT
Останов
1
7
1
70
NOP
Пустая операция
1
4
1
Приложение Б
Машинные коды команд микропроцессора КР580ВМ80А
Мнемокод
КОП
ACI
D8
CE
ADC
A
8F
ADC
B
88
ADC
C
89
ADC
D
3A
ADC
E
8B
ADC
H
8C
ADC
L
8D
ADC
M
8E
ADD
A
87
ADD
B
80
ADD
C
81
ADD
D
82
ADD
E
83
ADD
H
84
ADD
L
85
ADD
M
86
ADI
D8
C6
ANA
A
A7
ANA
B
A0
ANA
C
A1
ANA
D
A2
ANA
E
A3
ANA
H
A4
ANA
L
A5
ANA
M
A6
ANI
D8
E6
CALL
ADDR
CD
CC
ADDR
DC
CM
ADDR
FC
CMA
2F
CMC
3F
CMP
A
BF
CMP
B
B8
CMP
C
B9
CMP
D
BA
CMP
E
BB
CMP
H
BC
CMP
L
BD
Мнемокод
КОП
CMP
M
BE
CNC
ADDR
D4
CNZ
ADDR
C4
CP
ADDR
F4
CPE
ADDR
EC
CPI
D8
FE
CPO
ADDR
E4
CZ
ADDR
CC
DAD
B
09
DAD
D
19
DAD
H
29
DAD
SP
39
DCR
A
3D
DCR
B
05
DCR
C
0D
DCR
D
15
DCR
E
1D
DCR
H
25
DCR
L
2D
DCR
M
35
DCX
B
0B
DCX
D
1B
DCX
H
2B
DCX
SP
3B
DI
F3
EI
FB
HLT
76
IN
PORT
DB
INR
A
3C
INR
B
04
INR
C
0C
INR
D
14
INR
E
1C
INR
H
24
INR
L
2C
INR
M
34
INX
B
03
INX
D
13
INX
H
23
Мнемокод
КОП
INX
SP
33
JC
ADDR
DA
JM
ADDR
FA
JMP
ADDR
C3
JNC
ADDR
D2
JNZ
ADDR
C2
JP
ADDR
F2
JPE
ADDR
EA
JPO
ADDR
E2
JZ
ADDR
CA
LDA
ADDR
3A
LDAX
B
0A
LDAX
D
1A
LHLD
ADDR
2A
LXI
B,D16
01
LXI
D,D16
11
LXI
H,D16
21
LXI
SP,D16
31
MOV
A,A
7F
MOV
A,B
78
MOV
A,C
79
MOV
A,D
7A
MOV
A,E
7B
MOV
A,H
7C
MOV
A,L
7D
MOV
A,M
7E
MOV
B,A
47
MOV
B,B
40
MOV
B,C
41
MOV
B,D
42
MOV
B,E
43
MOV
B,H
44
MOV
B,L
45
MOV
B,M
46
MOV
C,A
4F
MOV
C,B
48
MOV
C,C
49
MOV
C,D
4A
MOV
C,E
4B
Мнемокод
КОП
MOV
C,H
4C
MOV
C,L
4D
MOV
C,M
4E
MOV
D,A
57
MOV
D,B
50
MOV
D,C
51
MOV
D,D
52
MOV
D,E
53
MOV
D,H
54
MOV
D,L
55
MOV
D,M
56
MOV
E,A
5F
MOV
E,B
58
MOV
E,C
59
MOV
E,D
5A
MOV
E,E
5B
MOV
E,H
5C
MOV
E,L
5D
MOV
E,M
5E
MOV
H,A
67
MOV
H,B
60
MOV
H,C
61
MOV
H,D
62
MOV
H,E
63
MOV
H,H
64
MOV
H,L
65
MOV
H,M
66
MOV
L,A
6F
MOV
L,B
68
MOV
L,C
69
MOV
L,D
6A
MOV
L,E
5B
MOV
L,H
6C
MOV
L,L
6D
MOV
L,M
6E
MOV
M,A
77
MOV
M,B
70
MOV
M,C
71
MOV
M,D
72
MOV
M,E
73
MOV
M,H
74
MOV
M,L
75
Мнемокод
КОП
MVI
A,D8
3E
MVI
B,D8
06
MVI
C,D8
0E
MVI
D,D8
16
MVI
E,D8
1E
MVI
H,D8
26
MVI
L,D8
2E
MVI
M,D8
36
NOP
00
ORA
A
B7
ORA
B
B0
ORA
C
B1
ORA
D
B2
ORA
E
B3
ORA
H
B4
ORA
L
B5
ORA
M
B6
ORI
D8
F6
OUT
PORT
D3
PCHL
E9
POP
B
C1
POP
D
D1
POP
H
E1
POP
PSW
F1
PUSH
B
C5
PUSH
D
D5
PUSH
H
E5
PUSH
PSW
F5
RAL
17
RAR
1F
RC
D8
RET
C9
RLC
07
RM
F8
RNC
D0
RNZ
C0
RP
F0
RPE
E8
RPO
E0
RRC
0F
RST
0
C7
RST
1
CF
Мнемокод
КОП
RST
2
D7
RST
3
DF
RST
4
E7
RST
5
EF
RST
6
F7
RST
7
FF
RZ
C8
SBB
A
9F
SBB
B
98
SBB
C
99
SBB
D
9A
SBB
E
9B
SBB
H
9C
SBB
L
9D
SBB
M
9E
SBI
D8
DE
SHLD
ADDR
22
SPHL
F9
STA
ADDR
32
STAX
B
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
XCHG
EB
XRA
A
AF
XRA
B
A8
XRA
C
A9
XRA
D
AA
XRA
E
AB
XRA
H
AC
XRA
L
AD
XRA
M
AE
XTHL
E3
XRI
D8
EE
Приложение Б
Министерство образования и науки Самарской области
Государственное образовательное учреждение
среднего профессионального образования
«Жигулевский государственный колледж»
ОТЧЕТ ПО ЛАБОРАТОРНЫМ РАБОТАМ
по междисциплинарному курсу МДК02.01
«Микропроцессорные системы»
профессионального модуля
ПМ02. Применение микропроцессорных систем, установка и настройка периферийного оборудования
для специальности СПО 230113 «Компьютерные системы и комплексы»
Выполнил: студент группы Д3Т1
Иванов И.И.
Проверил преподаватель
Кузнецов Е.Г.
2014
13PAGE \* MERGEFORMAT14- 1 -15
13PAGE \* MERGEFORMAT14- 1 -15
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415
А=9
<РОН3=2>
13 EMBED Equation.3 1415
7
адрес
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415
А=7
5
+
3
8
<Поле А>
Индексная.
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415
5
+
3
13 EMBED Equation.3 1415
+
8
9
Индекс Р5
3
Поле А
6
9
0
6
1
2
3
4
5
Рис.3.22 2 2
1
2
3
5
6
4
Рис.3.1
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415
адрес
данные
0010
01
0011
01
стек
B
00FE
01
00FD
00
C
0FFC
01
0FFB
00
D
0FFA
02
0FF9
00
F
0FF8
14
Содержание памяти
13 EMBED Word.Picture.8 1415