Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №5
Маскирование данных и организация условных переходов
Учебные цели: Исследование методов программных способов маскирования данных и
организация условных переходов в микропроцессорных системах
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления;
Для ввода данных используется порт с адресом 80, а для вывода – с адресом 90;
Практическое использование нового программного продукта.
Обеспеченность занятия:
1. Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
2. Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
3.Технические средства обучения:
- Персональный компьютер;
- Принтер.
4. Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
5. Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
6. Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
В различных ситуациях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих операций:
Логическое умножение числа в аккумуляторе и маски – очищает разряд числа (устанавливает в 0), если в соответствующем разряде маски будет записан 0, и не изменяет его, если в этом разряде маски записана 1;
Логическое сложение числа в аккумуляторе и маски – устанавливает разряд числа в 1, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0;
Логическое "исключающее ИЛИ" числа в аккумуляторе и маски – инвертирует содержание разряда числа, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0.
-
Примеры использования операций маскирования содержимого аккумулятора в случае, если маска находится в регистре, приведены в Error: Reference source not found. В этом случае команды однобайтные. Маскирование содержимого аккумулятора возможно также байтом данных (ANI D8, ORI D8 и XRI D8). В этом случае маска содержится в байте данных, а команды являются двухбайтными. При выполнении логических операций (И, ИЛИ, "исключающее ИЛИ" и НЕ) задействуются разряды Z, S, P, AC регистра признаков (С = 0). Это позволяет проверять состояние любого разряда числа и выполнять условные переходы в программах.
Примеры использования операций маскирования. Таблица 1
Мнемокод
|
Число в аккумуляторе
|
Маска в D
|
Результат в аккумуляторе
|
Комментарий
|
ANA D
|
00111010
11111111
00001111
11110000
00100011
|
10101100
00100010
11111111
11111111
00000000
|
00101000
00100010
00001111
11110000
00000000
|
Логическое умножение (И) содержимого Акк. с байтом D.
|
ORA D
|
00111010
00001111
11110000
|
10101100
00001111
00001111
|
10111110
00001111
11111111
|
Логическое сложение (ИЛИ) содержимого Акк. с байтом. D.
|
XRA D
|
00111100
00001111
11110000
|
10101100
00001111
00001111
|
10010110
00000000
11111111
|
Логическое "исключающее ИЛИ" содержимого Акк. с байтом D.
|
Организация условных переходов в МПС на МП КР580ВМ80 осуществляется с помощью регистра признаков МП БИС.
Регистр признаков имеет пять разрядов, каждый из которых устанавливается по определённому правилу в соответствии с выполнением МП БИС последней команды. Этими разрядами являются:
Разряд переноса С – СARRY. В него записывается «1», если при выполнении арифметической операции было переполнение аккумулятора, в противном случае в разряд записывается «0».
Разряд знака S – SIGN. В него записывается «1», если при выполнении арифметической или логической операции в старшем седьмом бите аккумулятора записана «1», в противном случае в разряд записывается «0».
Разряд первого результата Z – ZERO. В него записывается «1», если при выполнении арифметической или логической операции во всех разрядах аккумулятора «0», в противном случае разряд записывается «0».
Дополнительный разряд переполнения AC – AUX.CARRY. В него записывается «1», если при выполнении команд в аккумуляторе возникает единица переноса из третьего разряда числа.
Разряд четности P – PARITY. В него записывается «1», если при выполнении команды количество единиц в разрядах аккумулятора будет четным.
Во многих случаях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих логических операций.
Логического умножения числа в аккумуляторе и маки, которая очищает разряд числа, если в соответствующем разряде макси будет записан «0», и не изменяет его, если в этом разряде записана «1»;
Логического сложения чисел в аккумуляторе и маски, которое устанавливает разряд числа «1», если в таком же разряде маски будет записан «0»;
Логического исключающего или числа в аккумуляторе и маски, которое инвертирует содержимое разряда числа, если в соответствующем разряде маски записана «1», и не имеют его, если в этом разряде записано «0».
Проведение логических операций возможно также с содержимым аккумулятора и внутренними регистрами микро – ЭВМ. В этом случае команды однобайтные. При выполнении всех логических команд задействуются разряды Z,S,CY,P,AC регистра признаков (в разряд С записывается 0). Это позволяет проверить состояние любого разряда числа и выполнить условные переходы в программах.
Условные переходы организуются в программах с помощью команд условных переходов. При выполнении этих команд микро – ЭВМ проверяет состояние соответствующего разряда регистра состояния. Если при проверке состояния разреза регистра состояния условия не подтверждаются, то выполняется следующая по порядку команда программы.
Таким образом, команды условных переходов позволяют строить ветвящиеся алгоритмы и в зависимости от текущего значения результата выполнения программы переходить на различные участки программы.
Вопросы для закрепления теоретического материала к лабораторной работе
1.В чем состоит различие между командами условного перехода?
2.Во всех командах условного перехода, используемых микропроцессором, применяется прямая адресация. Что это значит?
В чем заключается различие между выполнением команд безусловного и условного переходов?
Какой из нижеперечисленных команд эквивалентна команда ПЕРЕХОД, ЕСЛИ РАВНО:
- ПЕРЕХОД, ЕСЛИ ПЕРЕНОС;
- ПЕРЕХОД, ЕСЛИ ПЛЮС;
- ПЕРЕХОД, ЕСЛИ НЕ МИНУС;
- ПЕРЕХОД, ЕСЛИ НУЛЬ?
Какой из нижеперечисленных команд эквивалентна команда ПЕРЕХОД, ЕСЛИ НЕ МИНУС:
- ПЕРЕХОД, ЕСЛИ ПЕРЕНОС;
- ПЕРЕХОД, ЕСЛИ ПЛЮС;
- ПЕРЕХОД, ЕСЛИ МИНУС;
- ПЕРЕХОД, ЕСЛИ НУЛЬ?
Задания для лабораторной работы:
Задание №1: Исследование программы 4.1
Выяснить, какая информация появляется в разряде Z регистра признаков, после выполнения программы.
Задание №2:
Видоизменить программу П4.1 так, чтобы микропроцессорная система реагировала на «0» в третьем разряде при записанных единицах во всех остальных разрядах.
Задание №3: исследование программы 4.2
1.Загрузить и исследовать программу П4.2
Инструкция по выполнению лабораторной работы
При составление программ цифровых систем управления возникает необходимость формирования условных переходов в зависимости от значения одного или нескольких бит результата операции. Микропроцессор может выполнять только операции в целом над однобайтовыми числами, поэтому для анализа состояния отдельных бит применяют специальные приемы программирования. С помощью логических операций устанавливают состояние всех бит, кроме требующих анализа, в заранее известное состояние. Так, если требуется анализ старшего бита числа, возможно использование операции логического И этого числа с числом 80h:
* * * * * * * * – анализируемое число
1 0 0 0 0 0 0 0 – второй операнд (маска).
В этом случае результат логической операции даст результат с известными битами во всех разрядах числа, равными логическому 0, кроме D7: * 0 0 0 0 0 0 0. Дальнейший анализ на нулевое значение результата дает возможность ответить на вопрос, чему равен старший бит анализируемого числа. При равенстве результата нулю бит D7 = 0. Аналогично, изменяя маску логической операции, можно проанализировать любой бит (а также несколько бит), например маской 00010000 анализируется состояние бита D4 числа, маской 00000001 – состояние бита D0 и т.д.
Задание №1:
1.Загрузить программу П4.1
2.Осуществить пуск программы. Убедиться, что при её выполнении микро – ЭВМ реагирует лишь на те числа во входном устройстве, которые содержат «1» в пятом разряде. Выяснить, какая информация появляется в разряде Z регистра признаков, после выполнения программы.
Программа П4.1
wait:in 80 получить число из порта 80
ani 20 проверить состояние пятого разряда числа
jz wait если 5 разряд 0, то идти на wait
Задание №2:
1.Видоизменить программу П5.1 так, чтобы микро – ЭВМ реагировала на «0» в третьем разряде при записанных единицах во всех остальных разрядах.
Задание №3:
1.Загрузить программу П4.2
2.Осуществить пуск программы. Убедиться, что при наличии «1» лишь во втором разряде числа входного устройства светодиоды выходного регистра включены в микро – ЭВМ работает в цикле WAIT2 ожидания появления единицы в пятом разряде числа. Записать «0» во второй разряд входного устройства и убедиться, что светодиоды выходного устройства отключаются и микро – ЭВМ находится при выполнении цикла WAIT1 программы; установить «1» одновременно во втором и пятом разряде числа во входном устройстве и проверить, что микро – ЭВМ последовательно выполняет оба цикла программы.
Программа П4.2
wait1:in 80 получить число из порта 80
ani 04 включен ли 2 разряд?
jz wait 1 если нет, идти на wait1
mvi a,11 иначе зачет светодиоды выходного
out 90 регистра 90
wait2:in 80 получить число из порта 80
ani 20 включен ли 5 разряд?
jz wait2 если нет, идти на wait2, иначе
mvi a,0 погасить светодиоды выходного
out 90 регистра 90
jmp wait1 повторить программу
Методика анализа результатов, полученных по лабораторной работе
Команда условного перехода проверяет состояние соответствующего разряда регистра признаков (F). Если при проверке состояния разряда регистра признаков условие не подтверждается, то выполняется следующая по порядку команда программы, иначе происходит переход.
Программа 4.1 осуществляет ожидание простого (двоичного) события и при возникновении этого события формирует простое (двоичное) управление. В программе каждый бит порта с адресом 03h ассоциируется с некоторым событием от внешнего устройства, например, соответствует состоянию некоторого концевого переключателя технологического процесса. Таким образом, в технологическом процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в технологическом процессе задействованы 8 исполнительных механизмов с номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное состояние (0 или 1).
Порядок выполнения отчета по лабораторной работе
1.Наименование и цель работы
2.Понятие и назначения использования маскирования данных при программировании команд управления
3..Исследуемые программы.
4.Результаты исследования.
5.Ответы на контрольные вопросы
6.Анализ результатов полученных в ходе лабораторной работы
Образец отчета по лабораторной работе:
ЛАБОРАТОРНАЯ РАБОТА №5
Маскирование данных и организация условных переходов
Учебные цели: Исследование методов программных способов маскирования данных и
организация условных переходов в микропроцессорных системах
Учебные задачи:
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Понятие и назначения использования маскирования данных при программировании команд управления
В различных ситуациях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих операций:
Логическое умножение числа в аккумуляторе и маски – очищает разряд числа (устанавливает в 0), если в соответствующем разряде маски будет записан 0, и не изменяет его, если в этом разряде маски записана 1;
Логическое сложение числа в аккумуляторе и маски – устанавливает разряд числа в 1, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0;
Логическое "исключающее ИЛИ" числа в аккумуляторе и маски – инвертирует содержание разряда числа, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0.
Организация условных переходов в МПС на МП КР580ВМ80 осуществляется с помощью регистра признаков МП БИС.
Регистр признаков имеет пять разрядов, каждый из которых устанавливается по определённому правилу в соответствии с выполнением МП БИС последней команды. Этими разрядами являются:
Разряд переноса С – СARRY. В него записывается «1», если при выполнении арифметической операции было переполнение аккумулятора, в противном случае в разряд записывается «0».
Разряд знака S – SIGN. В него записывается «1», если при выполнении арифметической или логической операции в старшем седьмом бите аккумулятора записана «1», в противном случае в разряд записывается «0».
Разряд первого результата Z – ZERO. В него записывается «1», если при выполнении арифметической или логической операции во всех разрядах аккумулятора «0», в противном случае разряд записывается «0».
Дополнительный разряд переполнения AC – AUX.CARRY. В него записывается «1», если при выполнении команд в аккумуляторе возникает единица переноса из третьего разряда числа.
Разряд четности P – PARITY. В него записывается «1», если при выполнении команды количество единиц в разрядах аккумулятора будет четным.
Программа П4.1.
WAIT: IN 80 // Получит число из порта 80
ANI 20 // проверить состояние пятого разряда
JZ WAIT // если 5-й разряд равен 0, то переход по метке WAIT.
HLT // Останов.
При вводе 20h программа проходит одну итерацию.
При вводе любого числа, в 5-м разряде которого есть 1, то результат тот же.
При вводе любого другого числа программа зацикливается.
Выполнение лабораторной работы
Программа П4.2.
Wait1: IN 80 // Получить данные из порта 80
ANI 04 // проверить выставлен ли разряд 2
JZ Wait1 // если нет, то перейти на Wait1
MVI A,11h // записываем в A число 11h
OUT 90 // Выводим это число в порт 90
Wait2: IN 80 // получить данные из порта 80
ANI 20 // проверить выставлен ли 5-й разряд
JZ Wait2 // если разряд не выставлен, то переходим на Wait2
MVI A,00h // иначе записываем в A ноль и
OUT 90 // выводим данные в порт 90
JMP Wait1 // Переход в начало программы.
При вводе числа 04h в порту вывода получается число 11h, и программа зацикливается.
При вводе числа 24h в порту вывода получается число 00h.
При вводе числа 20h в порту должно быть число 00h, но программа зацикливается на проверке 2-го разряда.
При вводе чисел, не содержащих единиц в 2-м и 5-м разрядах программа зацикливается.
WAIT: IN 80 // Получаем данные из порта 80
XRI 08h // проверяем есть ли ноль в 3-м разряде
JNZ WAIT // если нет, то переходим на Wait
HLT // если же в 3-м разряде ноль, то Останов.
Ответы на контрольные вопросы:
1.
2.
3.
4.
Анализ результатов, полученных в ходе лабораторной работы:
Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия.
Программа Error: Reference source not found осуществляет ожидание простого (двоичного) события и при возникновении этого события формирует простое (двоичное) управление. В программе каждый бит порта с адресом 03h ассоциируется с некоторым событием от внешнего устройства, например, соответствует состоянию некоторого концевого переключателя технологического процесса. Таким образом, в технологическом процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в технологическом процессе задействованы 8 исполнительных механизмов с номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное состояние (0 или 1). Каждому механизму соответствует свой бит порта с адресом 04h. Процессор принимает данные из портов 03h, 04h и выдает данные в порт 04h. Программа ожидает включение концевого переключателя с номером 5 (остальные переключатели могут при этом иметь произвольные состояния). В случае достоверности данного события программа включает механизм с номером 4, в противном случае она отключает этот механизм, если он не отключен. При этом программа не должна изменять состояния остальных механизмов.
В программе 4.2 при наличии «1» лишь во втором разряде числа входного устройства светодиоды выходного регистра включены в микро – ЭВМ работает в цикле WAIT2 ожидания появления единицы в пятом разряде числа. Записать «0» во второй разряд входного устройства и убедиться, что светодиоды выходного устройства отключаются и микро – ЭВМ находится при выполнении цикла WAIT1 программы; установить «1» одновременно во втором и пятом разряде числа во входном устройстве и проверить, что микро – ЭВМ последовательно выполняет оба цикла программы.
РАЗДЕЛ 1
|