Министерство образования и науки Самарской области Государственное бюджетное образовательное учреждение среднего профессионального образования "Жигулевский государственный колледж" МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ по междисциплинарному курсу МДК02.01 «Микропроцессорные системы» профессионального модуля ПМ02. Применение микропроцессорных систем, установка и настройка периферийного оборудования Курс 3 Для специальности СПО 230113 «Компьютерные системы и комплексы» с контрольными заданиями и методическими указаниями Жигулевск, 2014г. -1- СОДЕРЖАНИЕ Введение……………………………………………………………………………4 Лабораторная работа №1. Адресация информации и вычисление адресов……7 Лабораторная работа №2. Исследование работы запоминающих устройств различного типа…………………………………………………………………………15 Лабораторная работа №3. Запись и исполнение простых программ………..25 Лабораторная работа №4. Исследование программ ввода вывода………….39 Лабораторная работа №5. Маскирование данных и организация условных переходов……..................................................................................................................45 Лабораторная работа №6. Разработка и использование программ с подпрограммами………………………………………………………………………..54 Лабораторная работа №7. Разработка и исследование программ работы со стеком……………………………………………………………………………………63 Лабораторная работа №8. Программирование арифметических операций над многобайтными числами……………………………………………………………….70 Лабораторная работа №9. Разработка и исследование программ умножения данных……………………………………………………………………………………77 Лабораторная работа №10. Разработка и исследование программ деления данных…………………………………………………………………………………….85 Лабораторная работа №11. Работа с программой – отладчиком…………….. 91 Приложение А………………………………………………………………….101 Приложение Б…………………………………………………………………..107 -2- ВВЕДЕНИЕ УВАЖАЕМЫЙ СТУДЕНТ! Методические указания по МДК02.01 «Микропроцессорные системы» для выполнения лабораторных работ созданы Вам в помощь для работы на занятиях, подготовки к лабораторным работам, правильного составления отчетов. Приступая к выполнению лабораторной работы, Вы должны внимательно прочитать цель и задачи занятия, ознакомиться с требованиями к уровню Вашей подготовки в соответствии с федеральными государственными стандартами третьего поколения (ФГОС-3), краткими теоретическими и учебнометодическими материалами по теме лабораторной работы, ответить на вопросы для закрепления теоретического материала. Все задания к лабораторной работе Вы должны выполнять в соответствии с инструкцией, анализировать полученные в ходе занятия результаты по приведенной методике. Отчет о лабораторной работе Вы должны выполнить по приведенному алгоритму, опираясь на образец. Наличие положительной оценки по лабораторным работам по МДК02.01 «Микропроцессорные системы» необходимо для получения допуска к экзамену, поэтому в случае отсутствия на уроке по любой причине или получения неудовлетворительной оценки за лабораторную Вы должны найти время для ее выполнения или пересдачи. Внимание! Если в процессе подготовки к лабораторным работам или при решении задач у Вас возникают вопросы, разрешить которые самостоятельно не удается, необходимо обратиться к преподавателю для получения разъяснений или указаний в дни проведения дополнительных занятий. Пособие содержит материалы для организации -3- лабораторных работ по междисциплинарному курсу "Микропроцессорные системы" и является частью профессионального модуля ПМ02 «Применение микропроцессорных систем, установка и настройка периферийного оборудования», а также частью основной профессиональной образовательной программы по специальности СПО в соответствии с ФГОС по специальности 230113 Компьютерные системы и комплексы базовой и углубленной подготовки) в части освоения основного вида профессиональной деятельности (ВПД): 230113 Компьютерные системы и комплексы и соответствующих профессиональных компетенций (ПК): 1. ПК2.1. Создавать программы на языке ассемблера для микропроцессорных систем. 2. ПК2.2. Производить тестирование и отладку микропроцессорных систем. С целью овладения указанным видом профессиональной деятельности и соответствующими профессиональными компетенциями обучающийся в ходе выполнения лабораторных работ должен: иметь практический опыт: - создания программ на языке ассемблера для микропроцессорных систем; -тестирования и отладки микропроцессорных систем; - применения микропроцессорных систем; уметь: - составлять программы на языке ассемблера для микропроцессорных систем; - производить тестирование и отладку микропроцессорных систем (МПС); - выбирать микроконтроллер/микропроцессор для конкретной системы управления; - выявлять причины неисправностей и сбоев, принимать меры по их устранению; знать: - базовую функциональную схему МПС; - программное обеспечение микропроцессорных систем; - структуру типовой системы управления (контроллер) и организацию микроконтроллерных систем; -4- - методы тестирования и способы отладки МПС; . В пособии рассматриваются основы создания программ на ассемблере, а также средства отладки такого программного обеспечения. Изучение этих вопросов ведется на примере языка программирования микропроцессора КР580ВМ80А (Intel 8080), учебно-отладочного устройства “Эмулятор МПС580” и кросс-средств для персонального компьютера. Целью данного пособия является привитие первичных навыков по программированию микропроцессорных систем на уровне микропроцессора (на языке ассемблера), а также ознакомление с аппаратными и программными средствами отладки таких систем и соответствующего программного обеспечения. В основу пособия положено изучение системы команд микропроцессора КР580ВМ80А (зарубежный аналог - Intel 8080). Этот микропроцессор впервые увидел свет в 1974 году, однако до сих пор используется в относительно простых микропроцессорных устройствах. Кроме того, он стал своеобразной основой для появления и развития микропроцессоров следующих поколений. Основные принципы построения микропроцессора КР580ВМ80А и систем на его основе, заложенные более 25 лет назад, целиком находят свое отражение в современных изделиях. С этой точки зрения данный микропроцессор является своеобразной “классической учебной моделью” для первоначального ознакомления как с языком программирования микропроцессоров (ассемблером), так и с основными принципами проектирования и отладки систем на их основе. Важнейшим этапом создания любой технической системы является ее отладка. Особенностью отладки микропроцессорных систем является нерасторжимость программных и аппаратных средств. Поэтому проектировщик таких систем должен владеть средствами отладки программного обеспечения и средствами комплексной отладки программной и аппаратной частей системы. Пособие знакомит студентов с такими средствами на примере учебно-отладочного устройства “Эмулятор МПС580” и кросс-средств проектирования и отладки программного обеспечения на персональном компьютере Turbo Debuger. -5- Пособие содержит примеры написания вычислительных и управляющих программ для микропроцессора КР580ВМ80А. На основе этих примеров предлагаются варианты заданий для самостоятельной индивидуальной работы, которые фактически являются и заданиями для лабораторных занятий по основам микропроцессорной техники. Пособие содержит все справочные материалы, необходимые для их выполнения. Лабораторные работы 1 и 2 дают возможность исследования оперативных запоминающих устройств микропроцессорных систем статического и динамического типа, а также возможности задания различных способов адресации информации. ЗАДАНИЯ ДЛЯ ДОМАШНЕЙ ПОДГОТОВКИ Для выполнения лабораторной работы необходимо изучить теоретические вопросы, связанные с построением микропроцессорных систем на основе МП КР580ВМ80А. Эти вопросы включают: 1) Ознакомление с техническими характеристиками микропроцессора КР580ВМ80А (аналог Intel 8080): разрядность, объем адресуемой памяти, количество устройств ввода вывода и т.д.; 2) Ознакомление с программной моделью микропроцессора: количество регистров, назначение, разрядность и правила использования регистров; 3) Ознакомление с типовой архитектурой микропроцессорных систем на основе изучаемого процессора; 4) Ознакомиться с назначением в типовой структуре шин микропроцессорной системы: шины данных, адреса, управления. Изучить понятие однонаправленной и -6- двунаправленной шины, шины с тремя состояниями, понятия разрядности шин и чем оно определяется. 5) Изучение структуры, режимов работы и схему перехода к различным режимам работы микроЭВМ. 6) Изучение правил работы с числами в различных системах счисления. Перевод чисел из одной системы счисления в другую (двоичную, шестнадцатеричную, десятичную). 7) Правила выполнения арифметических и логических операций с числами в двоичной системе счисления. Таблицы истинности логических операций. 8)Ознакомление с языком программирования и системой команд МП КР580ВМ80А 9) Изучение правила записи программ на языке Ассемблера Желаем Вам успехов!!! -7- РАЗДЕЛ 1 Тема 1.2 .Организация памяти микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №1 АДРЕСАЦИЯ ИНФОРМАЦИИ И ВЫЧИСЛЕНИЕ АДРЕСОВ Учебные цели: Изучение основных методов адресации информации и обработки адресов по теме Учебные задачи: 1.Исследование различных способов адресации информации при написании команд и программ; 2. Закрепление полученных теоретических знания по вопросам принципа адресации информации при программировании микропроцессорных систем. 3.Практически определять исполнительные адреса при различных способах адресации информации. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы. Задачи лабораторной работы: -8- 1. Используя специальные программные средства исследовать способы задания адресов ячеек памяти при составления команд и инструкций для программирования микропроцессорных систе;. 2. Практическое использование нового программного продукта. Обеспеченность занятия: 1. Учебно-методическая литература: - Нешумова К.А. Электронные вычислительные машины и системы. -М.: Академия., 2009,366 с. - Калиш Г.Г. Основы вычислительной техники. – М.: Высшая школа, 2000 г. - Коган Б.М. Электронные вычислительные машины и системы - М.:Энергоатомиздат, 1995,552 с. - Кузин А.В., Жаворонков М.А. Микропроцессорная техника. – М., ИЦ Академия, 2007 г. - Келим Ю.М. Вычислительная техника. Учебное пособие для студентов СПО:М.,Академия, 2007.-384. 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г. 3. Технические средства обучения: - Персональный компьютер; - Принтер. 4. Программное обеспечение: - Операционная система Windows; - Учебная программа VMSLAB 5. 5. Лабораторное оборудование: -9- - Персональный компьютер; - Принтер. 6. Рабочая тетрадь в клетку 7. Ручка. 8. Карандаш простой. 9. Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы Для выполнения операций, указанных в программе , процессор должен получить двоичные коды необходимых операндов, которые хранятся в оперативной памяти. Существует два различных принципа поиска операндов в памяти: ассоциативный и адресный. В лабораторной работе изучаются некоторые варианты адресного поиска, который предполагает, что искомый операнд извлекается из ячейки оперативной памяти, номер которой формируется на основе информации в адресном поле команды. В современных ЭВМ адресный код и исполнительный адрес, как правило, не совпадают. Таким образом, способ адресации можно определить как способ формирования исполнительного адреса операнда Аисп по адресному коду команды Ак. Способов адресации существует достаточно много. Параметры процесса обработки информации существенно зависят от выбранного способа адресации. Одни способы позволяют увеличить объем адресуемой памяти без удлинения команды, но снижают скорость выполнения операции, другие ускоряют операции над массивами данных, третьи упрощают работу с подпрограммами и т.п. В лабораторной работе предлагается адресации: - 10 - изучить следующие методы - прямой; - косвенный; - индексный; - относительный. Рассмотрим способы адресации операндов и команд. Прямая адресация. Исполнительный адрес - адрес ячейки ОП, в которой хранится адресуемое слово, совпадает с адресной частью команды. Этот метод используется в ЭВМ в комбинации с другими методами адресации. Прямая регистровая адресация. В адресном поле команды содержится адрес R регистра СОЗУ процессора, в котором хранится операнд .При таком способе адресации быстродействие ЭВМ повышается, так как нет необходимости извлекать операнды из ОП и команда имеет более короткий формат, так как регистров в СОЗУ обычно значительно меньше чем ячеек в оперативной памяти. Косвенная адресация. В адресном поле команды указывается адрес ячейки оперативной памяти, содержащей другой адрес, который может быть исполнительным А или еще одним косвенным адресом (так называемая многоступенчатая косвенная адресация). Таким образом, косвенная адресация может быть определена как "адресация адреса". Она используется в тех случаях, когда часто разрядов в адресной части команды недостаточно для указания всех адресов оперативной памяти ЭВМ. Относительная адресация. При динамическом распределение памяти базовые адреса массивов изменяются в процессе выполнения программы, в результате адреса не могут быть зафиксированы в программе. Для обеспечения динамического распределения палили используют способ относительной адресации. Относительный адрес состоит из двух полей: В, указывающего базовый адрес Аб массива; D, представляющего собой относительный адрес Аотн Поле D принято называть смещение D операнда относительно начала массива. Исполнительный адрес вычисляется по формуле Аисп = (В)+ D. Индексная адресация. В этом случае адрес в команде представляется двумя полями. В поле В указывается базовый адрес массива А- оперативной памяти. Поле - 11 - X называется индексом. Если X = 0, то адрес А- не модифицируется, т. е. является исполнительным А. Значение X не равно 0 определяет адрес ячейки памяти индексов, в которой хранится индекс i. Модификация адреса сводится к вычислению исполнительного адреса Аисп = Аб + (X), где {X) - содержимое ячейки X индексной памяти. Вопросы для закрепления теоретического материала к лабораторной работе: 1. Чем отличаются ассоциативный и адресный методы поиска информации в памяти компьютера ? 2. Рассчитайте какие объёмы памяти могут быть адресованы с помощью изученных методов адресации ? 3. Сравните по быстродействию изученные методы адресации. 4. Какие методы адресации упрощают работу с массивами данных ? Задания для лабораторного занятия: 1.В сумматоре АЛУ процессора находится число 4. К нему необходимо прибавить число 6 используя заданные способы адресации. Число 6 хранится в ОЗУ в ячейке№. Смещение хранится в индексном регистре №. или, при относительной алресации, в счетчике команд процессора. Таблица 1 Вар Адресация Ячейка Индексный Смещение Счетчик № регистр № команд 01 косвенная, индексная, прямая 7 3 2 - 02 косвенная, индексная, 7 1 3 - - 12 - непосредственная 03 индексная, косвенная, относительная 04 прямая, индексная, относительная 05 прямая, непосредственная, косвенная 06 относительная, непосредственная, прямая 07 индексная, относительная. прямая 08 непосредственная, индексная, косвенная 09 прямая, косвенная, непосредственная 10 прямая, индексная, косвенная 15 1 4 3 13 5 7 5 5 - - - 11 - 3 6 12 3 7 7 10 7 3 - 5 - - - 9 2 8 - Инструкции по выполнению работы В упрощенном виде все указанные методы адресации смоделированы программным путем и представлены в графической форме на экране монитора. Вся работа ведется в диалоговом режиме экране. по командам, отображаемым на Началу работы предшествует краткое объяснение цели работы и ее содержания. Для выполнения работы инициируется модуль start12.bat. Текст описания лабораторной работы содержится в файле «Лабораторная работа №12. После запуска программы, появляется возможность исследования различных способов адресации информации, используемых в запоминающих устройствах МПС. - 13 - Внимание! Выполняйте инструкции, появляющиеся на экране монитора. Интерфейс программы «Прямая адресация»: Интерфейс программы «Косвенная адресация»: - 14 - Интерфейс программы «Индексная адресация»: Интерфейс программы «Относительно-индексная адресация»: - 15 - Интерфейс программы «Относительная адресация»: Методика анализа результатов, полученных в ходе лабораторной работы: Отметим, что выбор того или иного метода адресации в значительной степени определяет время выполнения команды. Самая быстрая адресация — это регистровая, так как она не требует дополнительных циклов обмена по магистрали. Если же адресация требует обращения к памяти, то время выполнения команды - 16 - будет увеличиваться за счет длительности необходимых циклов обращения к памяти. Понятно, что чем больше внутренних регистров у процессора, тем чаще и свободнее можно применять регистровую адресацию, и тем быстрее будет работать система в целом. Порядок выполнения отчета по лабораторной работе: 1. Наименование и цель работы 2. Примеры исследуемых методов адресации. Изобразить форматы команд и способ формирования исполнительного адреса. (распечатка экрана программы или графическое отображение в форме таблиц) 3. Ответы на контрольные вопросы 4. Выводы. Сравнительный анализ различных методов адресации Образец отчета по лабораторной работе: ЛАБОРАТОРНАЯ РАБОТА №1 АДРЕСАЦИЯ ИНФОРМАЦИИ И ВЫЧИСЛЕНИЕ АДРЕСОВ Учебные цели: Изучение основных методов адресации информации и обработки адресов по теме Учебные задачи: 1.Исследование различных способов адресации информации при написании команд и программ; 2. Закрепление полученных теоретических знания по вопросам принципа адресации информации при программировании микропроцессорных систем. 3.Практически определять исполнительные адреса при различных способах адресации информации. - 17 - Способы адресации бывают: Регистровая адресация. Операнд разыскивается во внутреннем операнде МП. Всегда является однобайтовыми, потому что они не требуют данных и адресов вне МП. Непосредственная адресация. Операнд поступает в программную память из следующего байта (иногда из двух байтов). Операнд следует команде непосредственно за КОП. Данные загружаются с помощью команды LXI SP, принадлежащие группе передачи данных. Прямая адресация. Второй и третий байты команды указывают на адрес операнда. Они являются адресами в прямом способе адресации, тогда как при непосредственной адресации эти же байты были операндами. Косвенная адресация. Пара регистров HL указывает на адрес операнда в памяти. Этот тип команды всегда однобайтовый. Соответствующий адрес памяти данных указывается содержимым пары HL, которая здесь играет роль адресного регистра. Задание В сумматоре ( Асс ) АЛУ процессора находится число 3. К нему необходимо прибавить число 6 используя заданные способы адресации. Число 5 хранится в ОЗУ в ячейке№. Смещение хранится в индексном регистре №. или, при относительной адресации, в счетчике команд процессора. Вар Адресация Ячейка № Индексный Смещение Счетчик команд регистр № 12 косвенная, индексная 9 5 - 18 - 3 - Асс = 3, индексного регистра 5=3, ячейки 9=5. Прибавить 2 к Содержимое 1) Асс , используя косвенную и индексную адресацию. АКосвенная. сс А Аисп Асс 3 исп 8 + 5 7 адрес А=7 <РОН3=2> Аисп <Поле А> А=9 КОП ПА Поле А=7 - формат команды при косвенной адресации косвенная Асс Индексная. 9 Аисп 6 Поле А + 3 3 8 Аисп + 5 Индекс Р5 9 Асс КОП ПА Индкс Р5=3 Поле А=6 - формат команды при индексной адресации индексная Ответы на контрольные вопросы: 1. 2. 3. - 19 - 4. Выводы. Сравнительный анализ различных методов адресации Каждая команда, выбираемая (читаемая) из памяти процессором, определяет алгоритм поведения процессора на ближайшие несколько тактов. Код команды говорит о том, какую операцию предстоит выполнить процессору и с какими операндами (то есть кодами данных), где взять исходную информацию для выполнения команды и куда поместить результат (если необходимо). Код команды может занимать от одного до нескольких байт, причем процессор узнает о том, сколько байт команды ему надо читать, из первого прочитанного им байта или слова. В процессоре код команды расшифровывается и преобразуется в набор микроопераций, выполняемых отдельными узлами процессора. Большая часть команд процессора работает с кодами данных (операндами). Одни команды требуют входных операндов (одного или двух), другие выдают выходные операнды (чаще один операнд). Входные операнды называются еще операндами-источниками, а выходные называются операндами-приемниками. Все эти коды операндов (входные и выходные) должны где-то располагаться. Они могут находиться во внутренних регистрах процессора (наиболее удобный и быстрый вариант). Они могут располагаться в системной памяти (самый распространенный вариант). Наконец, они могут находиться в устройствах ввода/вывода (наиболее редкий случай). Определение места положения операндов производится кодом команды. Причем существуют разные методы, с помощью которых код команды может определить, откуда брать входной операнд и куда помещать выходной операнд. Эти методы называются методами адресации. Эффективность выбранных методов адресации во многом определяет эффективность работы всего процессора в целом. Отметим, что выбор того или иного метода адресации в значительной степени определяет время выполнения команды. Самая быстрая адресация — это регистровая, так как она не требует дополнительных циклов обмена по магистрали. - 20 - Если же адресация требует обращения к памяти, то время выполнения команды будет увеличиваться за счет длительности необходимых циклов обращения к памяти. Понятно, что чем больше внутренних регистров у процессора, тем чаще и свободнее можно применять регистровую адресацию, и тем быстрее будет работать система в целом. РАЗДЕЛ 1 Тема 1.2 .Организация памяти микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА № 2 ИССЛЕДОВАНИЕ РАБОТЫ ЗАПОМИНАЮЩИХ УСТРОЙСТВ РАЗЛИЧНОГО ТИПА Учебные цели: 1. Изучение основных принципов построения оперативных запоминающих устройств статического и динамического типов и их работа 2.Исследование оперативных ЗУ статического и динамического типов Учебные задачи: 1.Исследование работы и принципа организации оперативных ЗУ статического и динамического типа; 2. Закрепление полученных теоретических знания по вопросам организации запоминающих устройств; 3.Практически наблюдать принципы записи и считывания информации из ячеек памяти по командам процессора Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - 21 - - выполнять требования технического задания по программированию микропроцессорных систем; знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы. - структуру типовой системы управления и организации микроконтроллерных систем; - состояние производства и использования микропроцессорных систем. Задачи лабораторной работы: 1. Используя специальные программные средства исследовать принципы записи и считывания данных из ячеек памяти статических и динамических ЗУ; 2. Практическое использование нового программного продукта. Обеспеченность занятия: 1. Учебно-методическая литература: - - Калиш Г.Г. Основы вычислительной техники. – М.: Высшая школа, 2000 г. - Коган Б.М. Электронные вычислительные машины и системы - М.:Энергоатомиздат, 1995,552 с. - Кузин А.В., Жаворонков М.А. Микропроцессорная техника. – М., ИЦ Академия, 2007 г. - Келим Ю.М. Вычислительная техника. Учебное пособие для студентов СПО:М.,Академия, 2007.-384. - Сергеев Н.П., Вашкевич Н.П. Основы вычислительной техники. Изд.-М., Академия,2008 г,312с 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г. - 22 - 3. Технические средства обучения: - Персональный компьютер; - Принтер. 4. Программное обеспечение: - Операционная система Windows; - Учебная программа VMSLAB 9. 5. Лабораторное оборудование: - Персональный компьютер; - Принтер. 6. Рабочая тетрадь в клетку 7. Ручка. 8. Карандаш простой. 9. Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы Чаще всего ЗУ выполнены в виде ЗУ с произвольной выборкой, которые имеют ряд преимуществ Полупроводниковые - статические перед ЗУ ОЗУ оперативные с последовательным подразделяются запоминающие устройства доступом. на: (СОЗУ); - динамические оперативные запоминающие устройства (ДОЗУ). Статическое запоминающее устройство. Структура микросхем статических ОЗУ (рис.2.1) включает матрицу накопителя, дешифраторы кода адреса строк и столбцов, устройство ввода-вывода (УВВ). Для управления ИС предназначены: адресные сигналы Ап_1 -АО, обеспечивающие обращение к заданному ЭП, сигнал "Запись-Считывание" (ЗС), определяющий - 23 - режим ИС, сигнал "Выборка микросхемы"(ВМ),разрешающий доступ к накопителю по информационным входу D и выходу F. Матрица накопителя состоит из строк и столбцов, на пересечениях которых размещены элементы памяти. Основу ЭП, вариант схемотехнической реализации которого приведен на рис. 2.2а), составляет статический триггер на транзисторах VTI-VT4. Транзисторы VT5, VT6 являются ключами, через которые триггер подключается к информационным разрядным шипам РШО и РШI. Состояние ключей зависит от уровня сигнала на шине строки Xi: при 1 ключи открыты и информация из разрядных шин записывается в триггер или считывается из него в разрядные шины и далее на выход; при О ключи закрыты, и триггер находится в режиме хранения. Рисунок 2.1 Для обращения к ИС для записи 0 или 1 следует подвести эту информацию ко входу D, затем подать код адреса, разрешающий сигнал ВМ и сигнал режиму ЗС, соответствующий записи, сигналах при указанных возбуждается заданная строка, выбранная дешифратором кода адреса строк, и в результате этого открывается доступ по информационным (разрядным) шинам ко всем ЭП данной строки. Обычно требования к информационной емкости ОЗУ значительно превосходят возможности одной ИС памяти как в отношении разрядности, так и числа хранимых слов. Поэтому при построении ЗУ ИС объединяют в модули, которые вместе с регистрами и устройством управления образуют функциональнозаконченный блок ОЗУ. - 24 - Запоминающая ячейка динамического ОЗУ. В отличие от статических ЗУ, которые хранят информацию пока включено питание, в динамических ЗУ необходима постоянная регенерация информации, однако при этом для хранения одного бита в ДОЗУ нужны всего 1-2 транзистора и накопительный конденсатор (рис. 2.2. Такие схемы более компактны. Естественно, что в микросхеме динамического ОЗУ есть один или несколько тактовых генераторов и логическая схема для восстановления информационного заряда, стекающего с конденсатора. Это несколько "утяжеляет" конструкцию ИМС. Рисунок 2.2. Запоминающая ячейка динамического ОЗУ. В лабораторной работе изучается типичная ячейка динамического ОЗУ на трех транзисторах.. Бит информации хранится в виде заряда емкости затвор-подложка (Cg). Для опроса ячейки подается импульс на линию предварительной зарядки и открывается транзистор T1. При этом выходная емкость Cr заряжается до уровня Ec и возбуждается линия выборки при считывании. Операция ЗАПИСЬ выполняется путем подачи соответствующего уровня напряжения на линию записи данных с последующей подачей импульса на линию выборки при записи. При этом транзистор T1 включен и Cg заряжается до потенциала линии записи данных. Период регенерации зависит от температуры и для современных приборов находится, как правило, в интервале 1-3 мс при температуре от 0 до 55С. Регенерация ячейки динамического ОЗУ выполняется путем считывания хранимого бита информации, передачи его на линию записи данных и последующей записи этого бита в ту же ячейку при помощи импульса, подаваемого на линию выборки при записи. - 25 - Вопросы для закрепления теоретического материала к лабораторной работе: 1.Как осуществляется обмен данными между микропроцессором и памятью? 2. Какие причины ограничивают быстродействие ОЗУ? 3. Предложите способ наращивания емкости памяти при использовании БИС с организацией 1Кх1бит; 1Кх8бит. 4. Назовите достоинства и недостатки статических и динамических ЗУ. 5. Почему нецелесообразно использовать динамические ЗУ для построения небольшой по объёму памяти? 6. Какой тип памяти применяют при построении КЭШ-памяти? 7. Какая технология производства интегральных схем преимущественно используется при изготовлении микросхем памяти? Чем это можно объяснить? 8. Как выполняется регенерация динамического ЗУ? Задания для лабораторного занятия: 1. Исследовать работу статического ЗУ в режиме записи и считывания информации. 1.1. Выполнить операции, указанные в п.1.1. и провести запись исходных данных по 8 последовательно расположенным адресам, начиная о адреса А 1 в соответствии с табл.1 1.2. Зарисовать временную диаграмму записи данных в ЗУ Таблица 1 № п/п Адрес Исходны е данные - 26 - Запись Чтение 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 1.3. Выполнить операции, указанные в п.1.2., и провести считывание записанной в ЗУ информации. Результаты измерений занести в таблицу (табл.2). Провести сравнение результатов записи с исходной информацией. 1.4. Зарисовать временную диаграмму считывания данных из ЗУ 2. Исследование ЗУ матричного типа 2.1. Выполнить операции, указанные в п.2.1. и провести запись исходных данных по 8 последовательно расположенным адресам, начиная о адреса А 1 в соответствии с табл.2 Таблица 2 № п/п Адрес Исходны е данные 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 - 27 - Запись Чтение 2.1. 7 0111 8 1000 Выполнить операции, указанные в п.2.2., и провести считывание записанной в ЗУ информации. Результаты измерений занести в таблицу (табл.2). Провести сравнение результатов записи с исходной информацией. 3. Исследование ячейки ЗУ динамического типа 3.1 Выполнить операции, указанные в п.3.1. и провести запись данных в динамическую ячейку памяти. Убедиться в том, что при записи логической «1», происходит накопление заряда на конденсаторе МОП транзистора Т3 3.1. Выполнить операции, указанные в п.3.1., и провести считывание записанной в ячейку ЗУ информации. Убедиться в том, что при считывании «1» информация теряется (т.е. конденсатор разряжается) Инструкции по выполнению работы Лабораторная работа состоит из двух частей: - в первой изучается статическое запоминающее устройство, а также принцип объединения отдельных устройств для построения памяти большой емкости; - во второй изучаются особенности работы динамической памяти. В лабораторной работе используются программные модели различных ЗУ. Для выполнения работы надо инициировать файл START9.BAT. 1. Исследование статического ЗУ Для этого : - при нажатии цифры 1, предлагается интерфейс программы для исследования ЗУ статического типа; - программа работает в интерактивном режиме и предлагает выполнять определенные действия с помощью клавиатуры; - 28 - 1.1. Исследование работы статического ЗУ в режиме записи - выбирается режим ЗАПИСИ данных; - набирается адрес любой ячейки памяти от ячейки с адресом 0 до F в двоичном коде; - предлагается записать в ячейку памяти данные 0 или 1; - при соответствующем выборе на экране монитора появится новая информация о том, что запись произошла. На схеме возникнет состояние триггера ячейки, временная диаграмма сигналов ЗАПИСИ в ОЗУ и ячейка примет состояние записанной информации 0 или 1. - заполнить таблицу 1 1.2 Исследование работы статического ЗУ в режиме считывания - выбирается режим СЧИТЫВАНИЯ данных; - далее, выполнить операции, указанные в п.1.1 и провести считывание записанной в ЗУ информации по тем же адресам. Результаты занести в таблицу (табл.1). Провести сравнение результатов записи с исходной информацией. Интерфейс программы исследования ОЗУ статического типа: 2 Исследование матрицы накопителя ЗУ Для этого : - при нажатии цифры 2, предлагается интерфейс программы для исследования ЗУ матричного типа; - программа работает в интерактивном режиме и предлагает выполнять определенные действия с помощью клавиатуры; 2.1. Исследование работы накопителя ЗУ в режиме записи - выбирается режим ЗАПИСИ данных; - 29 - - набирается адрес любой ячейки памяти от ячейки с адресом 0 до F в двоичном коде; - предлагается записать в ячейку памяти четырехразрядные данные 0 - F; - при соответствующем выборе на экране монитора появится новая информация о том, что запись произошла. На схеме возникнет состояние триггера ячейки, временная диаграмма сигналов ЗАПИСИ в ОЗУ и ячейка примет состояние записанной информации 0 - F . - заполнить таблицу 1 2.2 Исследование работы накопителя ЗУ в режиме считывания - выбирается режим СЧИТЫВАНИЯ данных; - далее, выполнить операции, указанные в п.2.1 и провести считывание записанной в ЗУ информации по тем же адресам. Результаты занести в таблицу (табл.2). Провести сравнение результатов записи с исходной информацией. 3 Исследование ячейки памяти динамического ЗУ Для этого : - при нажатии цифры 3, предлагается интерфейс программы для исследования ЗУ динамического типа; - программа работает в интерактивном режиме и предлагает выполнять определенные действия с помощью клавиатуры; 3.1. Исследование работы ячейки динамического ЗУ в режиме записи - выбирается режим ЗАПИСИ данных; - на линию ЗАПИСЬ подаем с клавиатуры ПК требуемый сигнал;; - предлагается записать в ячейку памяти логической « 1»; - при соответствующем выборе на экране монитора появится новая информация о том, что запись произошла. На схеме возникнет состояние составного транзистора ячейки, и ячейка примет состояние записанной информации «1» (отобразится изменением цвета накопление заряда перехода МОП транзистора Т3) . - 30 - - в правом окне интерфейса программы будут даны разъяснения происходящих изменений состояния транзисторов ячейки памяти. Внимательно ознакомиться с этими разъяснениями. 3.2 Исследование работы ячейки динамического ЗУ в режиме считывания - выбирается режим СЧИТЫВАНИЯ данных; - на линия СЧИТЫВАНИЕ подаем с клавиатуры требуемый сигнал - далее, выполнить операции, указанные в п.3.1 и провести считывание записанной в ячейку ЗУ информации. Рис.2 Интерфейс программы исследования ОЗУ динамического типа: Убедиться считывании в том, что изменится при состояние транзисторов ячейки и потенциал уровня «1» пойдет по линии считывания. Информация о логической «1» в ячейке разрушится; - в правом окне интерфейса программы будут даны разъяснения происходящих изменений состояния транзисторов ячейки памяти. Внимательно ознакомиться с этими разъяснениями. Содержание отчета. 1. Наименование и цель работы 2. Таблицы полученных экспериментов; 3. Временную диаграмму в циклах ЗАПИСЬ и ЧТЕНИЕ; 4. Схему работы запоминающего элемента в динамической памяти. 5. Ответы на контрольные вопросы. 6. Анализ полученных результатов6. Методика анализа результатов, полученных в ходе лабораторной работы: - 31 - Оперативная память является одним из важнейших элементов компьютера. Именно из нее процессор берет программы и исходные данные для обработки, в нее он записывает полученные результаты. Название “оперативная” эта память получила потому, что она работает очень быстро, так что процессору практически не приходится ждать при чтении данных из памяти или записи в память. Однако содержащиеся в ней данные сохраняются только пока компьютер включен. При выключении компьютера содержимое оперативной памяти стирается. Часто для оперативной памяти используют обозначение RAM (Random Access Memory, то есть память с произвольным доступом) . При обращении к памяти МП выставляет по ША адрес ячейки памяти (ЯП), а по ШУ - сигнал MEMRD в цикле чтения памяти или MEMWR в цикле записи (рис.3). Рис. 3 Временная диаграмма работы блока памяти Образец отчета по лабораторной работе ЛАБОРАТОРНАЯ РАБОТА № 2 ИССЛЕДОВАНИЕ РАБОТЫ ЗАПОМИНАЮЩИХ УСТРОЙСТВ РАЗЛИЧНОГО ТИПА Учебные цели: 1. Изучение основных принципов построения оперативных запоминающих устройств статического и динамического типов и их работа - 32 - 2.Исследование оперативных ЗУ статического и динамического типов Учебные задачи: 1.Исследование работы и принципа организации оперативных ЗУ статического и динамического типа; 2. Закрепление полученных теоретических знания по вопросам организации запоминающих устройств; 3.Практически наблюдать принципы записи и считывания информации из ячеек памяти по командам процессора 1. Исследование работы статического ЗУ 1.1. Исследование режима записи и считывания Таблица 1 № п/п Адрес Исходны Запись Чтение е данные 1 0001 1 1 1 2 0010 0 0 0 3 0011 1 1 1 4 0100 0 0 0 5 0101 1 1 1 6 0110 0 0 0 7 0111 0 0 0 8 1000 1 1 1 Временная диаграмма записи. Операция записи заключается в том, что активное устройство (микропроцессор), захватив магистраль, пытается передать данные в ячейку памяти ОЗУ. На рис. 2. приведена временная диаграмма записи при указании адреса. Последовательность событий следующая. - 33 - Момент t1,. Захватив магистраль, активное устройство выдает сигнал по линии С1 (запись), адрес и данные, которые нужно записать по этому адресу. Момент t2. Через время, не меньшее 150 не (75 нс — на «успокоение» магистрали и 75 нс—запас), активное устройство выдает сигнал сопровождения адреса MSYN. Момент t3. ОЗУ, опознаёт адрес и принимает информацию с шины данных в соответствующую ячейку. Приняв данные, это устройство отвечает ведущему сигналом SSYN. Рис. 2. Временная диаграмма записи Момент t4. Получив сигнал SSYN, активное устройство «узнаёт», что запись состоялась, и поэтому снимает с магистрали все сигналы, кроме сигнала BBSY, Момент t5. Убедившись в том, что ответный сигнал SSYN воспринят активным устройством (о чем говорит снятие сигнала MSYN), ОЗУ снимает сигнал SSYN. Момент t6. Активное устройство, дождавшись снятия сигнала SSYN, освобождает магистраль, т. е. снимает сигнал BBSY. Временная диаграмма чтения. При чтении активное устройство пытается получить слово данных от некоторого программно-доступного элемента, например от ячейки ОЗУ. При правильном указании адреса реализуется временная диаграмма, показанная на рис. 3. При отсутствии абонента с указанным адресом возникает зависание, которое примерно через 10 мкс устраняется искусственной выдачей ответного сигнала от специальной схемы, как и в предыдущем случае. Приведем последовательность событий при чтении. Момент t1. Захватив магистраль, активное устройство выдает адрес ячейки памяти, из которой нужно извлечь данные (одно слово). - 34 - Рис. 3. Временная диаграмма чтения Момент t2. Активное устройство формирует сигнал MSYN, подтверждающий истинность адреса. Момент t3. Схемы дешифрации адреса выбирают нужную ячейку ОЗУ. Момент t4. Активное устройство, получив сигнал SSYN, узнаёт о том, что через время, большее 75 не, информацию можно будет принять с шины данных. Выждав 75нс (или более), устройство принимает информацию. Момент t5. Приняв информацию, активное устройство снимает адрес и сигнал MSYN, так как чтение уже состоялось и эти сигналы утратили актуальность. Момент t6. Оперативное запоминающее устройство снимает данные и сигнал SSYN, так как оно узнало (по снятию сигнала с линии MSYN) о том, что данные уже приняты активным устройством. 2. Исследование работы матричного ЗУ Таблица 1 № п/п Адрес Исходны Запись Чтение е данные 1 0001 0101 0101 0101 2 0010 1010 1010 1010 3 0011 1101 1101 1101 4 0100 0011 0011 0011 5 0101 1110 1110 1110 6 0110 1000 1000 1000 7 0111 0111 0111 0111 8 1000 1111 1111 1111 - 35 - Исследование ячейки памяти динамического ЗУ 3. Запоминающая ячейка динамического ОЗУ. В отличие от статических ЗУ, которые хранят информацию пока включено питание, в динамических ЗУ необходима постоянная регенерация информации, однако при этом для хранения одного бита в ДОЗУ нужны всего 1-2 транзистора и накопительный конденсатор (рис. 4. Такие схемы более компактны. Естественно, что в микросхеме динамического ОЗУ есть один или несколько тактовых генераторов и логическая схема для восстановления информационного заряда, стекающего с конденсатора. Это несколько "утяжеляет" конструкцию ИМС. Рисунок 4. Запоминающая ячейка динамического В лабораторной работе изучается типичная ячейка динамического ОЗУ на трех транзисторах.. Бит информации хранится в виде заряда емкости затвор-подложка (Cg). Для опроса ячейки подается импульс на линию предварительной зарядки и открывается транзистор T1. При этом выходная емкость Cr заряжается до уровня Ec и возбуждается линия выборки при считывании. Операция ЗАПИСЬ выполняется путем подачи соответствующего уровня напряжения на линию записи данных с последующей подачей импульса на линию выборки при записи. При этом транзистор T1 включен и Cg заряжается до потенциала линии записи данных. Период регенерации зависит от температуры и для современных приборов находится, как правило, в интервале 1-3 мс при температуре от 0 до 55С. Регенерация ячейки динамического ОЗУ выполняется путем считывания хранимого бита информации, передачи его на линию записи данных и последующей записи этого бита в ту же ячейку при помощи импульса, подаваемого на линию выборки при записи. - 36 - Ответы на контрольные вопросы: 1. 2. 3. 4. Анализ результатов, полученных в ходе лабораторной работы ОЗУ предназначено для хранения переменной информации; оно допускает изменение своего содержимого в ходе выполнения вычислительного процесса. Таким образом, процессор берёт из ОЗУ код команды и, после обработки какихлибо данных, результат обратно помещается в ОЗУ. Причем возможно размещение в ОЗУ новых данных на месте прежних, которые при этом перестают существовать. В ячейках происходит стирание старой информации и запись туда новой. Из этого видно, что ОЗУ является очень гибкой структурой и обладает возможностью перезаписывать информацию в свои ячейки неограниченное количество раз по ходу выполнения программы. Основной составной частью микросхемы ОЗУ является массив элементов памяти, объединённых в матрицу накопителя. Элемент памяти (ЭП) может хранить один бит информации. Каждый ЭП обязательно имеет свой адрес. Для обращения к ЭП необходимо его “выбрать” с помощью кода адреса, сигналы которого подводят к соответствующим выводам микросхемы. В качестве элемента памяти в статическом ЗУ используются триггера на биполярных или МДП - транзисторах. Число состояний триггера равно двум, что позволяет использовать его для хранения двоичной единицы информации. Получив заряд один раз, ячейка такой памяти способна хранить его сколь угодно долго, по крайней мере до тех пор, пока будет питание. Естественно, что в данном случае исчезают непроизводительные задержки на обновление информации, что приводит к ускорению работы с такими микросхемами. Однако статические ЗУ стоят - 37 - существенно дороже, чем динамические. В результате, сфера применения микросхем статических ЗУ ограничена теми областями, для которых требуется небольшой объем памяти, а значительное быстродействие. Устройства динамической памяти базируются иеся на способности сохранять электрический заряд. Микросхемы динамических ОЗУ отличаются от микросхем статических ОЗУ большей информационной ёмкостью, что обусловлено меньшим числом компонентов в одном элементе памяти и, следовательно, более плотным их размещением в полупроводниковом кристалле. РАЗДЕЛ 1 Тема 1.6 Программное обеспечение микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №3 Запись и выполнение простых программ Учебные цели: исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ. Учебные задачи: 1. Исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ. 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Образовательные результаты, заявленные во ФГОС третьего поколения: - 38 - Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах; - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - состояние производства и использования микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: 1. Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления; 2. Практическое использование нового программного продукта. Обеспеченность занятия: Учебно-методическая литература: - Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с. - 39 - - Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г. - Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005 - Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с. - Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. Технические средства обучения: - Персональный компьютер; - Принтер. 10. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. 11. Лабораторное оборудование: - Персональный компьютер; - Принтер. 12. Рабочая тетрадь в клетку 13. Ручка. 14. Карандаш простой. 15. Чертежные принадлежности: линейка - 40 - Краткие теоретические и учебно-методические материалы по теме лабораторной работы При изучении специализированных микропроцессорных устройств рассматриваются приемы проектирования как аппаратных, так и программных средств МПС. Проектирование программных средств требует знаний, необходимых для выбора метода и микропроцессорного алгоритма решения устройства, для задач, составления входящих в программ функции (часто с использованием языков низкого уровня – языка кодовых комбинаций, языка Ассемблера), а также умения использовать средства отладки программ. Важнейшим этапом создания любой технической системы является ее отладка. Особенностью отладки микропроцессорных систем является нерасторжимость программных и аппаратных средств. Поэтому проектировщик таких систем должен владеть средствами программирования и отладки программного обеспечения системы. Пособие знакомит студентов с такими средствами на примере учебно-отладочного эмклятора“КР580” используемого при устройства – программы - отладке программного обеспечения на персональном компьютере. Пособие содержит примеры написания вычислительных и управляющих программ для микропроцессора КР580ВМ80А. На основе этих примеров предлагаются варианты заданий для самостоятельной индивидуальной работы, которые фактически являются и заданиями для лабораторных занятий по основам микропроцессорной техники. - 41 - Интерфейс программы: 1 - поле исследуемых программ; 2 – цифровой дисплей; 3 – порт ввода; 4 – порт вывода; 5 – область стековой памяти; 6 содержимое регистров общего назначения; 7 – флаги регистра признаков; 8 – оперативная память; 9 – программный счетчик (счетчик команд); 10 –указатель стека Интерфейс выбора заданий: - 42 - Учебно-отладочное устройство (УОУ) предназначено для практического овладения студентами колледжа принципами построения микро-ЭВМ различного назначения на базе микропроцессора КР580ВМ80А, для обучения программированию указанного микропроцессора, а также для отладки программного обеспечения этих микро-ЭВМ. Эмулятор по структуре представляет собой универсальную микро-ЭВМ и может быть использован для моделирования процессов в простых системах управления технологическими процессами при условии оснащения соответствующим программами. Тактовая частота микропроцессора в эмуляторе– 2 МГц. Учебная программа «SHELL» предназначена для знакомства с особенностями построения микро – ЭВМ на микропроцессоре с фиксированным набором команд и может быть использована для исследования методов программирования и работы БИС, входящих в микропроцессорный комплект серии К580. Микро – ЭВМ при создании и исследовании систем управления различными объектами. Она является легко осваиваемыми и удобным средством для отладки относительно небольших (до 1500 строк) программ пользователя. Рабочие зоны эмулятора 0 1 5 6 4 2 1 3 2 4 5 3 Рис.3.2 2 6 22 Рис.3.1 Экран эмулятора состоит из 6 зон. Зона №1 представляет собой экран с исходным текстом программы на ассемблере. Курсор, представляющий собой символ «» указывает на команду, которая выполняется следующей. Счетчик команд РС указывает номер линии с выполняемой командой. Зона №2 – шесть семи - 43 - сегментных индикаторов с точкой. Запись в них осуществляется посредством команды OUT 70…75, где адрес порта составляет номер индикатора. Таким образом команда OUT 70 запишет в первый индикатор значение регистра А. А команда OUT 73 запишет в четвертый индикатор регистра А. Соответствующие сегменты индикаторов к битам регистра А приведены на рис.3.2 Если соответствующие сегмент индикатора включен, то на мониторе он светится ярким цветом, иначе его видно блеклым цветом. Зона №3 представляет собой окно, в котором можно просматривать и изменять содержимое памяти. Зона №4 – это два регистра ввода вывода. Верхний представляет собой регистр ввода. Значение его получить командой IN 80. При этом в регистре А скажется значение этого порта. Регистр вывода выполнен в виде светодиодов. Вывод в него осуществляется командой OUT 90. При этом значения светодиодов устанавливаются соответственно битам регистра А. Существует еще один регистр вывода – звуковой. Включение динамика осуществляется записью не нулевого значение регистра А командой OUT 60. Если в регистре А – 0, то динамик отключится. Зона №5 содержит значения каждого из регистров микропроцессора КР580. Для записи данных в регистры необходимо нажать клавишу, соответствующую номеру регистра. Регистр А имеет №1 и т.д. После введения номера регистра появится окно, для записи данных. Данные – это числа в шестнадцатиричной системе от 01 до FF. И наконец, зона №6 указывает на область памяти, на которую ссылается регистр SP. 3.1 Описание клавиш эмулятора Клавиши используемые для управления ходом выполнением программы. Клавиша F2 используется для перезагрузки программы. - 44 - Нажав клавишу F4 ваша программа будет выполняться до тех пор, пока не будет достигнуто одно из следующих событий: - Программный счетчик РС достигнет той строки, на которой стоял курсор. - Пользователь не нажимает клавишу ESC. - Программа завершит свое выполнение с помощью команды HLT. - Возникнет какая либо ошибка (например, синтаксическая). После того как возникли две предыдущие ситуации, появится окно, в котором будет написана ситуация, из-за которой программа прекратила свое выполнение, строка в которой произошло событие, и варианты действий. Если вы нажмете клавишу 0, то эмулятор реинициализируется и можно будет снова начать выполнение программы. Если вы нажмете клавишу 1, то вы выйдете из эмулятора. Нажав клавишу 2, вы сможете спрятать окно с сообщением до повторного нажатия этой клавиши. Это дает возможность просмотреть результаты работы вашей программы. С помощью клавиши F9 эмулятор будет выполнять вашу программу до возникновения событий, описанных выше. С помощью клавиш курсора (клавиш со стрелками) вы можете перемещаться по вашей программе вверх/вниз и просматривать её. Для просмотра памяти используйте клавиши [и]. Клавиша [сдвигает содержимое в зоне №3 на одну ячейку назад, а клавиша] – на одну ячейку вперёд. Для того чтобы редактировать содержимое памяти, нажмите клавишу М. Появится окно, в котором вас спросят об адресе ячейки памяти. Введите адрес, в пределах от 0000h до 1000h и нажмите Enter. Затем в диалоговом окне введите содержимое ячейки – от 00h до FFh. Для просмотра содержимого стека используются клавиши + и -. Для изменения содержимого вводного порта используйте клавиши 1…8 – где клавиша 1 – соответствует 0 биту регистра, и т.д., вплоть до клавиши 8, которая соответствует седьмому биту входного регистра. Повторное нажатие клавиши инвертирует соответствующий бит регистра. - 45 - Для изменения выходного регистра пользуйтесь клавишами Alt-1…Alt-8. 3.2 Описание программы MENU Программа MENU предназначена для запуска лабораторных программ. Эта программа, как и программа SHELL состоит из нескольких зон. Зона №1 – главная зона этой программы. В ней вы можете выбрать, какую программу необходимо загрузить. В этом окне вы увидите название и номер лабораторной работы. Выберите нужную работу и нажмите клавишу Enter или клавишу R. Появится второе окно, в котором вам предложат загрузить нужную программу из лабораторной работы. Выберите нужную программу с помощью курсора и нажмите Enter – для выполнения эмулирования этой программы. Если вместо клавиши R (или Enter) вы нажмёте клавишу E – то вы сможете отредактировать исходный текст программы. После выхода из редактора загрузится эмулятор с текстом изменённой программы. 3.3 Описание программы EDITOR Программа EDITOR нужна для редактирования уже существующих программ, или для создания новых. При запуске этой программы вы увидите главный (и единственный ) экран программы. Вверху будет строчка статуса, в которой показывается информация о тексте, который редактируется. В остальной части экрана будет сам редактируемый текст. По тексту можно будет передвигаться с помощью клавиш курсора (клавиш со стрелками). Текущая редактируемая программа выделена более ярким цветом, чем остальные. Клавишами «» и «» можно передвигать курсор по длине редактируемой строки, а клавишами «» и «» - по редактируемому тексту. Клавиши с буквами и цифрами – изменяется текст. Нажатием клавиши Backspace – удаляется символ слева от курсора. Клавишей Delete – справа от курсора. Если курсор находится в конце редактируемой строки и вы нажали клавишу Delete, то две строки (текущая и следующая) объединяются в одну. Нажав клавишу Enter вы разбиваете строку в месте положения курсора на две - 46 - строки – первая часть (до курсора) остается на месте, а вторая часть переносится на следующую. После того, как вы закончили править текст программы, нажмите клавишу Esc – программа запишет все изменения и завершит свою работу. Вопросы для закрепления теоретического материала к лабораторной работе: 1. Что такое мнемоническое имя команды микропроцессора? 2. Определите команды, которые следовало бы использовать для выполнения перечисленных действий: - переслать данные в аккумулятор из конкретной области памяти, на которую указывают второй и третий байты команды; - записать копию содержимого аккумулятора в область памяти, на которую указывает содержимое регистровой пары ВС; - загрузить регистр В данными, содержащимися во втором байте команды; - переслать данные из регистра С в регистр В; - записать в область памяти ААСЕ копию содержимого аккумулятора; - загрузить содержимое аккумулятора в регистр D. Задания для лабораторного занятия: Задание 1: Исследование программы 2.1 Задание 2: Исследование программы 2.2 Задание 3: Исследовать работу программы 2.3 Задание 4: Исследование программы 2.4 Задание 5: Исследование программы 2.5 Задание 6: Используя программы 2.2; 2.3; 2.5; составить программу пересылки двух операндов двойной длины, хранящихся в ячейках 0010, 0011, 0012, 0013 в регистрах пары BC и DE Задание 7: Исследовать выполнение программы 2.6 - 47 - Листинги программ находятся в тексте описания лабораторной работы. Внимание: Количество выполняемых заданий назначает преподаватель Инструкции по выполнению работы Микропроцессор КР580ВМ80А имеет фиксированный набор команд. Каждая команда имеет свой машинный код – слово длиной 8, 16 или 24 бит, занимающее соответственно 1, 2 или 3 ячейки памяти в запоминающем устройстве микроЭВМ. Микропроцессор работает по программе, интерпретируя содержимое ячейки памяти как код команды или как данные. Задание №1 Исследовать работу программы 2.1 Рассмотрим программу 2.1, извлекающую число из ячейки памяти с адресом 0010h, осуществляющую инверсию этого числа и записывающую результат по адресу 0011h. Программа 3.1 (в мнемокодах) Мнемокод LXI H, 0010 Комментарий загрузить адрес 0010h MOV A,M передать данные из 0010h в аккумулятор CMA инвертировать содержимое аккумулятора INX HL сформировать адрес для результата MOV M,A записать число из аккумулятора в память HLT прервать выполнение программы Для начала работы программы , необходимо в рабочую ячейку 0010 занести любое шестнадцатиричное число от 01 до FF. При записи программ все числа представляются в шестнадцатеричной системе счисления. Для загрузки программы выберите в начальном меню лабораторную работу №2.1, выберете требуемую для исследования программу и нажмите клавишу Enter. Программа запустится и через некоторое время появится стартовое - 48 - сообщение. Нажмите любую клавишу, появится главный интерфейс программы с выбранной программой для исследования в окне исследуемых программ. Теперь можно приступать к её исследованию. Задание 1: Исследование программы 2.1 1.1 Ввести программу 2.1 в микро – ЭВМ 1.2 Записать исследуемое число по адресу 0010 1.3 Проверить результат выполнения программы по числу записанному в ячейке 0011 1.4 Составьте таблицу 1 содержимого регистров микропроцессора при выполнении программы 3.1 с командой CMA при выполнении программы по шагам. Таблица 1 Содержимое регистров после выполнения каждой команды программы 3.1 Регистры Шаг программы (команда, после которой анализируется содержимое МП регистров) 0 шаг 1шаг 2 шаг 3шаг (начало) LXI H MOV A,M CMA 4 шаг 5 шаг INX HL MOV M,A HLT A FL H L M1=0010 M2=0011 Задание 2: Исследование программы 2.2 2.1Вызвать окно выбора задания и в меню выбрать программу 2.2 2.2 Занести в ячейки 0010 и 0011 сравниваемые числа 2.3 Результат выполнения программы находится в регистре В - 49 - 6 шаг 2.4 Проконтролировать содержимое ячеек памяти и регистров микропроцессора, участвующих в работе программы 2.5 Графически отобразить выполнение команды lda 0010 Программная памятьъ КОП Младший байт адреса Старший байт адреса а Байт 1 Байт 2 Аккумулятор ? Аккумулятор ЗАГРУЗИТЬ Байт 3 До операции Память данных (0010H) LDA Старший байт адреса После операции 1111 1111 б 0000 0000 0001 0000 Младший байт адреса 1111 1111 КОП – 03AH 0000 0000 0000 0010 . Графическое представление команды загрузки аккумулятора Графическое представление команды загрузки аккумулятора Задание 3: Исследовать работу программы 2.3 3.1 Загрузить программу 2.3 в память 3.2 Записать данные в ячейки памяти 0010 и 0011 3.3 Результирующее число находится в ячейке, адресуемой парой регистров ВС 3.4 Составьте таблицу 2 содержимого регистров микропроцессора при выполнении программы 3.3 с командой ADD M при выполнении программы по шагам. - 50 - Таблица 2 № Коман A FL да 1 HL М1/да М2/да М3/да нные нные нные ВС DE lxi hl 0010 2 lxi bc, 0011 3 ldax bc 4 add m 5 inx bc 6 stax bc 7 hlt Задание 4: Исследование программы 2.4 4.1 Записать программу 2.4 в микро – ЭВМ 4.2 Записать исследуемые числа по адресам 0010 и 0011 4.3 Проверить результат выполнения программы по числу, записанному в регистр В Задание 5: Исследование программы 2.5 5.1 Занести шестнадцать любых однобайтных чисел в ячейки памяти, начиная с 0000 5.2 Убедится в выполнении последовательного сдвига этих чисел проверкой содержимого адресов 0010 Задание 6: Используя программы 2.2; 2.3; 2.5; составить программу пересылки двух операндов двойной длины, хранящихся в ячейках 0010, 0011, 0012, 0013 в регистрах пары BC и DE Задание 7: Исследовать выполнение программы 2.6 7.1 Преобразуемое число записать по адресу 0010 7.2 Результат инверсии находится в регистре D - 51 - При выполнении заданий №№ 6 и 7 требуется воспользоваться программой EDITOR из пакета SHELLКР580, Служащей для записи и редактирования программ пользователя. После ввода отредактированных программ в эмулятор предстоит её отладка согласно изученной методике, после чего программа станет доступна для исследования. Приложение №1 Программа №2.1 lxi hi,0010 записать адрес 0010 в паре HL mov a,m передать данные в аккумулятор cma инвертировать содержимое аккумулятора lnx hl инвертировать содержимое HL mov m,a передать содержимое регистра А в ячейку памяти hit прервать выполнение программы Программа №2.2 lda 0010 передать данные из ячейки 0010 в аккумулятор и mov d,a в регистр D lhtd 0011 данные из ячейки 0011 передать в регистр HL sub l вычесть содержимое регистра L из содержимого А jnc cnt если есть заем, идти на CNT mov b,l передать содержимое L в регистр В jmp done перейти на конец программы cnt:mov b,d передать содержимое D в регистр B done:hlt остановить выполнение программы Программа №2.3 lxi hl,0010 записать адрес 0010 в регистр HL lxi bc,0011 записать адрес 0011 в регистр ВС - 52 - ldax bc передать данные из ячейки по адресу аккумулятор add m сложить содержимое аккумулятора и ячейки 0010 inx bc увеличить содержимое ВС на 1 stax bc передать содержимое аккумулятора в ячейку ВС hlt завершить выполнение Программа №2.4 start:lxi hl,0010 записать адрес 0010 в регистр HL lxi bc,0011 записать адрес 0011 в регистр ВС ldax bc передать данные из ячейки ВС в аккумулятор xra m проверка числа iz start если 0, то идти на начало mov b,a записать в регистр В значение аккумулятора hlt завершить выполнение Программа №2.5 lxi hl,0000 загрузить адрес в регистр HL lxi de,0010 загрузить адрес в регистр DE mvl b,10 записать в регистр число 10 cnt:mov a,m передать данные из ячейки HL в аккумулятор stax de передать число из аккумулятора в ячейку DE inx hl инкрементировать HL inx de инкрементировать DE dcr b деинкрементировать B jnz cnt если b≠, идти на CNT hlt завершить выполнение Программа №2.6 lxi hl,0010 записать в регистр HL адрес 0010 - 53 - ВС в mov a,m передать данные в аккумулятор из ячейки HL cma инвертировать число в аккумуляторе mov d,a передать содержимое аккумулятора в регистр D hlt останов программы Методика анализа результатов, полученных в ходе лабораторной работы Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия. Во всех программах был использован следующий метод передачи параметров: Первый 8-разрядный параметр передается в аккумуляторе, второй 8разрядный параметр- регистре В, а третий- в регистре С. Первый 16-разрядный параметр передается в регистрах Н и L, при этом старший байт- в регистре Н. Второй 16-разрядный параметр передается в регистрах D и Е со старшим байтом в D. Большее число параметров передается прямо или косвенно. Вход в программу осуществляется с помощью . Для большинства коротких программ было определена процедура выполнения отдельных команд. Порядок выполнения отчета по лабораторной работе: 1. Цель и наименование работы: 2. Перечень команд передачи данных; 3. Исследуемые программы с комментариями: 4. Заполненные таблицы результатов исследования программ: 5. Графическое представление выполнения команд - 54 - 6. Ответы на контрольные вопросы: 7. Анализа результатов, полученных в ходе лабораторной работы Образец отчета по лабораторной работе: Лабораторная работа № 3. Запись и выполнение простых программ Учебные цели: исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ. Учебные задачи: 1. Исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ. 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Оборудование: ПК IBM/PC или совместимый с программным эмулятором КР580. Порядок выполнения работы. Задание №1. Программа 2.1. LXI HL,0010 // записать число (адрес) 0010h в регистровую пару HL. - 55 - MOV A,M // считать из ячейки памяти 0010h данные в A. CMA // инвертировать содержимое A. INX HL // инкрементировать HL – следующий адрес 0011h. MOV M,A // записать A в ячейку 0011h. HLT // Останов. 1.2. По адресу 0010h находится число 50h. (00h) 1.3. После выполнения программы в ячейке по адресу 0011h – число AFh. (FFh) Таблица 1 Содержимое регистров после выполнения каждой команды программы 1.1 Регистры Шаг программы (команда, после которой анализируется содержимое МП регистров) 0 шаг 1шаг 2 шаг 3шаг 4 шаг 5 шаг 6 шаг (начало) LXI H MOV A,M CMA INX HL MOV M,A HLT A 00 00 50h AFh AFh AFh AFh FL - - - S,P - - - H 00 00 00 00 00 00 00 L 00 10 10 10 11 11 11 M1=0010 50h 50h 50h 50h 50h 50h 50h M2=0011 00 00 00 00 00 AFh AFh Задание №2. Программа 2.2. – нахождение максимального числа. 2.1. В ячейках памяти помещены числа: в 0010h – 10h, а в 0011h – 01h. 2.2. После выполнения программы в регистре B число 10h. - 56 - Задание №3. Программа2.3. – сложение двух чисел. Слагаемые находятся в ячейках памяти 0010h и 0011, и имеют значение 15h и 01h соответственно. Результат находится в ячейке 0012h и после выполнения программы имеет числовое значение 16h. Таблица 2 № Коман A FL HL да 1 lxi hl М1/да М2/да М3/да нные нные нные ВС 0 - 0010 15h 00 00 0000 0 - 0010 15h 01h 00 0011 0010 2 lxi bc, 0011 3 ldax bc 01h - 0010 15h 01h 00 0011 4 add m 16h - 0010 15h 01h 00 0011 5 inx bc 16h - 0010 15h 01h 00 0012 6 stax bc 16h - 0010 15h 01h 16h 0012 7 hlt 16h - 0010 15h 01h 10h 0012 Задание №4. Программа 2.4. – программа проверки равенства двух чисел. Сравниваемые числа находятся в ячейках памяти по адресам 0010h и 0011h. Если они равны 10h и 10h соответственно, то программа зацикливается, если же в ячейках находятся неравные числа 10h и 1h, то программа проходит одну итерацию и в регистре B появляется число 11h. Задание №5. Программа 2.5. – программа копирования массивов данных. В результате выполнения программы были копированы 10 байтов начиная с нуля в ячейки начиная с адреса 0010h. - 57 - Задание №6. LDA 0010h MOV B,A LDA 0011h MOV C,A LDA 0012h MOV D,A LDA 0013h MOV E,A HLT Программа 3.6. 0010h – 00h, D – FFh. Ответы на контрольные вопросы: 1. 2. 3. 4. Анализ результатов, полученных в ходе лабораторной работы: Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия. - 58 - Разработанные программы позволили использовать, исследовать и анализировать команды с различными способами адресации. Используя различные способы адресации можно получить более эффективное исполнение программы. РАЗДЕЛ 1 Тема 1.6 Программное обеспечение микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №4 Исследование программ ввода вывода Учебные цели: Исследование методов подключения и организации обмена информацией с простейшими устройствами ввода – вывода. Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах; - 59 - - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - состояние производства и использования микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: 1. Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления; 3. Для ввода данных используется порт с адресом 80, а для вывода – с адресом 90; 4. Практическое использование нового программного продукта. Обеспеченность занятия: Учебно-методическая литература: - Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с. - Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г. - Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005 - Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с. - 60 - - Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. Технические средства обучения: - Персональный компьютер; - Принтер. 16. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. 17. Лабораторное оборудование: - Персональный компьютер; - Принтер. 18. Рабочая тетрадь в клетку 19. Ручка. 20. Карандаш простой. 21. Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы К командам ввода – вывода КР580ВМ80 относится команды IN <A> и OUT <A>. При выполнении команды IN <A> микро – ЭВМ считывает число из входного - 61 - устройства с адресом <A> микро – ЭВМ записывает число из аккумулятора в выходное устройство с адресом <A>. Так как адрес устройства указывается в одном байте, то с помощью этих команд микро – ЭВМ может обмениваться информацией не более чем 256 внешними устройствами. В качестве простейших устройств ввода – вывода могут использоваться восьми разрядные регистры. Вопросы для закрепления теоретического материала к лабораторной работе: 1. С какими регистрами микропроцессора могут оперировать команды IN, OUT? 2. Почему после выполнения команды ввода данных нельзя использовать команду условного перехода? 3. С помощью каких машинных циклов выполняется команда IN? 4. С помощью каких машинных циклов выполняется команда OUT? 5. Сколько состояний требуется для выполнения команд IN и OUT. 6. Какие действия выполняет микропроцессор в каждом такте при выполнении команд IN и OUT? Задания для лабораторного занятия: Задание №1: 1. Изучить способы организации обмена информацией между микро – ЭВМ и ВУ; 2. Исследовать программу П3.1 Задание №2: 1. Выполнить программу П3.1 в пошаговом режиме. Информация после выполнения каждого шага отображается на экране. Заполнить таблицу 1 - 62 - 2. Изобразить временные диаграммы команды IN 80.. Пояснить, какими действиями выполняется МП в каждом машинном цикле. Задание №3: 1.Разработать программу поочередного включения 1-3-5-7 разрядов светодиодов входного устройства. Информация должна поступать из регистра С. Листинги программ находятся в тексте описания лабораторной работы. Внимание: Количество выполняемых заданий назначает преподаватель Инструкции по выполнению работы Задание №1: 3. Изучить способы организации обмена информацией между микро – ЭВМ и ВУ. 4. Ввести в микро – ЭВМ программу П3.1. Осуществить её пуск. 5. Убедиться, что при выполнении программы микро – ЭВМ постоянно переписывает данные с входного регистра на выходное. Для этого с помощь клавиш 1…8 измените значение входного устройства. После запуска приведенной выше программы микропроцессор циклически читает содержимое входного устройства и выводит его в выходное устройство, т.е. любое изменение переключателей входного устройства будет индицироваться состоянием светодиодов выходного устройства. Таким образом, при выполнении этой программы две линейки светодиодов (входного и выходного устройства) будут иметь одинаковое количество светящихся и погашенных светодиодов. Задание №2: 3. Выполнить программу в пошаговом выполнения каждого шага отображается на экране. - 63 - режиме. Информация после 4. Изобразить временные диаграммы IN 80, OUT 90. Пояснить, какими действиями выполняется МП в каждом машинном цикле. Задание №3: 2. Разработать программу поочередного включения 1-3-5-7 разрядов светодиодов входного устройства. Информация должна поступать из регистра С. 3. Произвести ввод и отладку программы. Порядок выполнения отчета по лабораторной работе 1. Наименование и цель работы 2. Программа П3.1 3. Временные диаграммы команд IN 80 4. Разработать программу включения светодиодов. 5. Ответы на контрольные вопросы 6. Вывод поясняющий принцип программного ввода – вывода информации. Программа П3.1 start:in 80 считать число из порта 80 в аккумулятор out 90 записать значение аккумулятора в порт 90 jmp start идти на start Методика анализа результатов, полученных в ходе лабораторной работы Программный раздел содержит наборы программ ввода-вывода информации для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее - 64 - выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, входные и выходные условия. В качестве устройства управления использовался восьмиразрядный порт Во всех программах был использован следующий метод передачи параметров: Первый 8-разрядный параметр передается в аккумуляторе, второй 8разрядный параметр- регистре В, а третий- в регистре С. Первый 16-разрядный параметр передается в регистрах Н и L, при этом старший байт- в регистре Н. Второй 16-разрядный параметр передается в регистрах D и Е со старшим байтом в D. Большее число параметров передается прямо или косвенно. Вход в программу осуществляется с помощью . Для большинства коротких программ было определена процедура выполнения отдельных команд. Порядок выполнения отчета по лабораторной работе: 1. Цель и наименование работы: 2. Перечень команд передачи данных; 3. Исследуемые программы с комментариями: 4. Заполненные таблицы результатов исследования программ: 5. Графическое представление выполнения команд 6. Ответы на контрольные вопросы: 7. Анализа результатов, полученных в ходе лабораторной работы Образец отчета по лабораторной работе: Лабораторная работа № 4. Исследование программ ввода вывода Учебные цели: Исследование методов подключения и организации обмена информацией с простейшими устройствами ввода – вывода. - 65 - Учебные задачи: 2. Закрепление полученных теоретических знания по программированию операций ввода-вывода микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Задание №1. Программа 3.1. – создание моста между портами 80 и 90 (копирование данных из 80-го порта в 90-й). START: IN 80 // копирование данных из порта 90 в аккумулятор. OUT 90 // копирование данных из аккумулятора в порт 80. JMP START // безусловный переход по метке (в начало программы). HLT // Останов (хотя он в принципе лишний и его можно не использовать). Поступившие в порт данные: 49 10 80 49 10 80 49 10 80 Данные в аккумуляторе: После выполнения одной итерации: Задание №2. 1. Выполнить программу П3.1 в пошаговом режиме. Информация после выполнения каждого шага отображается на экране. Заполнить таблицу 1 - 66 - 2. Изобразить временные диаграммы команды IN 80.. Пояснить, какими действиями выполняется МП в каждом машинном цикле. Таблица 1 Содержимое регистров после выполнения каждой команды программы 3.1 Регистры МП Шаг программы (команда, после которой анализируется содержимое регистров) 0 шаг 1шаг 2 шаг 3шаг 4 шаг (начало) IN 80 OUT 90 JMP START HLT A 00 49h 49h 49h - FL - - - - - Порт 80 00 49h 49h 49h - Порт 90 00 00 49h 49h - Пример выполнения команды ввода IN. Команда имеет 2 слова, выполняется за 3 машинных цикла. Цикл команды IN М1 Т1 Т2 Т3 М2 Т4 Т1 Т2 М3 Т3 Т1 Т2 Т3 В цикле М1 происходит считывание кода команды. В такте Т1 счетчик адреса (команд) выдаёт на шину адреса код ячейки памяти, содержащей первое слово команды. В такте Т2 анализируется сигнал готовности внешнего устройства. Если устройство не готово, то процессор переходит в режим ожидания. В такте Т3 происходит запись данных в регистр кода команды (РК). - 67 - В такте Т4 дешифратор расшифровывает код команды и определяет последовательность её исполнения. В цикле М2 происходит считывание адреса внешнего устройства из второго слова команды. В такте Т1 адрес следующего слова подаётся на шину адреса. В такте Т2 и Т3 содержимое второго слова записывается в регистр адреса. В цикле М3 записывается информация из внешнего устройства. В такте Т1 на шине адреса выставляется код внешнего устройства из регистра адреса. В такте Т2 анализируется сигнал готовности внешнего устройства. Если устройство не готово, то процессор переходит в режим ожидания. В такте Т3 происходит запись из шины данных в аккумулятор. Задание №3. Разработать программу каждого включения 1-3-5-7 разрядов светодиодов выходного устройства. Информация должна поступать из регистра C. Программа 3.2 MVI C,02h MOV A,C RET_: OUT 90 RAL RAL JMP RET_ HLT Ответы на контрольные вопросы: 1. - 68 - 2. 3. 4. Анализ результатов, полученных в ходе лабораторной работы: Программный раздел содержит наборы программ ввода – вывода для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия. Разработанные программы позволили использовать, исследовать и анализировать команды обращения к портам микропроцессорной системы РАЗДЕЛ 1 Тема 1.6 Программное обеспечение микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №5 Маскирование данных и организация условных переходов Учебные цели: Исследование методов программных способов маскирования данных и организация условных переходов в микропроцессорных системах Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. - 69 - Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах; - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - состояние производства и использования микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: 1. Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления; 2. Для ввода данных используется порт с адресом 80, а для вывода – с адресом 90; 3. Практическое использование нового программного продукта. Обеспеченность занятия: 1. Учебно-методическая литература: - Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с. - 70 - - Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г. - Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005 - Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с. - Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с. 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. 3.Технические средства обучения: - Персональный компьютер; - Принтер. 4. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. 5. Лабораторное оборудование: - Персональный компьютер; - Принтер. 6. Рабочая тетрадь в клетку 7. Ручка. 8. Карандаш простой. 9. Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы - 71 - В различных ситуациях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих операций: Логическое умножение числа в аккумуляторе и маски – очищает разряд числа (устанавливает в 0), если в соответствующем разряде маски будет записан 0, и не изменяет его, если в этом разряде маски записана 1; Логическое сложение числа в аккумуляторе и маски – устанавливает разряд числа в 1, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0; Логическое "исключающее ИЛИ" числа в аккумуляторе и маски – инвертирует содержание разряда числа, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0. Примеры использования операций маскирования содержимого аккумулятора в случае, если маска находится в регистре, приведены в Табл. 1. В этом случае команды однобайтные. Маскирование содержимого аккумулятора возможно также байтом данных (ANI D8, ORI D8 и XRI D8). В этом случае маска содержится в байте данных, а команды являются двухбайтными. При выполнении логических операций (И, ИЛИ, "исключающее ИЛИ" и НЕ) задействуются разряды Z, S, P, AC регистра признаков (С = 0). Это позволяет проверять состояние любого разряда числа и выполнять условные переходы в программах. Примеры использования операций маскирования. Таблица 1 М н е м о к Число в аккумулят оре Результа Маска в тв Комментари D аккумуля й торе о д A 00111010 10101100 00101000 Логическое N 11111111 00100010 00100010 умножение - 72 - A 00001111 11111111 00001111 (И) D 11110000 11111111 11110000 содержимого 00100011 00000000 00000000 Акк. с байтом D. O 00111010 10101100 10111110 Логическое R 00001111 00001111 00001111 сложение A 11110000 00001111 11111111 (ИЛИ) содержимого D Акк. с байтом. D. X 00111100 10101100 10010110 Логическое R 00001111 00001111 00000000 "исключающ A 11110000 00001111 11111111 ее ИЛИ" содержимого D Акк. с байтом D. Организация условных переходов в МПС на МП КР580ВМ80 осуществляется с помощью регистра признаков МП БИС. Регистр признаков имеет пять разрядов, каждый из которых устанавливается по определённому правилу в соответствии с выполнением МП БИС последней команды. Этими разрядами являются: 1. Разряд переноса С – СARRY. В него записывается «1», если при выполнении арифметической операции было переполнение аккумулятора, в противном случае в разряд записывается «0». 2. Разряд знака S – SIGN. В него записывается «1», если при выполнении арифметической или логической операции в старшем седьмом бите аккумулятора записана «1», в противном случае в разряд записывается «0». 3. Разряд первого результата Z – ZERO. В него записывается «1», если при выполнении арифметической или логической операции аккумулятора «0», в противном случае разряд записывается «0». - 73 - во всех разрядах 4. Дополнительный разряд переполнения AC – AUX.CARRY. В него записывается «1», если при выполнении команд в аккумуляторе возникает единица переноса из третьего разряда числа. 5. Разряд четности P – PARITY. В него записывается «1», если при выполнении команды количество единиц в разрядах аккумулятора будет четным. Во многих случаях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих логических операций. 1. Логического умножения числа в аккумуляторе и маки, которая очищает разряд числа, если в соответствующем разряде макси будет записан «0», и не изменяет его, если в этом разряде записана «1»; 2. Логического сложения чисел в аккумуляторе и маски, которое устанавливает разряд числа «1», если в таком же разряде маски будет записан «0»; 3. Логического исключающего или числа в аккумуляторе и маски, которое инвертирует содержимое разряда числа, если в соответствующем разряде маски записана «1», и не имеют его, если в этом разряде записано «0». Проведение логических операций возможно также с содержимым аккумулятора и внутренними регистрами микро – ЭВМ. В этом случае команды однобайтные. При выполнении всех логических команд задействуются разряды Z,S,CY,P,AC регистра признаков (в разряд С записывается 0). Это позволяет проверить состояние любого разряда числа и выполнить условные переходы в программах. Условные переходы организуются в программах с помощью команд условных переходов. При выполнении этих команд микро – ЭВМ проверяет состояние соответствующего разряда регистра состояния. Если при проверке состояния разреза регистра состояния условия не подтверждаются, то выполняется следующая по порядку команда программы. - 74 - Таким образом, команды условных переходов позволяют строить ветвящиеся алгоритмы и в зависимости от текущего значения результата выполнения программы переходить на различные участки программы. Вопросы для закрепления теоретического материала к лабораторной работе 1.В чем состоит различие между командами условного перехода? 2.Во всех командах условного перехода, используемых микропроцессором, применяется прямая адресация. Что это значит? 1. В чем заключается различие между выполнением команд безусловного и условного переходов? 2. Какой из нижеперечисленных команд эквивалентна команда команд эквивалентна команда ПЕРЕХОД, ЕСЛИ РАВНО: - ПЕРЕХОД, ЕСЛИ ПЕРЕНОС; - ПЕРЕХОД, ЕСЛИ ПЛЮС; - ПЕРЕХОД, ЕСЛИ НЕ МИНУС; - ПЕРЕХОД, ЕСЛИ НУЛЬ? 3. Какой из нижеперечисленных ПЕРЕХОД, ЕСЛИ НЕ МИНУС: - ПЕРЕХОД, ЕСЛИ ПЕРЕНОС; - ПЕРЕХОД, ЕСЛИ ПЛЮС; - ПЕРЕХОД, ЕСЛИ МИНУС; - ПЕРЕХОД, ЕСЛИ НУЛЬ? Задания для лабораторной работы: Задание №1: Исследование программы 4.1 1. Выяснить, какая информация появляется в разряде Z регистра признаков, после выполнения программы. - 75 - Задание №2: 1. Видоизменить программу П4.1 так, чтобы микропроцессорная система реагировала на «0» в третьем разряде при записанных единицах во всех остальных разрядах. Задание №3: исследование программы 4.2 1.Загрузить и исследовать программу П4.2 Инструкция по выполнению лабораторной работы При составление программ цифровых систем управления возникает необходимость формирования условных переходов в зависимости от значения одного или нескольких бит результата операции. Микропроцессор может выполнять только операции в целом над однобайтовыми числами, поэтому для анализа состояния отдельных бит применяют специальные приемы программирования. С помощью логических операций устанавливают состояние всех бит, кроме требующих анализа, в заранее известное состояние. Так, если требуется анализ старшего бита числа, возможно использование операции логического И этого числа с числом 80h: * * * * * * * * – анализируемое число 1 0 0 0 0 0 0 0 – второй операнд (маска). В этом случае результат логической операции даст результат с известными битами во всех разрядах числа, равными логическому 0, кроме D7: * 0 0 0 0 0 0 0. Дальнейший анализ на нулевое значение результата дает возможность ответить на вопрос, чему равен старший бит анализируемого числа. При равенстве результата нулю бит D7 = 0. Аналогично, изменяя маску логической операции, можно проанализировать любой бит (а также несколько бит), например маской 00010000 анализируется состояние бита D4 числа, маской 00000001 – состояние бита D0 и т.д. - 76 - Задание №1: 1.Загрузить программу П4.1 2.Осуществить пуск программы. Убедиться, что при её выполнении микро – ЭВМ реагирует лишь на те числа во входном устройстве, которые содержат «1» в пятом разряде. Выяснить, какая информация появляется в разряде Z регистра признаков, после выполнения программы. Программа П4.1 wait:in 80 получить число из порта 80 ani 20 проверить состояние пятого разряда числа jz wait если 5 разряд 0, то идти на wait Задание №2: 1.Видоизменить программу П5.1 так, чтобы микро – ЭВМ реагировала на «0» в третьем разряде при записанных единицах во всех остальных разрядах. Задание №3: 1.Загрузить программу П4.2 2.Осуществить пуск программы. Убедиться, что при наличии «1» лишь во втором разряде числа входного устройства светодиоды выходного регистра включены в микро – ЭВМ работает в цикле WAIT2 ожидания появления единицы в пятом разряде числа. Записать «0» во второй разряд входного устройства и убедиться, что светодиоды выходного устройства отключаются и микро – ЭВМ находится при выполнении цикла WAIT1 программы; установить «1» одновременно во втором и пятом разряде числа во входном устройстве и проверить, что микро – ЭВМ последовательно выполняет оба цикла программы. Программа П4.2 wait1:in 80 получить число из порта 80 ani 04 включен ли 2 разряд? - 77 - jz wait 1 если нет, идти на wait1 mvi a,11 иначе зачет светодиоды выходного out 90 регистра 90 wait2:in 80 получить число из порта 80 включен ли 5 разряд? ani 20 jz wait2 если нет, идти на wait2, иначе mvi a,0 погасить светодиоды выходного out 90 регистра 90 jmp wait1 повторить программу Методика анализа результатов, полученных по лабораторной работе Команда условного перехода проверяет состояние соответствующего разряда регистра признаков (F). Если при проверке состояния разряда регистра признаков условие не подтверждается, то выполняется следующая по порядку команда программы, иначе происходит переход. Программа 4.1 осуществляет ожидание простого (двоичного) события и при возникновении этого события формирует простое (двоичное) управление. В программе каждый бит порта с адресом 03h ассоциируется с некоторым событием от внешнего устройства, например, соответствует состоянию некоторого концевого переключателя технологического процесса. Таким образом, в технологическом процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в технологическом процессе задействованы 8 исполнительных механизмов с номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное состояние (0 или 1). Порядок выполнения отчета по лабораторной работе 1.Наименование и цель работы 2.Понятие и назначения использования программировании команд управления - 78 - маскирования данных при 3..Исследуемые программы. 4.Результаты исследования. 5.Ответы на контрольные вопросы 6.Анализ результатов полученных в ходе лабораторной работы Образец отчета по лабораторной работе: ЛАБОРАТОРНАЯ РАБОТА №5 Маскирование данных и организация условных переходов Учебные цели: Исследование методов программных способов маскирования данных и организация условных переходов в микропроцессорных системах Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Понятие и назначения использования маскирования данных при программировании команд управления В различных ситуациях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих операций: - 79 - Логическое умножение числа в аккумуляторе и маски – очищает разряд числа (устанавливает в 0), если в соответствующем разряде маски будет записан 0, и не изменяет его, если в этом разряде маски записана 1; Логическое сложение числа в аккумуляторе и маски – устанавливает разряд числа в 1, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0; Логическое "исключающее ИЛИ" числа в аккумуляторе и маски – инвертирует содержание разряда числа, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0. Организация условных переходов в МПС на МП КР580ВМ80 осуществляется с помощью регистра признаков МП БИС. Регистр признаков имеет пять разрядов, каждый из которых устанавливается по определённому правилу в соответствии с выполнением МП БИС последней команды. Этими разрядами являются: 1. Разряд переноса С – СARRY. В него записывается «1», если при выполнении арифметической операции было переполнение аккумулятора, в противном случае в разряд записывается «0». 2. Разряд знака S – SIGN. В него записывается «1», если при выполнении арифметической или логической операции в старшем седьмом бите аккумулятора записана «1», в противном случае в разряд записывается «0». 3. Разряд первого результата Z – ZERO. В него записывается «1», если при выполнении арифметической или логической операции во всех разрядах аккумулятора «0», в противном случае разряд записывается «0». 4. Дополнительный разряд переполнения AC – AUX.CARRY. В него записывается «1», если при выполнении команд в аккумуляторе возникает единица переноса из третьего разряда числа. 5. Разряд четности P – PARITY. В него записывается «1», если при выполнении команды количество единиц в разрядах аккумулятора будет четным. - 80 - Программа П4.1. WAIT: IN 80 // Получит число из порта 80 ANI 20 // проверить состояние пятого разряда JZ WAIT // если 5-й разряд равен 0, то переход по метке WAIT. HLT // Останов. При вводе 20h программа проходит одну итерацию. При вводе любого числа, в 5-м разряде которого есть 1, то результат тот же. При вводе любого другого числа программа зацикливается. Выполнение лабораторной работы Программа П4.2. Wait1: IN 80 // Получить данные из порта 80 ANI 04 // проверить выставлен ли разряд 2 JZ Wait1 // если нет, то перейти на Wait1 MVI A,11h // записываем в A число 11h OUT 90 // Выводим это число в порт 90 Wait2: IN 80 // получить данные из порта 80 ANI 20 // проверить выставлен ли 5-й разряд JZ Wait2 // если разряд не выставлен, то переходим на Wait2 MVI A,00h // иначе записываем в A ноль и OUT 90 // выводим данные в порт 90 JMP Wait1 // Переход в начало программы. При вводе числа 04h в порту вывода получается число 11h, и программа зацикливается. При вводе числа 24h в порту вывода получается число 00h. - 81 - При вводе числа 20h в порту должно быть число 00h, но программа зацикливается на проверке 2-го разряда. При вводе чисел, не содержащих единиц в 2-м и 5-м разрядах программа зацикливается. WAIT: IN 80 // Получаем данные из порта 80 XRI 08h // проверяем есть ли ноль в 3-м разряде JNZ WAIT // если нет, то переходим на Wait HLT // если же в 3-м разряде ноль, то Останов. Ответы на контрольные вопросы: 1. 2. 3. 4. Анализ результатов, полученных в ходе лабораторной работы: Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия. Программа П4.1 осуществляет ожидание простого (двоичного) события и при возникновении этого события формирует простое (двоичное) управление. В программе каждый бит порта с адресом 03h ассоциируется с некоторым событием от внешнего устройства, например, соответствует состоянию некоторого концевого - 82 - переключателя технологического процесса. Таким образом, в технологическом процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в технологическом процессе задействованы 8 исполнительных механизмов с номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное состояние (0 или 1). Каждому механизму соответствует свой бит порта с адресом 04h. Процессор принимает данные из портов 03h, 04h и выдает данные в порт 04h. Программа ожидает включение концевого переключателя с номером 5 (остальные переключатели могут при этом иметь произвольные состояния). В случае достоверности данного события программа включает механизм с номером 4, в противном случае она отключает этот механизм, если он не отключен. При этом программа не должна изменять состояния остальных механизмов. В программе 4.2 при наличии «1» лишь во втором разряде числа входного устройства светодиоды выходного регистра включены в микро – ЭВМ работает в цикле WAIT2 ожидания появления единицы в пятом разряде числа. Записать «0» во второй разряд входного устройства и убедиться, что светодиоды выходного устройства отключаются и микро – ЭВМ находится при выполнении цикла WAIT1 программы; установить «1» одновременно во втором и пятом разряде числа во входном устройстве и проверить, что микро – ЭВМ последовательно выполняет оба цикла программы. РАЗДЕЛ 1 Тема 1.6 Программное обеспечение микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №6 Разработка и использование программ с подпрограммами Учебные цели: Исследование особенностей записи подпрограмм и обращения к подпрограммам на языке Ассемблер в микропроцессорных системах ; Учебные задачи: - 83 - 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах; - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - состояние производства и использования микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: 1.Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления; - 84 - 2.Практическое использование нового программного продукта. Обеспеченность занятия: 1. Учебно-методическая литература: - Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с. - Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г. - Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005 - Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с. - Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с. 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. 3.Технические средства обучения: - Персональный компьютер; - Принтер. 4. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. 5. Лабораторное оборудование: - 85 - - Персональный компьютер; - Принтер. 6. Рабочая тетрадь в клетку 1. Ручка. 2. Карандаш простой. 3. Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы Память микропроцессорной системы на МП КР580ВМ80 может иметь не более 65 536 однобайтных ячеек. Учитывая это, нужно стараться сделать программы как можно короче. С этой целью, часть программы, которая повторяется, или программа, которая часто используется, могут быть сделаны в виде подпрограммы – последовательности команд, выполнение которых может быть вызвано из любого места программы любое количество раз. Процесс передачи управления к подпрограмме называется её вызовом. Данные адреса требуются для работы подпрограммы, называются входными параметрами. Результаты работы подпрограммы передаваемые по окончанию её работы в основную программу, называются выходными параметрами. Для вызова подпрограммы и возврата из них используются команды CALL <line> и RET. Команда CALL <line> загружает в регистр PC номер линии подпрограммы, при этом микро – ЭВМ автоматически сохраняет в стеке адрес основной программы, к которому она будет обращаться после выполнения подпрограммы. Существуют также команды условного вызова подпрограммы и возврата из них. Они позволяют вызвать подпрограмму и возвратится из неё по определенному состоянию заданных разрядов регистра признаков (аналогично командам условных переходов) без использования дополнительных команд. - 86 - Команды вызова подпрограммы и возврата из них используют стек и внутренний регистр для адресации к стеку. На Рис. 1 приведен алгоритм простой подпрограммы временной задержки. Здесь общее время задержки вычисляется по формуле: Td t1 t 2 t3 t 4 N t5 , где N – число, первоначально записанное в счетчик. В качестве счетчика использован регистр B, в котором записывается число из регистра C. Команда NOP нужна для увеличения времени выполнения цикла, а, следовательно, и общей t1 Записать число N из регистра C в регистр B t2 Нет операции t3 Изменение содержимого B на 1 t4 B=0? t5 Выход из подпрограммы нет задержки. Повтором необходимого числа команд NOP можно корректировать минимальную временную задержку. Величины входят. Минимальная задержка задается при t1 N 1, и t5 фиксированы и в цикл не а максимальная при N 255 . Рис. 1 Алгоритм подпрограммы временной задержки Вопросы для закрепления теоретического материала к лабораторной работе: 1. В чем заключается основное различие между командами перехода и командами вызова подпрограмм? 2. Какая из нижеперечисленных проверок осуществляется при обращении к подпрограмме с помощью команды условного вызова: - 87 - - равенства 0 всех разрядов аккумулятора; - достижения содержимым регистра определенного значения после отрицательного приращения; - значение разрядов регистра состояния; - содержимого регистра команд? 3. Какое из нижеперечисленных действий выполняется при вызове одной подпрограммы из другой подпрограммы: - команда JNE; - вложение подпрограмм; - ветвление программы; - проверка условий? 4.Какое из приведенных ниже действий осуществляется с помощью команды ВОЗВРАТ ИЗ ПОДПРОГРАММЫ: - загрузка данных в стек; - извлечение данных из стека; - начальная установка стека; - нарушение работы стека? Задания для лабораторного занятия: Задание №1: Исследование программы 5.1 1.Записать программу 5.1 в память эмулятора Задание №2: Исследований программы 5.3 1.Записать полный текст программы 5.3 для генерации звуковых сигналов с учетом программ 5.1 и 5.2 Задание №3: Исследование программы П5.4 1.Ввести программ П5.4 в память эмулятора - 88 - Задание №4: Исследование программы 5.5 1.Записать программу 6.5 в память эмулятора. Листинги программ находятся в тексте описания лабораторной работы. Внимание: Количество выполняемых заданий назначает преподаватель Инструкции по выполнению работы Задание №1: Исследование программы 5.1 1. Записать программу 5.1 в память микро – ЭВМ 2. Вычислить время выполнения программы с выполнением цикла один раз. Вычислить число в регистре С для получения задержки 0,5 сек. 2. Используя программу 5.1 как подпрограмму включить её в разработанную программу по включению светодиодов порта вывода в порядке 1-35-7 (программа 3.2. ЛР №4) 3. Убедиться в том, что светодиоды 1-3-5-7 включаются по очереди на время 0,5. Подпрограмма №5.1: mov b,c записать число из регистра С в регистр В dly:nop нет операции dcr b уменьшить содержимое В на 1 пока в регистре В не 0 идти на dly jnz dly hlt все Задание №2: Исследование программы 5.3 - 89 - 1.Записать полный текст программы 5.3 для генерации звуковых сигналов с учетом программ 5.1 и 5.2 2.Ввести в микро – ЭВМ программу. Установить на входном устройстве число 00. Произвести пуск программы и проследить за изменением тона звука, увеличивается число, записанное во входное устройство. Подпрограмма №5.2: jmp main записать число из регистра С в регистр В delay:mov b,c dly:nop нет операции dcr b уменьшить содержимое В на 1 пока в регистре В не 0 идти на dly jnz dly ret все main:xra a очистить аккумулятор записать 00 в выходное устройство out 60 call delay вызвать подпрограмму задержки cma записать код FF в регистр А записать код FF в выходное устройство out 60 call delay вызвать подпрограмму задержки hit все Программа №5.3: jmp main delay:mov b,c записать число из регистра С в регистр В dly:nop нет операции dcr b уменьшить содержимое В на 1 jnz dly пока в регистре В не 0 идти на dly ret возврат из подпрограммы bpp:xra a очистить аккумулятор out 60 записать 00 в выходное устройство - 90 - call delay вызвать подпрограмму задержки cma записать код FF в регистр А записать код FF в выходное устройство out 60 call delay вызвать подпрограмму задержки ret возврат из подпрограммы main:in 80 прочитать число из входного регистра в аккумулятор mov c,a записать число в регистр С call bpp вызвать подпрограмму BPP jmp main продолжать Задание №3: Исследование программы П5.4 1.Ввести программ П5.4 в память эмулятора 2.Установить на выходном устройстве переключатели соответственно числу 11. Осуществить пуск программы. Убедиться, что МПС будет находиться в режиме ожидания появления 0 в любом разряде входного устройства. 3.Установить 0 с помощью переключателей в любом из разрядов входного устройства. Проверить содержимое всех регистров МП после окончания программы. Осуществить повторный пуск программы при наличии нулей в двух разрядах входного устройства. Какое число будет записано в регистре В после окончания выполнения программы? Программа №5.4: lxi sp,0bb0 записать в SP адрес стека m1:in 80 получить число из входного устройства cri ff содержит ли какой-нибудь разряд 0? jz m1 если нет, то ждать call m2 если да, то вызвать подпрограмму определения разряда hit останов m2:mvi b,ff m3:inr b увеличить содержимое В - 91 - rrc сдвиг вправо jc m3 если CY=1, то продолжать ret возврат из подпрограммы Задание №4: Исследование программы 5.5 1. Записать программу 5.5 в память эмулятора 2. Убедиться, что программа осуществляет временную задержку на 10 сек. Программа №5.5: push bc записать в стек содержимое регистра ВС lxi bc,1218 занести в регистр ВС время задержки call cnt обращение к подпрограмме jmp done перейти в конец программы cnt:dcx bc декремент содержимого ВС jnz cnt если ВС0, идти на cnt ret иначе возврат из подпрограммы done:pop bc восстановить содержимое ВС hlt останов программы Методика анализа результатов, полученных по лабораторной работе Команда условного перехода проверяет состояние соответствующего разряда регистра признаков (F). Если при проверке состояния разряда регистра признаков условие не подтверждается, то выполняется следующая по порядку команда программы, иначе происходит переход. Программа 4.1 осуществляет ожидание простого (двоичного) события и при возникновении этого события формирует простое (двоичное) управление. В программе каждый бит порта с адресом 03h ассоциируется с некоторым событием - 92 - от внешнего устройства, например, соответствует состоянию некоторого концевого переключателя технологического процесса. Таким образом, в технологическом процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в технологическом процессе задействованы 8 исполнительных механизмов с номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное состояние (0 или 1). Порядок выполнения отчета по лабораторной работе 1. Наименование и цель работы 2. Программы временных задержек. 3. Рассчитанные числа для задержки на 0.5, 1 и 10 сек. 4. Программу 5.4 с пояснением содержимого регистра В. 5. Ответы на контрольные вопросы Образец отчета по лабораторной работе: ЛАБОРАТОРНАЯ РАБОТА №6 Разработка и использование программ с подпрограммами Учебные цели: Исследование особенностей записи подпрограмм и обращения к подпрограммам на языке Ассемблер в микропроцессорных системах ; Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Выполнение работы - 93 - Задание №1: Программа 5.1. MOV B,C // Переслать данные из регистра C в регистр B. (тактов 5). DLY: NOP // пустая операция. (тактов 4). DCR B // декрементировать B. (тактов 5). JNZ DLY // если B не ноль, то переход по метке. (тактов 10-если переход, 4-если не переход). HLT // Останов. (тактов 7). Эту программу можно условно разделить на несколько частей: команды которые повторяются только один раз, команды которые могут повторяться много раз. Каждая команда выполняется за определённое количество тактов, причём команда условного перехода JNZ DLY выполняется за 10 тактов если условие верно и осуществляется переход, и за 7 тактов – если условие не выполнено. Можно составить уравнение по подсчету нужного количества итераций цикла этой программы, оно имеет вид: S = 5 + n·(4+5) + (n-1)·10 + 4 + 7, где S – общее число тактов на выполнение программы, n – число итераций цикла. Что бы найти количество итераций цикла для обеспечения нужного числа тактов программы, а следовательно задержки нужно формулу преобразовать: Td t1 t 2 t3 t 4 N t5 , С учётом того, что один такт равен 0,5·10-3 , чтобы получить задержку в 0,5 сек., подставляем в формулу значение S и получаем количество итераций цикла равным 52 в десятичной системе счисления, необходимо перевести это число в шестнадцатеричную систему счисления для того что бы процессор мог их корректно обработать. Оно равно 34h. Это число нужно записать в регистр C до начала выполнения программы. - 94 - Задание №2: MVI A,02h RET_: OUT 90 RAL RAL CALL WAT_ JMP RET_ HLT WAIT_: MOV B,C DLY: NOP DCR B JNZ DLY RET HLT Программа №5.4: lxi sp,0bb0 записать в SP адрес стека m1:in 80 получить число из входного устройства cri ff содержит ли какой-нибудь разряд 0? jz m1 если нет, то ждать call m2 если да, то вызвать подпрограмму определения разряда hit останов m2:mvi b,ff m3:inr b увеличить содержимое В rrc сдвиг вправо jc m3 если CY=1, то продолжать - 95 - ret возврат из подпрограммы При наличии на входном устройстве числа FFh программа зацикливается на первой итерации. При наличии одной единицы программа выполняется и в конце программы в регистре B остаётся число – номер первого разряда с нулём слева на право. При наличии большего числа нулей в регистре B получается номер разряда самого левого из нулей. Задание №3: Программа №5.5: push bc записать в стек содержимое регистра ВС lxi bc,1218 занести в регистр ВС время задержки call cnt обращение к подпрограмме jmp done перейти в конец программы cnt:dcx bc декремент содержимого ВС jnz cnt если ВС0, идти на cnt ret иначе возврат из подпрограммы done:pop bc восстановить содержимое ВС hlt останов программы На опыте оказалось, что программа выполняется за 6 секунд, что на 4 секунды быстрее указанного времени. Ответы на контрольные вопросы: 1. 2. 3. 4. Анализ результатов, полученных в ходе лабораторной работы: - 96 - Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия. Программа 5.1 реализует алгоритм программной задержки, где один байт: регистр С Для получения требуемой поэтому величина N Tdможет t1 t 2 варьироваться t3 t 4 N t5 , N занимает задержки организован цикл, от 00h до FFh (т. е. от 0 до 256), для вычисления временной задержки здесь может быть использована Для получения задержки 0,5 сек в регистр С необходимо записать число 34h. Программа 5.2 реализует алгоритм программной задержки, где N занимает два байта: В и С. Для увеличения времени задержки организовано два цикла (цикл в цикле), поэтому величина N может варьироваться от 0000h до FFFFh (т. е. от 0 до 65535), однако, для вычисления временной задержки здесь должна использоваться гораздо более сложная формула. Число записанное в регистровой паре, рассчитанное по формуле, ВС =1218 дало временную задержку 6 сек. Чтобы получить 10 сек нужно число увеличить. Оно будет равно 1896 РАЗДЕЛ 1 Тема 1.6 Программное обеспечение микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №7 Разработка и исследование программ работы со стеком Учебные цели: Исследование методов использования стека при создании программ и подпрограмм. - 97 - Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах; - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - состояние производства и использования микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: - 98 - 1.Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления; 2.Для ввода данных в стек используется участок ОЗУ с начальным адресом 1000h; 3.Практическое использование нового программного продукта. Обеспеченность занятия: 1. Учебно-методическая литература: - Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с. - Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г. - Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005 - Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с. - Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с. 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. 3.Технические средства обучения: - Персональный компьютер; - Принтер. - 99 - 4. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. 5. Лабораторное оборудование: - Персональный компьютер; - Принтер. 6. Рабочая тетрадь в клетку 4. Ручка. 5. Карандаш простой. 6. Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы Подпрограммами называют модули программ, которые могут быть использованы неоднократно, причем обращение к подпрограммам (вызов) может быть осуществлен из любого места основной программы. При этом для запоминания адреса возврата в основную программу используется область памяти ОЗУ, организованная особым образом, получившую название стек. Его название происходит от английского слова Stack, т.е. кипа, стопка (бумаг). Назначение стека в том, чтобы сохранять текущее содержание всех регистров, если происходит прерывание основной программы. Образно стек можно представить в виде записи значений на отдельных листах бумаги и складывания их стопкой. Извлечение из стека происходит всегда в обратном порядке, т.е. только с верхушки стека. Иными словами, соблюдается принцип "последним вошел – первым вышел" (по-английски Last In - First Out, сокращенно LIFO). В любой момент времени в стек можно включить дополнительную информацию, но при извлечении первой всегда будет та, которая включена последней. - 100 - Для работы со стеком необходимо загрузить его адрес в указатель стека (по умолчанию, указатель стека SP уже настроен на конец памяти). Обычно это делается одной из первых команд программы. Указатель стека загружается либо командой LXI SP, <адрес стека>, либо командой SPHL. В последнем случае в указатель стека загружается содержимое регистра HL. Чаще всего стек используется явно для временного хранения текущего содержимого регистров общего назначения. Поместить данные в стек можно командой PUSH, а извлечь командой POP. Операнд команды указывает наименование регистровой пары или PSW. Нет никакой аппаратной зависимости между тем, откуда они впоследствии загружаются. Например, можно поместить данные в стек из одной регистровой пары и загрузить их в другую. Регистр признаков FL, входящий младшим байтом в состав PSW, можно сохранить в стеке или явно переслать через стек в один из рабочих регистров. Специальная команда XTHL позволяет обменять содержимое регистра HL с двумя байтами вершины стека. Значение указателя стека при этом не меняется. Адрес верхушки стека в текущий версии эмулятора равен 1000h. Вопросы для закрепления материала к лабораторной работе: 1. Почему непосредственно после выполнения команды загрузки в стек не требуется использовать команду уменьшения на 1 содержимого указателя стека? 2. Для какой цели используется начальная установка указателя стека? 3. Какая команда используется для передачи данных из стека? 4. Какое из указанных ниже действий может произойти при изъятии данных из стека, если его содержимое подверглось изменениям: - извлечение из стека; - загрузка в стек; - вложение подпрограмм; - нарушение работы программы? - 101 - Задания для лабораторной работы: Задание №1: Исследование заданных программ. 1. Исследовать программы 6.1,6.2,6.3,6. Задание №2: Составить программу осуществляющую сложение двух чисел по адресам 0010,0011. Записать эти числа в регистры В и С и записать результат в регистр D. Запись содержимого этих регистров и PSW в стек. После исполнения программы составить таблицу: адреса ячеек стека и содержимого этих ячеек, регистры из которых производилась запись информации в стек. № Коман да A Адре B C с \М1да М2/да М3/да нные нные нные D 1 Инструкция по выполнению лабораторной работы Задание №1: Исследование заданных программ. 2. Исследовать программу 6.1, после чего убедиться, что указатель стека уменьшается на 2. 3. Исследовать программу 6.2, после чего убедиться, что указатель стека увеличивается на 2. 4. Исследовать программу 6.3 и проследить за выполнением команды XTHL. Исследовать программу 6.4 и убедиться в сохранении слова состояния программы. Записать двоичный код этого слова. - 102 - Задание №2: Составить программу осуществляющую сложение двух чисел по адресам 0010,0011. Записать эти числа в регистры В и С и записать результат в регистр D. Запись содержимого этих регистров и PSW в стек. После исполнения программы составить таблицу: адреса ячеек стека и содержимого этих ячеек, регистры из которых производилась запись информации в стек. Составить графическое изображение выполнения команды ADD С Программа 6.1: lxi bc,8513 загрузить данные в ВС push bc запомнить ВС в стеке hlt останов Программа 6.2: lxi sp,0ffe загрузить указатель стека pop загрузить DE из стека hlt все Программа 6.3: mvi l,5 подготовка данных для mvi c,10 демонстрации команды push bc <XTHL> xthl обмен HL и вертушки стека xthl обмен HL и верхушки стека pop bc восстановить ВС mov a,b hlt Программа 6.4: рush psw [A] и [F] в стек - 103 - [A] – H; [F] – L pop hl останов hlt Методика анализа результатов, полученных в ходе лабораторной работы Автоматическое сохранение и восстановление адреса основной программы при выполнении подпрограмм позволяет сделать подпрограммы вложенными, т. е. осуществить вызов одной подпрограммы из другой. Уровень вложенности для данного МП определяется размером стека. Помимо команд вызова подпрограмм и возврата из них, со стеком можно обмениваться информацией. С помощью команды PUSH RP осуществляется запись в стек содержимого регистра RP МП, а с помощью команды POP RP – запись данных из стека в регистр RP процессора. Эти команды однобайтные Порядок выполнения отчета по лабораторной работе 1. Наименование и цель работы. 2. Программы 6.1 – 6.4 3. Составленную программу и заполненную таблицу с результатами её исследования. 4. Графическое изображение порядка выполнения команды ADD C 5. Ответы на контрольные вопросы 6. Анализ результатов, полученных в ходе лабораторной работы Образец отчета по лабораторной работе: ЛАБОРАТОРНАЯ РАБОТА №7 Разработка и исследование программ работы со стеком Учебные цели: Исследование маскирования данных и - 104 - методов программных способов организация условных переходов в микропроцессорных системах Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Выполнение работы Задание №1. Программа 6.1: lxi bc,8513 загрузить данные в ВС push bc запомнить ВС в стеке hlt останов Программа 6.2: lxi sp,0ffe загрузить указатель стека pop загрузить DE из стека hlt все Программа 6.3: mvi l,5 подготовка данных для mvi c,10 демонстрации команды push bc <XTHL> xthl обмен HL и вертушки стека xthl обмен HL и верхушки стека pop bc восстановить ВС - 105 - mov a,b hlt Программа 6.4: рush psw pop hl [A] – H; [F] – L останов hlt 1. [A] и [F] в стек До выполнения программы адрес вершины стека был 100h, после выполнения команды PUSH адрес уменьшился на 2 и стал равным 0FFEh. 2. До: 0FFEh, после: 1000h. 3. Команда XTHL взаимно обменивает содержимое регистров: L с содержимым стека с адресом SP и содержимое регистра H с содержимым стека SP+1. При выполнении 2-х таких команд подряд содержимое не изменится. 4. Слово состояния сохраняется в стеке как один байт, с последующим увеличением SP на 2. Задание №2. 1.Составить программу осуществляющую сложение двух чисел по адресам 0010,0011. Записать эти числа в регистры В и С и записать результат в регистр D. Запись содержимого этих регистров и PSW в стек. 2.После исполнения программы составить таблицу: адреса ячеек стека и содержимого этих ячеек, регистры из которых производилась запись информации в стек. адрес 0010 0011 MVI HL,0010 MOV B,M MVI HL,0011 MOV C,M MOV A,B ADD C B→ 00FE 00FD 0FFC 0FFB 0FFA 0FF9 0FF8 C→ D→ F→ данные 01 01 стек 01 00 01 00 02 00 14 Содержание памяти MOV D,A - 106 - PUSH B PUSH C PUSH D PUSHPSW HLT Информация в регистрах МП и ячейках стека при выполнении задания 2. Таблица 1 № 1 Команда MVI H, 0010 2 MOV B,M 3 MVI H, 0011 4 MOV C,M 5 MOV A,B 6 ADD C 7 MOV D,A 8 9 10 11 PUSH B PUSH C PUSH D 00 00 00 00 01 02 02 02 02 02 PUSHPS W 12 A HLT FL B - - - - - - - - - C 00 00 01 00 01 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 02 02 - М1/дан М2/дан М3/данн ные ные ые 0010/01 00 00 0010/01 00 00 0010/01 0011/01 00 0010/01 0011/01 00 0010/01 0011/01 00 0010/01 0011/01 00 0010/01 0011/01 00 0010/01 0011/01 00FE/01 00FD/00 0010/01 0011/01 0FFC/01 0FFB/00 0010/01 0011/01 0FFA/02 0FF9/00 D 00 00 00 00 00 00 02 02 02 02 0010/01 0011/01 0FF8/14 01 01 01 01 - 107 - 02 0010/01 0011/01 00 02 3.Составить графическое изображение выполнения команды ADD С Аккумулятор Аккумулятор 0000 0001 0000 0010 СЛОЖИТЬ До операции После операции ADD C 0000 0001 0 0 Регистр С S Z - Индикаторы 0 - 0 - 0 AC P CY Рисунок 1. Графическое представление команды сложения Ответы на контрольные вопросы: 1. 2. 3. 4. Анализ результатов, полученных в ходе лабораторной работы: Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия. С помощью команды PUSH RP осуществляется запись в стек содержимого регистра RP МП, а с помощью команды POP RP – запись данных из стека в регистр RP процессора. Эти команды однобайтные. В них содержится номер пары регистров МП. Сущность команд можно показать следующим образом: - 108 - PUSH B: (SP – 1) B, (SP – 2) C; SP = SP – 2 POP D: E (SP), D (SP + 1); SP = SP + 2 При записи в стек содержимого пары регистров или программного счетчика по адресу SP – 1 записывается содержимое старшего регистра из указанной пары (в примере B) или старшего байта PCH (программного счетчика), а по адресу SP – 2 в стек записывается содержимое младшего регистра (в примере C) из указанной пары или младшего байта PCL (программного счетчика). При записи из стека данных в пару регистров или в программный счетчик в младший регистр регистровой пары или в PCL записывается число из адреса, указанного в указателе стека SP, а в старший регистр регистровой пары или в PCH – число, записанное по адресу SP + 1. В результате выполнения команды содержимое SP увеличивается на 2. Таким образом, при записи данных адреса стека убывают от больших к меньшим, а указатель стека SP всегда содержит последний адрес стека, в котором записано число. При разработке программ необходимо назначать область стека, записывая в SP адрес с помощью команды LXI SP, <Адрес> или команды SPHL. РАЗДЕЛ 1 Тема 1.6 Программное обеспечение микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №8 Программирование арифметических операций над многобайтными числами Учебные цели: Изучение способов организации и исследование программ выполнения арифметических операций. Учебные задачи: - 109 - 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах; - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - состояние производства и использования микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: 1.Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления; - 110 - 2.Изучить команды арифметических операций МП КР580ВМ80 3.Практическое использование нового программного продукта. Обеспеченность занятия: 1. Учебно-методическая литература: - Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с. - Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г. - Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005 - Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с. - Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с. 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. 3.Технические средства обучения: - Персональный компьютер; - Принтер. 4. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. - 111 - 5. Лабораторное оборудование: - Персональный компьютер; - Принтер. 6. Рабочая тетрадь в клетку 7. Ручка. 8. Карандаш простой. 9. Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы Так как МП серии КР580 не имеет специальных команд для работы с числами с плавающей точкой, то при составлении программ для этого процессора, как правило, используется представление чисел с фиксированной точкой. Восьмиразрядное слово данных позволяет представить число, как двоичное число со знаком, имеющее значение от –128 до +127. При этом отрицательные числа представляются в дополнительном коде, а старший разряд числа используется как знаковый. Такое представление чисел не позволяет выполнять арифметические операции с использованием переноса при сложении и заема при вычитании. Число с фиксированной точкой можно представить также двоичными числами без знака, имеющими значения от 0 до 255. Для МП БИС можно представить также числа в виде двоичного числа Binariсoded-decimal (BCD), при котором каждый байт рассматривается как два полубайта, две тетрады, каждая из которых кодирует десятичную цифру. Такое представление позволяет закодировать 1 байт числа от 0 до 99. Невысокая разрядность адресуемой ячейки памяти в МП КР580 порождает необходимость в программах, реализующих арифметические операции с числами занимающими в памяти группу последовательных ячеек. - 112 - Идея алгоритма, например сложения трех байтовых чисел, заключается в использовании команды ADC (сложение с заемом). По этой команде к сумме однобайтных слагаемых добавляется содержимое признака СY, в котором (на предыдущем шаге) формируется бит переноса из старшего разряда, т.е. перенос из младших байтов тригер переноса отбрасывается. Операция вычитания выполняется по тому же алгоритму. Микро-ЭВМ может представить арифметические числа с двойной или большей длиной машинного слова. Так как МП имеет 8-разрядное АЛУ, то операции с такими числами должны производиться по байтам, начиная с младших байтов. Так операция сложения чисел 17F5 + 3411 будет производиться следующим образом: Чи Млад Ф Старш сл ший л ий а байт а байт г С 17 11110 00010 F5 101 111 + + + 34 00010 00110 11 001 100 1 + 1 4С 00000 01001 06 110 100 Из приведенных примеров видно, что при суммировании (вычитании) младших байтов чисел можно применять команду ADD (SUB), а при суммировании (вычитании) остальных байтов чисел необходимо использовать команду ADC (SBB), которая будет учитывать состояние разряда С регистра признаков МП. - 113 - Вопросы для закрепления теоретического материала к лабораторной работе 1. Объясните, что происходит с результатом сложения с применением команды СЛОЖЕНИЕ С ПЕРЕНОСОМ? 2. Объясните, что происходит с результатом сложения с применением команды ВЫЧИТАНИЕ С ПЕРЕНОСОМ? 3. В регистровой паре ВС содержится число FFFF, которое подвергается положительному приращению. Каковы последствия этого действия? 4. Поясните алгоритм сложения многобайтовых чисел в 8-ми разрядном микропроцессоре. 5. В регистровой паре ВС содержится число FFFF; производится положительное приращение содержимого регистра С. Каковы последствия этого действия? Задания для закрепления теоретического материала к лабораторной работе Задание №1: Рассмотреть и исследовать программу П7.1 сложения трехбайтных чисел. Задание №2: Рассмотреть и иисследовать программу П7.2 вычитания многобайтных чисел. Задание №3: Составить программу сложения двухбайтных чисел, расположенных в ячейках 0010, 0011, и 0015, 0016 с записью результата в ячейки 0020, 0021. Инструкция по выполнению лабораторной работы Задание №1: 1. Рассмотреть и изучить программу П7.1 сложения трехбайтных чисел. 2. Ввести программу и произнести её пуск. Изменяя числа в соответствующих ячейках ЗУ. проследить за работой программы. Программа П7.1 lxi bc,0010 загрузить адрес в ВС - 114 - lxi hi,0013 загрузить адрес в HL mvi d,3 xra a очистить бит CY be6:ldax bc загрузить байт по адресу BC adc m сложить с байтом по адресу HL и с CY stax bc запомнить результат в ВС dcr d уменьшить счетчик на 1 jz end перейти, если D=0 inx bc указать следующий байт inx hl указать следующий байт jmp be6 перейти к сложению end:hlt останов Примечание: Младший байт первого слагаемого 0010 Младший байт второго слагаемого 0013 Результат – 0010-0012 Задание №2: 1. Рассмотреть и изучить программу П7.2 вычитания многобайтных чисел. 2. Ввести программу и произвести её пуск. Изменяя числа (вычитаемое и уменьшаемое) проследить за работой программы. Программа П7.2 xra a очистить аккумулятор и CY mvi c,3 вызвать подпрограмму call cnt hlt все cnt:ldax de записать уменьшаемое в А sbb m вычесть mov m,a записать результат inx hl указать на следующий байт уменьшаемого - 115 - inx de указать на следующий байт вычитаемого dcr c уменьшить счетчик длины байт jnz cnt если не 0, то идти на cnt mc если байт старший, и результат без заемо, то возврат call beep иначе, выдать сигнал ret beep:mvi a,1 out 60 xra a dly:dcr a jnz dly mvi a,0 out 60 ret Примечание: Адрес младшего байта вычитаемого 0010 занести в регистровую пару HL. В регистр С занести длину чисел (в байтах). Адрес младшего байта уменьшаемого 0013 в регистровую пару DE. Результат 0010, 0011. Задание №3: Составить программу сложения двухбайтных чисел, расположенных в ячейках 0010, 0011, и 0015, 0016 с записью результата в ячейки 0020, 0021. Методика анализа результатов, полученных в ходе лабораторной работы Невысокая разрядность адресуемой ячейки памяти в МП КР580 порождает необходимость в программах, реализующих арифметические операции с числами занимающими в памяти группу последовательных ячеек. Идея алгоритма, например сложения трех байтовых чисел, заключается в использовании команды ADC (сложение с заемом). По этой команде к сумме однобайтных слагаемых добавляется содержимое признака СY, в котором (на - 116 - предыдущем шаге) формируется бит переноса из старшего разряда, т.е. перенос из младших байтов триггер переноса отбрасывается. Порядок выполнения отчета по лабораторной работе 1. Наименование и цель работы 2. Программу сложения трехбайтовых чисел в формате ассемблера. Результат работы программы 3. Программу вычитания двухбайтных чисел в формате ассемблера. Результат работы программы 4. Разработанную программу сложения двухбайтных чисел в формате ассемблера. Результаты работы программы 5. 6. Ответы на контрольные вопросы Анализ результатов, полученных в ходе лабораторной работы Образец отчета по лабораторной работе: ЛАБОРАТОРНАЯ РАБОТА №8 Программирование арифметических операций над многобайтными числами Учебные цели: Исследование методов программных способов маскирования данных и организация условных переходов в микропроцессорных системах Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть микропроцессора, а также состояние различных компонентов используя программное моделирование. - 117 - узлов и микропроцессорной устройств системы, Выполнение работы: Задание №1. Первое 0010 01 01 слагаемое 0011 00 00 0012 00 00 Второе 0013 01 FF слагаемое 0014 00 00 0015 00 00 После выполнения программы 0010 02 00 0011 00 01 0012 00 00 Первое 0010 02 FF слагаемое 0011 00 DF 0012 00 00 Второе 0013 01 01 слагаемое 0014 00 FF 0015 00 00 Задание №2. После выполнения программы 001 0 0 02 0 20 0 00 1 001 1 0 001 - 118 - 2 0 Задание №3 Программа сложения двухбайтных чисел, расположенных в ячейках 0010, 0011, и 0015, 0016 с записью результата в ячейки 0020, 0021. LXI BC,0010 15 LXI HL,0015 В2 XRA A 00 LDAX BC 15 ADC M С6 PUSHPSW 14 STA 0020 С6 INX BC АА INX HL 22 POPPSW 14 LDAX BC АА ADC M СС STA 0021 СС HLT Ответы на контрольные вопросы: 1. 2. 3. 4. Анализ результатов, полученных в ходе лабораторной работы: Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ - 119 - была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия. Невысокая разрядность адресуемой ячейки памяти в МП КР580 порождает необходимость в программах, реализующих арифметические операции с числами занимающими в памяти группу последовательных ячеек. Идея алгоритма, например сложения трех байтовых чисел, заключается в использовании команды ADC (сложение с заемом). По этой команде к сумме однобайтных слагаемых добавляется содержимое признака СY, в котором (на предыдущем шаге) формируется бит переноса из старшего разряда, т.е. перенос из младших байтов триггер переноса отбрасывается. Целью работы является исследование и сложения многобатовых чисел разработка простой программы для приобретения практических навыков программирования на языке ассемблера и закрепления знаний. Цель работы достигнута. Разработана программа сложения двухбайтных чисел. Программа отлажена и протестирована средствами эмулятора РАЗДЕЛ 1 Тема 1.6 Программное обеспечение микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №9 Разработка и исследование программ умножения данных Учебные цели: Исследование методов программных способов умножения в микропроцессорных системах на МП КР580ВМ80 Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. - 120 - 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора при выполнении операции умножения, а также компонентов микропроцессорной системы, используя программное моделирование. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах; - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - состояние производства и использования микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: 1.Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления; 2.Изучить методику выполнения операции умножения 3.Практическое использование нового программного продукта. - 121 - Обеспеченность занятия: 1. Учебно-методическая литература: - Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с. - Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г. - Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005 - Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с. - Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с. 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. 3.Технические средства обучения: - Персональный компьютер; - Принтер. 4. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. 5. Лабораторное оборудование: - Персональный компьютер; - Принтер. - 122 - 6. Рабочая тетрадь в клетку 7.Ручка. 8.Карандаш простой. 9.Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы Существует несколько алгоритмов умножения чисел. При одном алгоритме умножение можно заменить многократным сложением. Например 143=14+14+14. Существует недостаток этого способа: значительная длительность вычисления. При другом алгоритме умножение осуществляется так: 0010=6 0011=3 0110 +0110 10010=18 При вычислении результата по второму способу необходимо осуществлять многократное суммирование со сдвигом влево множимого при одновременной проверке содержимого разрядов множителей, начиная со стороны его младшего разряда. При этом если в очередном разряде множителя записана 1, то множимое прибавляется к сумме и сдвигается влево на 1 разряд, а если в разряде записан 0 – произойдет только сдвиг множимого. Сдвиг множимого влево можно заменить сдвигом суммы вправо. По этому принципу работает программа умножения двух однобайтных чисел с получением двухбайтного результата программа 9.2. - 123 - Умножение Счетчик битов равен 08, сумма = 00. нет Содержимое бита = 1? сумма = сумма + множимое. Сдвинуть сумму вправо. Указать на след. бит множителя. Последний бит? нет Конец Рис.1 . Программа умножения двух однобайтных чисел с получением двухбайтного результата Вопросы для закрепления теоретического материала к лабораторной работе 1. Как оценить максимальное время выполнения программы умножения двух чисел? 2. На чем основаны алгоритмы программ умножения чисел Изучить подгруппу арифметических команд МП. 3. Ознакомиться с правилами выполнения команды DAA (десятичная коррекция аккумулятора). 4. Определить значения признаков CY (перенос), AC (полуперенос), S (знак), Z (нуль) и P (четность) в микропроцессоре КР580ВМ80А после выполнения команды ADD B, если до ее выполнения A = 9BH, B = 36H. 5. В какие ячейки памяти будет произведена запись информации и чему будет равно их содержимое, а также содержимое указателя стека SP после выполнения в микропроцессоре КР580ВМ80А команды PUSH B, если до ее выполнения B = 8AH, C = 15H, SP = 2304H? - 124 - Задания для закрепления теоретического материала к лабораторной работе Задание №1: 1. Изучить и исследовать работу программы П9.1 умножение целых чисел без знака. Задание №2: 1. Изучить и исследовать программу умножения двух однобайтных чисел с получением двухбайтного результата 9.2 Инструкция по выполнению лабораторной работы Задание №1: 2. Изучить работы программы П9.1 умножение целых чисел без знака. 3. Провести ввод и пуск программы. Произвести умножение нескольких чисел. Программа П9.1 mvi a,5 mvi d,2 lxi hl,0000 mvi c,08 сброс регистра произведения инициализация счетчика бит nxdit:dad h сдвиг частичной суммы ral сдвиг множителя jnc noadd анализ бита множителя dad d суммирование множителя noadd:aci 0 учет переноса dcr c декремент счетчика бит jnz nxbit умножение на следующий бит hlt умножение закончено Примечание: Множимое – в регистр А, множитель – в регистр D - 125 - Произведение в регистр H Задание №2: . Программа умножения двух однобайтных чисел с получением двухбайтного результата Входными параметрами программы 9.1 алгоритм которой приведен ниже, на Рис. 1, являются следующие регистры: регистр D – множимое, регистр E – множитель. Результат записывается в регистровую пару BC. D, ;Запись в D множимого. E, ;Запись в E множителя. B, ;Очистить регистры B и C. L, ;Загрузка счетчика. MOV A, E ;Множитель в Акк. MVI A1h MVI 9Bh LX 0000h MVI 08h LAB_ 1: RAR ;Сдвиг анализируемого бита в триггер C. MOV E, A ;Возврат в E сдвинутого множителя. JNC ;Если бит множителя равен нулю, LAB_2 то идти ; на LAB_2. MOV A, B ;Загрузка в Акк. старшей частичной суммы. ADD D ;Прибавление к нему множимого. MOV B, A ;Возврат в B старшей частичной суммы. - 126 - MOV A, B ;Загрузка в Акк. старшей частичной суммы. LAB_ 2: RAR ;Сдвиг старшей частичной суммы вправо ; (младший бит в C). MOV B, A ;Возврат в B старшей частичной суммы. MOV A, C ;Загрузка в Акк. младшей частичной суммы. RAR ;Сдвиг младшей частичной суммы вправо ; (C в старший бит). MOV C, A ;Возврат в C младшей частичной суммы. DCR L ;Декрементация счетчика. JNZ ;Если разряд не последний, то идти LAB_1 на LAB_1. HLT ;Выход из программы. Методика анализа результатов, полученных входе лабораторной работы Программа 9.1 реализует алгоритм умножения “младшими разрядами вперед со сдвигом частичной суммы”. Множимое помещается в регистр А, множитель в регистр D, произведение – однобайтное число - образуется в регистре Н. При выполнении умножения последовательно анализируются биты множителя, начиная с младшего, помещаемые по команде RAR (циклический сдвиг вправо через перенос) в разряд переноса CY. Если очередной бит множителя ненулевой, то множимое добавляется к байту частичной суммы, находящемуся в регистре Н. Далее выполняется сдвиг этого байта вправо (вторая команда RAR), при этом его младший бит вытесняется в разряд переноса CY. При сдвиге в следующем цикле - 127 - содержимого регистра А значение CY заносится в его старший бит, а в CY помещается очередной бит множителя. Таким образом в регистре Н множитель постепенно вытесняется частичной суммой, которая после выполнения восьми циклов дает результат умножения. Длина описанной программы - 19 байт. Порядок выполнения отчета по лабораторной работе 1.Наименование и цель работы 2.Программа 9.1 и результат её работы 3.Программа умножения двух однобайтных чисел с получением двухбайтного результата 9.2 4.Ответы на контрольные вопросы 5.Анализ результатов, полученных в ходе лабораторной работы Образец отчета по лабораторной работе ЛАБОРАТОРНАЯ РАБОТА №9 Разработка и исследование программ умножения данных Учебные цели: Исследование методов программных способов умножения в микропроцессорных системах на МП КР580ВМ80 Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора при выполнении операции умножения, а также компонентов микропроцессорной системы, используя программное моделирование. Выполнение работы - 128 - Задание №1: Исследование работы программы П9.1 умножение целых чисел без знака. Программа П9.1 mvi a,5 mvi d,2 lxi hl,0000 сброс регистра произведения mvi c,08 инициализация счетчика бит nxdit:dad h сдвиг частичной суммы ral сдвиг множителя jnc noadd анализ бита множителя dad d суммирование множителя noadd:aci 0 учет переноса dcr c декремент счетчика бит jnz nxbit умножение на следующий бит hlt умножение закончено Вычислению квадратного корня с точностью до целых чисел. Таблица 1 Число Сумма нечетных чисел Результат 1 1 = 1 2 1+3 = 4 3 1+3+5 = 9 4 1+3+5+7 = 16 5 1+3+5+7+9 = 25 Примечание: Множимое – в регистр А, множитель – в регистр D Произведение в регистр H - 129 - № экспер А D H 1 05 02 10 2 03 04 12 3 05 05 15 4 04 05 20 5 06 03 18 Задание №2: . Программа умножения двух однобайтных чисел с получением двухбайтного результата Входными параметрами программы 9.1 алгоритм которой приведен ниже, на Рис. 1, являются следующие регистры: регистр D – множимое, регистр E – множитель. Результат записывается в регистровую пару BC. MVI D, ;Запись в D множимого. A1h MVI E, ;Запись в E множителя. 9Bh LXI B, ;Очистить регистры B и C. 0000h MVI L, ;Загрузка счетчика. 08h MOV A, E ;Множитель в Акк. RAR ;Сдвиг анализируемого бита в LAB_ 1: триггер C. MOV E, A ;Возврат в E сдвинутого множителя. JNC ;Если бит множителя равен нулю, LAB_2 то идти - 130 - ; на LAB_2. MOV A, B ;Загрузка в Акк. старшей частичной суммы. ADD D ;Прибавление к нему множимого. MOV B, A ;Возврат в B старшей частичной суммы. MOV A, B ;Загрузка в Акк. старшей частичной суммы. LAB_ 2: RAR ;Сдвиг старшей частичной суммы вправо ; (младший бит в C). MOV B, A ;Возврат в B старшей частичной суммы. MOV A, C ;Загрузка в Акк. младшей частичной суммы. RAR ;Сдвиг младшей частичной суммы вправо ; (C в старший бит). MOV C, A ;Возврат в C младшей частичной суммы. DCR L ;Декрементация счетчика. JNZ ;Если разряд не последний, то идти LAB_1 на LAB_1. HLT ;Выход из программы. - 131 - № D E B C 1 12h 7h 00 7B 2 22h 10h 00 EC 3 150h 15h 1B 90 4 120h 20h 24 00 экспер Результат работы программы Ответы на контрольные вопросы: 1. 2. 3. 4. Анализ результатов, полученных в ходе лабораторной работы: Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия. Программа 9.1 реализует алгоритм умножения “младшими разрядами вперед со сдвигом частичной суммы”. Множимое помещается в регистр А, множитель в регистр D, произведение – однобайтное число - образуется в регистре Н. При выполнении умножения последовательно анализируются биты множителя, начиная с младшего, помещаемые по команде RAR (циклический сдвиг вправо через перенос) в разряд переноса CY. Если очередной бит множителя ненулевой, то - 132 - множимое добавляется к байту частичной суммы, находящемуся в регистре Н. Далее выполняется сдвиг этого байта вправо (вторая команда RAR), при этом его младший бит вытесняется в разряд переноса CY. При сдвиге в следующем цикле содержимого регистра А значение CY заносится в его старший бит, а в CY помещается очередной бит множителя. Таким образом в регистре Н множитель постепенно вытесняется частичной суммой, которая после выполнения восьми циклов дает результат умножения. При вычислении по программе 9.2 необходимо осуществлять многократное суммирование со сдвигом влево множимого при одновременной проверке содержимого разрядов множителей, начиная со стороны его младшего разряда. При этом если в очередном разряде множителя записана 1, то множимое прибавляется к сумме и сдвигается влево на 1 разряд, а если в разряде записан 0 – произойдет только сдвиг множимого. Сдвиг множимого влево можно заменить сдвигом суммы вправо. Так работает программа умножения двух однобайтных чисел с получением двухбайтного результата. РАЗДЕЛ 1 Тема 1.6 Программное обеспечение микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №10 Разработка и исследование программ деления данных Учебные цели: Исследование методов программных способов деления для микропроцессорной системы на МП КР580ВМ80 Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. - 133 - 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, при выполнении операции деления а также компонентов микропроцессорной системы, используя программное моделирование. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах; - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - состояние производства и использования микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: 4. Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы деления чисел 5. Изучить методику составления программ деления чисел - 134 - 6. Практическое использование нового программного продукта. Обеспеченность занятия: 1. Учебно-методическая литература: - Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с. - Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г. - Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005 - Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с. - Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с. 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. 3.Технические средства обучения: - Персональный компьютер; - Принтер. 4. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. 5. Лабораторное оборудование: - 135 - - Персональный компьютер; - Принтер. 6. Рабочая тетрадь в клетку 7.Ручка. 8.Карандаш простой. 9.Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы Деление двоичных чисел, как и чисел, представленных в любой другой системе счисления, основывается на последовательном вычитании делителя из делимого и остатков от деления. Однако двоичное деление реализуется проще, так как использование только двух цифр (0 и 1) исключает в каждом цикле деления необходимость определения числа делителей, содержащихся в текущем значении делимого или остатка (достаточно только сравнить их). Операция алгебраического деления чисел содержит действия, связанные с определением знака частного и действия, связанные с определением модуля частного и положительного остатка. Знак частного может быть определен выделением из чисел содержимого знаковых разрядов. Затем суммированием их по модулю 2 и введением в знаковый разряд частного после того как будет найден модуль частного. Рис. 10.1 . Схема алгоритма программы деления двух восьмиразрядных чисел164 - 136 - Модуль частного определяется следующим образом: Пусть делимое и делитель – целые положительные числа. Делимое имеет 2n разрядов. Делитель – n разрядов, их старшие разряды – знаковые и содержат 0. Процесс деления сводится к следующей циклически повторяемой последовательности действий. В первом повторении цикла – делимое, а в последующих повторениях цикла - остаток сдвигаются на один разряд влево и затем из него вычитается делитель; если полученный новый остаток –положительное число, то в очередной разряд частного (начиная с его старшего разряда) записывается 1, если новый остаток – отрицательное число, то в разряд частного записывается 0, а к остатку прибавляется делитель и таким образом восстанавливается предыдущий сдвинутый остаток. Эти действия циклически повторяются n раз (n – число разрядов делителя). В результате образуется частное, а последний остаток является результирующим остатком операции деления. Для построения программы выполнение операции деления в микропроцессоре примем n=8. При этом делимое будет 16 разрядов (2 байта) и для его хранения потребуется пара регистров. Используем для его хранение регистр BC. При каждом сдвиге влево содержимого регистра ВС в освобождающийся правый разряд будет заноситься значение очередного разряда частного. Таким образом, после окончания выполнения операции в регистре С образуется значение частного. Так как действия вычитания (или сложения) делителя должны производиться над старшими восемью разрядами остатка, то эти операции будут выполняться. Над содержимым регистра B, а после окончания операции деления его содержимое будет результирующим остатком операции. Для хранения однобайтного делителя используем регистр D. На регистре E, предварительно загружаемым числом 8, построим счетчик числа повторения цикла. Вопросы для закрепления теоретического материала к лабораторной работе - 137 - 1.На чем основаны алгоритмы работы программа деления чисел? 2.Оцените максимальное время выполнения программы деления двух чисел, если время машинного такта для МП t= 1 мкс. 3.Можно ли непосредственно исследовать перемножения двух чисел по программе П10.1? Пояснить 4. Определить содержимое регистров A, H и L после выполнения следующего фрагмента программы, если до выполнения было: A = 5CH, H = A3H, L = 9DH. ADD H MOV L, A INX H 5.Какие машинные циклы реализуются в микропроцессоре КР580ВМ80А при выполнении команды JNC ADR и какова длительность этой команды? Задания для закрепления теоретического материала к лабораторной работе Задание №1: 1. Изучить и исследовать работу программы П10.1 деления целых чисел без знака. Задание №2: 2. Изучить и исследовать программу умножения двух однобайтных чисел с получением двухбайтного результата 9.2 Инструкция по выполнению лабораторной работы Схема алгоритма деления двоичных чисел приведена на рис. 10.1. Программа DIVB построена по этому алгоритму (программа П10.1). Входными параметрами этой программы являются делимое (в регистре Е) и делитель (в регистре D); выходными параметрами — частное (в регистре Н) и остаток (в регистре С). - 138 - Задание №1: Порядок выполнения задания: Изучить работу программы П10.1 деления целых чисел без знака. 2. 2 Произвести ввод и пуск программы П10.1. Входными параметрами данной программы являются делимое (в регистре Е) и делитель (в регистре D), а выходными параметрами – частное (в регистре Н) и остаток (в регистре С). Перед началом выполнения программы признак переноса C должен быть сброшен. Программа 10.1 MVI E, ;Загрузка в E делимого. A9h MVI D, ;Загрузка в D делителя. 54h LXI H, ;Загрузить счетчик битов (L) и 0008h очистить ; регистр H. MVI C, ;Очистить регистр 00h промежуточного делимого. MOV A, E ;Загрузить делимое в Акк. RAL ;Сдвинуть старший бит в разряд С. MOV E, A ;Возвратить делимое в регистр E. LAB_ 1: MOV A, C ;В Акк. промежуточное делимое из регистра С. RAL ;Сдвинуть разряд С в младший бит Акк. SBB D ;Вычесть из содержимого Акк. делитель - 139 - ; с учетом заема. JNC ;Если результат положительный, LAB_2 то идти ; на LAB_2 (C = 0). ADD D ;Сложить содержимое регистра D с Акк. MOV C, A ;Возвратить промежуточное LAB_ делимое в 2: ; регистр С. CMC ;Инвертировать разряд С. MOV A, H ;Запись цифры частного. RAL MOV H, A DCR L ;Проверены ли все 8 разрядов. JNZ ;Если нет, продолжать. LAB_1 HLT ;Выход из программы. 3. Записать в регистры Е, D соответственно делимое и делитель. 4. Осуществить пуск программы и проверить результат деления двух чисел по содержимому регистров Н, С. 5. Выполнить деление нескольких чисел. Методика анализа результатов, полученных входе лабораторной работы Программа 9.1 реализует алгоритм умножения “младшими разрядами вперед со сдвигом частичной суммы”. Множимое помещается в регистр А, множитель в регистр D, произведение – однобайтное число - образуется в регистре Н. При выполнении умножения последовательно анализируются биты множителя, начиная с младшего, помещаемые по команде RAR (циклический сдвиг вправо через перенос) в разряд переноса CY. Если очередной бит множителя ненулевой, то - 140 - множимое добавляется к байту частичной суммы, находящемуся в регистре Н. Далее выполняется сдвиг этого байта вправо (вторая команда RAR), при этом его младший бит вытесняется в разряд переноса CY. При сдвиге в следующем цикле содержимого регистра А значение CY заносится в его старший бит, а в CY помещается очередной бит множителя. Таким образом в регистре Н множитель постепенно вытесняется частичной суммой, которая после выполнения восьми циклов дает результат умножения. Длина описанной программы - 19 байт. Порядок выполнения отчета по лабораторной работе 1. Наименование и цель работы 2. Программа 10.1 и результат её работы 3. Ответы на контрольные вопросы 4. Анализ результатов, полученных в ходе лабораторной работы Образец отчета по лабораторной работе ЛАБОРАТОРНАЯ РАБОТА №10 Разработка и исследование программ деления данных Учебные цели: Исследование методов программных способов деления, отладки и тестирования программ Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. - 141 - 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, при выполнении операции деления а также компонентов микропроцессорной системы, используя программное моделирование. Выполнение работы Задание №1: Порядок выполнения задания: 3. Изучить работу программы П10.1 деления целых чисел без знака. 2 Произвести ввод и пуск программы П10.1. Входными параметрами данной программы являются делимое (в регистре Е) и делитель (в регистре D), а выходными параметрами – частное (в регистре Н) и остаток (в регистре С). Перед началом выполнения программы признак переноса C должен быть сброшен. Программа 10.1 MVI E, ;Загрузка в E делимого. A9h MVI D, ;Загрузка в D делителя. 54h LXI H, ;Загрузить счетчик битов (L) и 0008h очистить ; регистр H. MVI C, ;Очистить регистр 00h промежуточного делимого. MOV A, E ;Загрузить делимое в Акк. RAL ;Сдвинуть старший бит в разряд С. MOV E, A ;Возвратить делимое в регистр E. LAB_ 1: - 142 - MOV A, C ;В Акк. промежуточное делимое из регистра С. RAL ;Сдвинуть разряд С в младший бит Акк. SBB D ;Вычесть из содержимого Акк. делитель ; с учетом заема. JNC ;Если результат положительный, LAB_2 то идти ; на LAB_2 (C = 0). ADD D ;Сложить содержимое регистра D с Акк. MOV C, A ;Возвратить промежуточное LAB_ делимое в 2: ; регистр С. CMC ;Инвертировать разряд С. MOV A, H ;Запись цифры частного. RAL MOV H, A DCR L ;Проверены ли все 8 разрядов. JNZ ;Если нет, продолжать. LAB_1 HLT ;Выход из программы. 3. Записать в регистры Е, D соответственно делимое и делитель. 4. Осуществить пуск программы и проверить результат деления двух чисел по содержимому регистров Н, С. 5. Выполнить деление нескольких чисел. № экспер Е D Н С - 143 - 1 27 5 5 2 2 98 8 12 2 3 66 6 11 0 Результат работы программы РАЗДЕЛ 1 Тема 1.7 Тестирование и комплексная отладка микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №11 Работа с программой – отладчиком Учебные цели: Практическое освоение основных функций программыотладчика TURBO DEBUGGER. Учебные задачи: 1. Закрепление полученных теоретических знания по программированию и отладке микропроцессорных систем. 2. Изучить методику применения основных команд для работы с окнами отладчика Turbo Debugger Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - 144 - - отлаживать программы реального времени - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: 1.Изучить применение программы отладчика TURBO DEBUGGER 2.Осуществить компиляцию и отладку заданных программ 3.Практическое использование нового программного продукта. Обеспеченность занятия: 1. Учебно-методическая литература: - Абель П. Язык Ассемблера для IBM PC и программирования /Пер. c англ. М.:Высш.шк., 2002,c 93-115. - А.Крупник. Ассемблер. Серия: самоучитель./С-Пб., ПИТЕР, 2003 г , 242 с 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. 3.Технические средства обучения: - 145 - - Персональный компьютер; - Принтер. 4. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. 5. Лабораторное оборудование: - Персональный компьютер; - Принтер. 6. Рабочая тетрадь в клетку 7.Ручка. 8.Карандаш простой. 9.Чертежные принадлежности: линейка Краткие теоретические и учебно-методические материалы по теме лабораторной работы Турбо отладчик (Turbo Debugger) - это современный отладчик, позволяющий отлаживать программы на уровне исходного текста и предназначенный для программистов, работающих на Турбо языках фирмы Borland. Многочисленные перекрывающие друг друга окна, а также сочетание спускающихся и раскрывающихся меню обеспечивают быстрый, интерактивный пользовательский интерфейс. Интерактивная, контекстно-зависимая система подсказки обеспечит вас подсказкой на всех стадиях работы. Непосредственно после запуска отладчика открыто окно CPU. В окне CPU (ЦП) показано все состояние центрального процессора. С его помощью вы можете проверять и изменять биты и байты, составляющие код и данные программы. В окне Code (Код) для временной - 146 - коррекции своей программы вы можете использовать встроенный Ассемблер. При этом инструкции вводятся точно также, как при наборе исходных операторов Ассемблера. Можно также получить доступ к соответствующим данным любой структуры данных, выводя и изменяя их в различных форматах. В области регистров (верхняя область справа от области кода) выводится содержимое регистров центрального процессора. Верхней правой областью является область флагов, где показано содержимое восьми флагов центрального процессора. В области флагов показано значение каждого флага ЦП. В области данных показано непосредственное содержимое выбранной области памяти. В левой части каждой строки показан адрес данных, выводимых на данной строке. Адрес выводится в виде шестнадцатеричного значения сегмента и смещения. Значение сегмента заменяется именем сегмента DS, если значение сегмента совпадает с текущим содержимым регистра DS. В правой части каждой строки выводятся символы, соответствующие показанным байтам. Турбо отладчик выводит все печатаемые значения, соответствующие байтовым эквивалентам, поэтому не удивляйтесь, если на экране вы увидите странные символы - просто это символьный шестнадцатеричных значений байтов данных. В нижнем правом углу окна CPU показано содержимое стека. Некоторые команды программы DEBUG: D (Dump) - Команда вывода на экран содержимого памяти E (Enter) - Команда ввода F (FILL) - Команда заполнения памяти G (Go) - Команда выполнения программы R (Register) - Команда операции с регистрами Т (Тгасе) - Команда отслеживания A (Assemble) - Команла трансляции - 147 - эквивалент Команды работы с отладчиком TURBO DEBUGGER - 148 - Вопросы для закрепления теоретического материала к лабораторной работе 1. Каковы задача и содержание этапа отладки программ? 2. Типы программ-отладчиков и особенности их работы. 3. Основные команды для работы с ячейками памяти и регистрами отладчика Turbo Debugger ? 4. Основные команды для отладки загруженной программы ? 5. Основные команды для работы с окнами отладчика Turbo Debugger 6. Объяснить порядок загрузки отлаживаемой программы 7.Каким образом можно редактировать ассемблерную программу? 8. Как осуществляется изменение содержимого оперативной памяти и регистров средствами отладчика? 9. Как через меню отладчика запустить программу на выполнение? Задания для лабораторной работы - 149 - Задание 1: Изучить методические рекомендации по работе с программой отладчиком TURBO DEBUGGER Задание 2: 1.Изучить и исследовать структуру экрана TURBO DEBUGGER и использование команд отладчика. 2.Ознакомиться с командами программы отладчика и методикой их использования Задание 3: Выполнить запуск и отладку программ 11.1 и 11.2 Инструкция по выполнению лабораторной работы Задание 1: Изучить методические рекомендации по работе с программой отладчиком TURBO DEBUGGER Запуск программы осуществляется файлом td.exe, расположенный в директории BIN каталога BP или BC. Задание 2: 1.Изучить и исследовать структуру экрана TURBO DEBUGGER и использование команд отладчика. 2.Ознакомиться с командами программы отладчика и методикой их использования При запуске Turbo Debugger на экране появляется его основное меню и рабочее окно рис.1. Рабочее окно состоит из следующих четырёх окон: 1. окно команд – CPU; 2. окно регистров и флагов – Registers; 3. окно данных – Dump; 4. окно стека. - 150 - Рисунок 1. Окно основного рабочего меню TURBO DEBUGGER В свою очередь окно Registers поделено на две части. В левой его части указано содержимое всех регистров микропроцессора (ax,bx,cx,dx…), а в правой части показаны биты регистра флагов. Задание 3: Выполнить запуск и отладку программ 11.1 и 11.2 1. Запустить программу отладчика 2. Открыть меню File/Open и загрузить программу 11.1 Программа 11.1 lxi hi,0010 записать адрес 0010 в паре HL mov a,m передать данные в аккумулятор cma инвертировать содержимое аккумулятора lnx hl инвертировать содержимое HL mov m,a передать содержимое регистра А в ячейку памяти hit прервать выполнение программы 1. Указать содержимое каждого из восьми РОН после выполнения двух любых выбранных команд в программах П11.1 и П11.2. 2. Выполнить все команды TURBO DEBUGGER - 151 - 1. Ассемблируйте исходный текст программы П11.1 в режиме /zi , произведите его компоновку в режиме /v . Поместите полученные файлы в каталоге, что и TD.EXE. 2. Запустите программу TD на выполнение. После появления визитной карточки отладчика нажмите клавишу ENTER. Обратите внимание на то, что в нижней строке расположена подсказка о назначении функциональных клавиш, в верхней строке перечислены меню отладчика, а в основном поле экрана открыто окно CPU (ЦП). Клавишей ZOOM измените размер открытого окна. .3. Обратите внимание на то, что окно CPU разделено рамками на части, относящиеся к сегментам кода, стека, данных и РОНам. В сегменте кода команда по смещению, равному содержимому регистра IP, а в сегменте стека данные по смещению, равному содержимому регистра SP, отмечены стрелками. Клавишей TAB измените положение выделяющей информацию цветной рамки. .4. Нажатием комбинации клавиш alt-F10, попробуйте открыть окна локальных меню в каждой рамке окна CPU. Ознакомьтесь с их содержанием. Закрывайте окна клавишей ESC. 5.5. Используя клавишу F10, перейдите в главное меню. Откройте окно FILE. Включите режим OPEN... . Клавишей TAB выделите окно FILES. Курсорными клавишами выберите имя файла hello.exe и загрузите его. Сравните информацию, содержащуюся в рамке кода с листингом вашей программы. .6. В окне CPU произведите трассировку программы (пошаговое выполнение) нажатием клавиши F8. На каждом шаге контролируйте содержимое регистров, флагов и состояние стека. После завершения программы перейдите в окно WINDOW главного меню и установите режим USER SCREEN. Убедитесь, что программа выполнила свою задачу. Клавишей ESC верните изображение окна CPU. 7. Через окно FILE повторите загрузку программы П11.1. Перейдите в рамку сегмента данных. Откройте его локальное меню. Перейдите на смещение 100Н, используйте для этого режим GOTO. Для удобства анализа сегмента данных войдите в окно VIEW главного меню. Установите режим DAMP. Клавишей ZOOM увеличьте размеры рамки сегмента данных. Просмотрите содержимое ячеек памяти. - 152 - Подводя курсор к элементам данных Вашей программы, редактируйте их шестнадцатеричные значения, используйте для этого клавиши 0-9 и a-f. Произведите запуск программы (F9). Проанализируйте результат ее работы. 8. Произведите проверку работы программы П11.2. Открыть меню File/Open и загрузить программу Программа №11.2 lxi hl,0010 записать адрес 0010 в регистр HL lxi bc,0011 записать адрес 0011 в регистр ВС ldax bc передать данные из ячейки по адресу ВС в аккумулятор add m сложить содержимое аккумулятора и ячейки 0010 inx bc увеличить содержимое ВС на 1 stax bc передать содержимое аккумулятора в ячейку ВС hlt завершить выполнение 9.Завершите работу отладчика. Воспользуйтесь пунктом EXIT окна FILE. Методика анализа результатов, полученных в ходе лабораторной работы Используя программу TURBO DEBUGGER, мы изучили команды программы TURBO DEBUGGER, необходимые при разработке и отладки программ на языке Ассемблера. ЕХЕ-программы сложнее в исполнении, но для них отсутствует ограничение размера в 64 килобайта, так что все достаточно большие программы используют именно этот формат. Конечно, ассемблер позволяет уместить и в 64 килобайтах весьма сложные и большие алгоритмы, а все данные хранить в отдельных файлах, но ограничение размера все равно очень серьезно усложняет отладку больших по объему программ. Порядок выполнения отчета по лабораторной работе - 153 - 1. Наименование и цель работы 2. Исследуемые программы 3. Результат выполнения задания 2 4. Ответы на контрольные вопросы 5. Анализ результатов, полученных в ходе лабораторной работы Образец отчета по лабораторной работе ЛАБОРАТОРНАЯ РАБОТА №11 Работа с программой – отладчиком Учебные цели: Практическое освоение основных функций программыотладчика TURBO DEBUGGER. Учебные задачи: 1. Закрепление полученных теоретических знания по программированию и отладке микропроцессорных систем. 2. Изучить методику применения основных команд для работы с окнами отладчика Turbo Debugger Выполнение работы Задание 1: Изучить методические рекомендации по работе с программой отладчиком TURBO DEBUGGER Некоторые команды программы DEBUG: D (Dump) - Команда вывода на экран содержимого памяти E (Enter) - Команда ввода F (FILL) - Команда заполнения памяти G (Go) - Команда выполнения программы R (Register) - Команда операции с регистрами - 154 - Т (Тгасе) - Команда отслеживания A (Assemble) - Команла трансляции Задание 2: 1.Изучить и исследовать структуру экрана TURBO DEBUGGER и использование команд отладчика. 2.Ознакомиться с командами программы отладчика и методикой их использования При запуске Turbo Debugger на экране появляется его основное меню и рабочее окно рис.1. Рабочее окно состоит из следующих четырёх окон: 1. окно команд – CPU; 2. окно регистров и флагов – Registers; 3. окно данных - Dump; 4. окно стека. Рисунок 1. Окно основного рабочего меню TURBO DEBUGGER В свою очередь окно Registers поделено на две части. В левой его части указано содержимое всех регистров микропроцессора (ax,bx,cx,dx…), а в правой части показаны биты регистра флагов. Задание 3: Выполнить запуск и отладку программ 11.1 и 11.2 Программа 11.1 lxi hi,0010 записать адрес 0010 в паре HL mov a,m передать данные в аккумулятор - 155 - cma инвертировать содержимое аккумулятора lnx hl инвертировать содержимое HL mov m,a передать содержимое регистра А в ячейку памяти hit прервать выполнение программы 3. Указать содержимое каждого из восьми РОН после выполнения двух любых выбранных команд в программах П11.1 и П11.2. Тестирование программы 11.1 Исходные данные Ожидаемый результат Полученный результат F5 инверсия : 0A,ED,50 инверсия : 0A,ED,50 12 М0010 =F5,12,AF М0011 =0A,ED,50 AF HL=0011 HL=0011 4. Выполнить все команды TURBO DEBUGGER Программа №11.2 lxi hl,0010 lxi bc,0011 записать адрес 0010 в регистр HL записать адрес 0011 в регистр ВС ldax bc передать данные из ячейки по адресу ВС в аккумулятор add m сложить содержимое аккумулятора и ячейки 0010 inx bc увеличить содержимое ВС на 1 stax bc передать содержимое аккумулятора в ячейку ВС hlt завершить выполнение Исходные данные Ожидаемый результат Полученный результат 50+12 Суммы : 62,D6,FF Суммы : 62,D6,FF A0+36 Минимальная сумма = 62 Минимальная сумма = 62 3A+C5 ВС=0011, HL=0010 ВС=0011, HL=0010 Ответы на контрольные вопросы: 1. - 156 - 2. 3. 4. 5. 6. Анализ результатов, полученных в ходе лабораторной работы: Используя программу TURBO DEBUGGER, мы изучили команды программы TURBO DEBUGGER, необходимые при разработке и отладки программ на языке Ассемблера. В результате выполнения данной лабораторной работы, были получены практические знания проектирования и тестирования программ. Разработана схема работы программы, проделаны тесты, подтвердившие правильность работы программы. Освоены основы низкоуровневого языка программирования Ассемблер. Изучили назначение и взаимодействие регистров, ячеек памяти, а также псевдокодов. Научились разрабатывать и отлаживать простейшие управляющие программы с использованием псевдокодов. - 157 - Приложение А Система команд микропроцессора КР580ВМ80А В приложении 1 представлены мнемокоды команд МП КР580, указано количество машинных циклов и тактов, требуемых для выполнения отдельной команды МП, а также признаки, на которые влияет выполнение команды. Принятые сокращения: - операция пересылки - операция обмена AND - конъюнкция (И) OR - дизъюнкция (ИЛИ) XOR - сложение по модулю 2 (исключающее ИЛИ) INV - инверсия R - один из семи регистров: А, В, С, D, Е, Н, L RP - одна из регистровых пар: В, D, Н или SP RP' - одна из регистровых пар: В или D RP" - одна из регистровых пар: В, D, Н, или PSW RPH - старший регистр в регистровой паре RPL - младший регистр в регистровой паре М - память, адресуемая косвенно через HL PORT - восьмиразрядный адрес порта ввода-вывода N - один из восьми уровней прерывания: 0, 1, 2, 3, 4, 5, 6,7 D8 - восьмиразрядный непосредственный операнд D16 - шестнадцатиразрядный непосредственный операнд А16 - шестнадцатиразрядный адрес (R) - содержимое регистра (RP) - содержимое регистровой пары - 158 - M(RP) - содержимое ячейки памяти по адресу, хранящемуся в регистровой паре RP I(PORT) - содержимое порта ввода с адресом PORT O(PORT) - содержимое порта вывода с адресом PORT COND - одно из восьми условий: NZ - ненулевой результат (Z==0) Z - нулевой результат (Z=1) NC - отсутствие переноса из старшего разряда или заема в старший разряд С - наличие переноса или заема (CY=1) PO - нечетность числа единиц в результате (Р=0) PE - четность числа единиц в результате (Р==1) Р - «плюс» (S=0) М - «минус» (S=1) МЦ - количество машинных циклов МТ - количество машинных тактов Ф - формат команды в байтах - 159 - Группа команд пересылки Мнемокод Операция МЦ MT Ф Признаки 1 MOV Rl, R2 (RI)(R2) 1 5 1 Все признаки 2 XCHG (HL)(DE) 1 4 1 сохраняют свои 3 SPHL (SP)(HL) 1 5 1 значения 4 MOV R, M (R)M(HL) 2 7 1 5 MOV M, R M(HL)(R) 2 7 1 6 LDAX RP’ (A)M(RP’) 2 7 1 7 STAX RP’ M(RP’)(A) 2 7 1 8 LDA A16 (A)M(A16) 4 13 3 9 STA A16 M (A16)(A) 4 13 3 10 LHLD А16 (HL)M(A16) 6 1 3 11 SHLD A16 M(A16)(HL) 6 16 3 12 MVI R,D8 (R)D8 2 7 2 13 LXI RP,D16 (RP)D16 3 10 3 14 MVI M, D8 M (HL)D8 3 10 2 15 PUSH RP’’ M(SP-1)(RP’’H) 8 11 1 3 11 1 5 18 1 M(SP-2)(RP’’L) (SP)(SP)-2 16 POP RP’’ (RP’’L)M(SP) (RP’’H)M(SP+1) (SP)(SP)+2 17 XTHL M(SP)(H) M (SP-1)(L) 18 IN PORT (A)I(PORT) 3 10 2 19 OUT PORT O(PORT)(A) 3 10 2 - 160 - Группа команд арифметических операций Мнемокод Операция МЦ MT Ф Признаки 20 ADD R (A)(A)+(R) 1 4 1 S, Z, AC, P, CY 21 ADC R (A)(A)-(R)+CY 1 4 1 S, Z, AC, P, CY 22 SUB R (A)(A)-(R) 1 4 1 S, Z, AC, P, CY 23 SBB R (A)(A)-(R)-CY 1 4 1 S, Z, AC, P, CY 24 INR R (R)(R)+1 1 6 1 S, Z, AC, P 25 DCR R (R)(R)-1 1 5 1 S, Z, AC, P 26 DAD RP (HL)(HL)+(RP) 3 10 1 CY 27 INX RP (RP)(RP)+1 1 5 1 28 DCX RP (RP)(RP)-1 1 5 1 29 ADD M (A)(A)+M(HL) 2 7 1 S, Z, AC, P, CY 30 ADC M (A)(A)+M(HL)+ 2 7 1 S, Z, AC, P, CY +CY Мнемокод Операция МЦ MT Ф Признаки 31 SUB M (A)(A)-M(HL) 2 7 1 S, Z, AC, P, CY 32 SBB M (A)(A)-M(HL)- 2 7 1 S, Z, AC, P, CY -CY 33 INR M M(HL)M(HL)+1 3 10 1 S, Z, AC, P 34 DCR M M(HL)M(HL)-1 3 10 1 S, Z, AC, P 36 ADI D8 (A)(A)+D8 2 7 2 S, Z, AC, P, CY 36 ACI D8 (A)(A)+D8+CY 2 7 2 S,Z, AC, P, CY 87 SUl D8 (A)(A)-D8 2 7 2 S, Z,AC, P, CY 38 SBI D8 (A)(A)-D8-CY 2 7 2 S, Z, AC,P, CY 39 DAA десятичная 1 4 1 S, Z, AC, P, CY коррекция (A) - 161 - Группа команд логических операций Мнемокод 40 ANA R Операция МЦ MT 1 (A)(A) AND (R) 4 Ф Признаки 1 S, Z, P, AC*, CY==0 41 XRA R (A)(A) XOR (R) 1 4 1 S,Z,P AC=CY=0 42 ORA R (A)(A) OR (R) 1 4 1 S,Z,P AC=CY=0 43 CMP R (A)-(R) 1 4 1 S, Z, AC, P. CY 44 RLC Сдвиг влево цикл. 1 4 1 CYA (7), AC=0 45 RRC Сдвиг вправо цикл. 1 4 1 CYA (0) АС=0 46 RAL Сдвиг влево цикл 1 4 1 через A(0)CY 47 RAR AC=O Сдвиг вправо через 1 4 1 A(7)CY CYA(0), AC=O 48 CMA (A)INV (А) 1 4 1 49 ANA M (A)(A) 2 7 1 S, Z, P, AC, CY=0 AND M(HL) 50 XRA M CYA (7), (A)(A) 2 7 1 SZ, P, AC=CY=0 2 7 1' S, Z, P, XOR M(HL) 51 ORA M (A)(A)OR M(HL) AC=CY=0 52 CMP M (A)-M(HL) 2 7 1 S, Z, AC, P, CY 53 ANI D8 (A)(A) AND D8 2 7 2 S, Z, P, AC*, CY==0 54 XRI D8 (A)(A) XOR D8 2 7 2 S, Z, P, AC=CY=0 56 ORI D8 (A)(A) OR D8 2 7 2 S, Z, P. AC=CY=0 - 162 - 56 CPID8 Мнемокод (A)D8 Операция 2 7 МЦ MT 2 S, Z, AC, P, CY Ф Признаки 57 CMC (CY)INV (CY) 1 4 1 CY 58 STC (CY)1 1 4 1 CY=1 Группа команд передачи управления Мнемокод 59 PCHL Операция (PCH)(H) МЦ MT 1 5 Ф Признаки 1 Все признаки сохраняют свои (PCL)(L) значения 60 JMP A16 (PC)A16 3 10 3 61 J(COND) Если условие 6 17 3 3 11 -- 5 17 3 3 11 - 3 11 1 3 10 1 A16 выполняется, то (PC)A16, иначе (PC)(PC)+1 62 CALL A16 M(SP-1)(PCH) M(SP-2)(PCL) (SP)(SP)-2 (PC)A16 63 С (COND) A16 Если условие выполняется, то см. ком. 62, иначе (PC)(PC)+1 64 RST N M(SP)(PC) (PC)N*8 65 RET (PCL)M (SP) (PCH)M (SP+1) (SP)(SP)+2 - 163 - 66 R (COND) Если условие 3 11 1 3 1 выполняется. то см. ком. 65, иначе (РС)(РС)+1 Группа специальных команд Мнемокод 67 EI 68 DI Операция МЦ MT Разрешить 1 4 Ф Признаки 1 Все признаки прерывание сохраняют свои (триггер РПР)1 значения Запретить 1 4 1 1 7 1 прерывания (триггер РПР)0 69 HLT Останов 70 NOP Пустая операция 1 - 164 - 4 1 Приложение Б Машинные коды команд микропроцессора КР580ВМ80А Мнемокод КО ANA E A3 CPI D8 FE П ANA H A4 CPO ADDR E4 ACI D8 CE ANA L A5 CZ ADDR CC ADC A 8F ANA M A6 DAD B 09 ADC B 88 ANI D8 E6 DAD D 19 ADC C 89 CALL ADDR CD DAD H 29 ADC D 3A CC ADDR DC DAD SP 39 ADC E 8B CM ADDR FC DCR A 3D ADC H 8C CMA 2F DCR B 05 ADC L 8D CMC 3F DCR C 0D ADC M 8E CMP A BF DCR D 15 ADD A 87 CMP B B8 DCR E 1D ADD B 80 CMP C B9 DCR H 25 ADD C 81 CMP D BA DCR L 2D ADD D 82 CMP E BB DCR M 35 ADD E 83 CMP H BC DCX B 0B ADD H 84 CMP L BD DCX D 1B ADD L 85 КО DCX H 2B ADD M 86 П DCX SP 3B ADI D8 C6 CMP M BE DI F3 ANA A A7 CNC ADDR D4 EI FB ANA B A0 CNZ ADDR C4 HLT 76 ANA C A1 CP ADDR F4 IN PORT DB ANA D A2 CPE ADDR EC INR A 3C Мнемокод - 165 - INR B 04 D MOV C,H 4C INR C 0C LXI B,D16 01 MOV C,L 4D INR D 14 LXI D,D16 11 MOV C,M 4E INR E 1C LXI H,D16 21 MOV D,A 57 INR H 24 LXI SP,D16 31 MOV D,B 50 INR L 2C MOV A,A 7F MOV D,C 51 INR M 34 MOV A,B 78 MOV D,D 52 INX B 03 MOV A,C 79 MOV D,E 53 INX D 13 MOV A,D 7A MOV D,H 54 INX H 23 MOV A,E 7B MOV D,L 55 КО MOV A,H 7C MOV D,M 56 П MOV A,L 7D MOV E,A 5F Мнемокод INX SP 33 MOV A,M 7E MOV E,B 58 JC ADDR DA MOV B,A 47 MOV E,C 59 JM ADDR FA MOV B,B 40 MOV E,D 5A JMP ADDR C3 MOV B,C 41 MOV E,E 5B JNC ADDR D2 MOV B,D 42 MOV E,H 5C JNZ ADDR C2 MOV B,E 43 MOV E,L 5D JP ADDR F2 MOV B,H 44 MOV E,M 5E JPE ADDR EA MOV B,L 45 MOV H,A 67 JPO ADDR E2 MOV B,M 46 MOV H,B 60 JZ ADDR CA MOV C,A 4F MOV H,C 61 LDA ADDR 3A MOV C,B 48 MOV H,D 62 LDA B 0A MOV C,C 49 MOV H,E 63 MOV C,D 4A MOV H,H 64 MOV C,E 4B MOV H,L 65 КО MOV H,M 66 П MOV L,A 6F X LDA D 1A Мнемокод X LHL ADDR 2A 166 MOV L,B 68 ORA B B0 RPO E0 MOV L,C 69 ORA C B1 RRC 0F MOV L,D 6A ORA D B2 RST 0 C7 MOV L,E 5B ORA E B3 RST 1 CF MOV L,H 6C ORA H B4 MOV L,L 6D ORA L B5 MOV L,M 6E ORA M B6 MOV M,A 77 ORI D8 F6 MOV M,B 70 OUT PORT D3 RST 2 D7 MOV M,C 71 PCHL E9 RST 3 DF MOV M,D 72 POP B C1 RST 4 E7 MOV M,E 73 POP D D1 RST 5 EF MOV M,H 74 POP H E1 RST 6 F7 MOV M,L 75 POP PSW F1 RST 7 FF PUSH B C5 RZ PUSH D D5 SBB A 9F КО PUSH H E5 SBB B 98 П PUSH PSW F5 SBB C 99 Мнемокод Мнемокод КО П C8 MVI A,D8 3E RAL 17 SBB D 9A MVI B,D8 06 RAR 1F SBB E 9B MVI C,D8 0E RC D8 SBB H 9C MVI D,D8 16 RET C9 SBB L 9D MVI E,D8 1E RLC 07 SBB M 9E MVI H,D8 26 RM F8 SBI D8 DE MVI L,D8 2E RNC D0 SHLD ADDR 22 MVI M,D8 36 RNZ C0 SPHL F9 00 RP F0 STA B7 RPE E8 STAX B NOP ORA A 167 ADDR 32 02 STAX D 12 STC 37 SUB A 97 SUB B 90 SUB C 91 SUB D 92 SUB E 93 SUB H 94 SUB L 95 SUB M 96 SUI D8 D6 XCH EB G XRA A AF XRA B A8 XRA C A9 XRA D AA XRA E AB XRA H AC XRA L AD XRA M AE XTH E3 L XRI D8 EE 168 Приложение Б Министерство образования и науки Самарской области Государственное образовательное учреждение среднего профессионального образования «Жигулевский государственный колледж» ОТЧЕТ ПО ЛАБОРАТОРНЫМ РАБОТАМ по междисциплинарному курсу МДК02.01 «Микропроцессорные системы» профессионального модуля ПМ02. Применение микропроцессорных систем, установка и настройка периферийного оборудования для специальности СПО 230113 «Компьютерные системы и комплексы» Выполнил: студент группы Д3Т1 Иванов И.И. Проверил преподаватель Кузнецов Е.Г. 2014 -1-