1 Повторить по [1] команды управления в МП Intel 8085A.
2 Изучить методические указания к данной лабораторной работе и составить программы для индивидуальных заданий № 16.1, 16.2. Подготовить заготовку отчета (см. содержание отчета).
3 Подготовить ответы на вопросы для самоконтроля.
Вопросы для самоконтроля
1 Какие команды включают в свой состав команды управления?
2 Укажите, по каким признакам может выполнять условные переходы, вызовы подпрограмм и возврат МП Intel 8085A?
3 Какой командой задается нижняя граница стека в МП Intel 8085A?
4 Укажите выполняемую операцию, формат, способ адресации, число машинных циклов и поясните действия МП в каждом цикле для нижеуказанных команд:
а) JMP 201A h; | б) JNC 2010 h; | в) JPO 201F h; |
г) PUSH BC; | д) POP DE; | е) CALL 2022 h; |
ж) CNZ 2025 h; | з) RET. |
Приборы, оборудование и документация
1 Персональный компьютер (ПК).
2 Программный пакет «Sim8085 Microprocessor Simulator».
3 Методические указания к лабораторной работе.
4 Система команд МП Intel 8085A.
Порядок выполнения работы
1 Проверка подготовки учащихся к занятию по вопросам для самоконтроля в виде фронтального или программированного опроса и инструктаж по технике безопасности.
2 Произвести внешний осмотр ПК и убедиться визуально в отсутствии каких-либо повреждений и дефектов.
3 Включить ПК и запустить программу Sim8085.
4 Выполнить индивидуальные задания № 16.1, 16.2. Для этого следует выполнить ввод, отладку и выполнение составленных программ аналогично пунктам 4.1…4.3 методических указаний к лабораторной работе № 13. Методические указания и исходные данные к индивидуальным заданиям № 16.1, 16.2 приведены в методических указаниях к данной лабораторной работе.
5 После проверки преподавателем результатов выполнения индивидуальных заданий № 16.1, 16.2 свернуть окно отладчика симулятора, закрыть программу Sim8085 и завершить работу ПК.
6 Ответить на контрольные вопросы.
7 Оформить отчет и сдать зачет.
Содержание отчета
6 Наименование и цель лабораторной работы.
7 Условия в виде текста и таблиц, алгоритмы и листинги программ к индивидуальным заданиям № 16.1, 16.2 в виде таблиц.
8 Результаты выполнения индивидуальных заданий № 16.1, 16.2 в виде таблиц и выводы о содержимом регистров, ячеек памяти и значениях признаков.
9 Ручной расчет ожидаемого результата.
10 Ответить на контрольные вопросы.
Контрольные вопросы
1 Поясните, при каком условии команда JNZ 201E h передает управление команде по адресу 201E h?
2 Поясните, как восстановить из стека адрес очередной команды прерванной программы? Укажите необходимую команду и поясните действия МП.
3 Поясните, как осуществляется безусловный вызов подпрограммы? Укажите необходимую команду и поясните действия МП.
4 Поясните, почему команда блока 3 на рисунке 16.1 обнуляет старший бит заданного байта, а команда блока 6 дополняет байт до четности?
Требования к знаниям и умениям учащихся
В результате выполнения лабораторной работы учащиеся должны знать:
- систему команд МП Intel 8085A;
- особенности команд управления.
Должны уметь:
- составлять программы для простых восьмиразрядных МП на языке Ассемблер, содержащие команды управления;
- выполнять ввод, отладку и выполнение программ на симуляторе МП Sim 8085 Microprocessor Simulator.
Методические указания
Теоретическое обоснование
Команды управления МП Intel 8085A включают в свой состав команды переходов, вызовов подпрограмм, возвратов в основную программу, передачи содержимого пары регистров в стек.
Существуют два типа команд переходов: безусловный и условный.
При выполнении команды безусловного перехода осуществляется передача управления по адресу, заданному во втором и третьем байтах команды, либо по адресу, заданному в регистровой паре.
Команды условного перехода выполняются в том случае, если установлен или сброшен соответствующий бит признака, в противном случае команда игнорируется и выполняется следующая за ней команда.
Существуют команды условного перехода для следующих битов регистра признаков:
– бита нуля;
– бита переноса;
– бита знака;
– бита четности.
Для каждого бита признака предусмотрены две команды перехода: переход по установленному биту признака (=1) и по сброшенному биту признака (=0).
Соответствие выполняемых команд и признаков приведены в таблице 16.1.
Таблица 16.1 – Соответствие выполняемых команд и признаков
Признак | Ноль, Z | Перенос, С | Четность, Р | Знак, S | ||||
Команда | ||||||||
JZ | да | – | – | – | – | – | – | – |
JNZ | – | да | – | – | – | – | – | – |
JC | – | – | да | – | – | – | – | – |
JNC | – | – | – | да | – | – | – | – |
JPE | – | – | – | – | да | – | – | – |
JPO | – | – | – | – | – | да | – | – |
JM | – | – | – | – | – | – | да | |
JP | – | – | – | – | – | – | – | да |
Стек – это специальная область ОЗУ, используемая для сохранения и восстановления данных, а также адресов возврата при вызове подпрограммы. Нижняя граница области стека определяется 16-разрядным регистром-указателем стека SP. В микропроцессорной системе предусмотрены три типа операций со стеком:
- запись в стек;
- восстановление;
- обмен стеком.
Запись в стек осуществляется при сохранении содержимого пар регистров (BC, DE, HL, PSW), а также при вызове подпрограммы (адрес возврата). Запись в стек производится следующим образом:
– из указателя стека SP вычитается 1;
– по адресу указателя стека записывается старший байт (содержимое ст. регистра или ст. байта адреса);
– из указателя стека вычитается 1;
– записывается младший байт.
Восстановление содержимого пар регистров и возврат осуществляется в обратном порядке:
– по адресу в указателе стека считывается младший байт;
– к содержимому указателя стека прибавляется 1;
– считывается содержимое старшего байта;
– к указателю прибавляется 1.
При вызове подпрограммы в стек записывается адрес команды, следующей за командой вызова подпрограммы. Затем, при возврате из подпрограммы, из стека в счетчик команд записывается адрес возврата. При этом необходимо следить за тем, чтобы непосредственно перед выполнением команды возврата из подпрограммы верхним элементом стека являлось значение адреса возврата, следовательно, чтобы между командами вызова подпрограммы и возврата не было загрузки стека без восстановления.
2 Индивидуальное задание № 16. 1
Написать с адреса 2000 h на языке Ассемблер для МП Intel 8085A циклическую программу дополнения байта до четности в старшем разряде для МП Intel 8085A в соответствии с алгоритмом, который представлен на рисунке 16.1. Исходное число загрузить в регистр С.
Исходные значения байта (два значения) приведены в таблице 16.2.
Программу записать в таблицу, аналогичную по форме таблице 12.4. До выполнения программы вычислить и записать ожидаемый результат для двух заданных байтов. Расчет производить в двоичной системе счисления. Например, байт Е4(16) = 1110 0100(2) сохранит свое значение, а байт
4С(16) = 0100 1100(2) примет значение СС(16) = 1100 1100(2).
Таблица 16.2 – Исходные данные к индивидуальному заданию № 16.1
Номер варианта | Исходные данные (Р = 16) | Номер варианта | Исходные данные (Р = 16) | ||
(С)1 | (С)2 | (С)1 | (С)2 | ||
FF | 8B | ||||
С6 | 6B | ||||
CD | F4 | ||||
A2 | |||||
9A | 9B |
Результаты выполнения записать в таблицу 16.3 и сделать выводы.
Таблица 16.3 – Результаты выполнения индивидуального задания № 16.1
Номер варианта | Содержимое регистров (Р = 16) | Значения признаков | |||||||
(С)1-исх | (С)1-рез | (С)2-исх | (С)2-рез | S | Z | A | P | C | |
Рисунок 16.1 – Алгоритм программы дополнения байта до четности
Индивидуальное задание № 16. 2
Написать с адреса 2000 h на языке Ассемблер для МП Intel 8085А программу, содержащую подпрограмму подсчета контрольной суммы (КС) 10 h ячеек памяти (2030 h…203F h), заполненных константой, значение которой задано в таблице 16.4.
Таблица 16.4 – Исходные данные к индивидуальному заданию № 16.2
Номер варианта | Исходные данные (Р = 16) | Номер варианта | Исходные данные (Р = 16) |
(D) | (D) | ||
1, 3, 5, 7 | 8, 10, 12, 14 | ||
2, 4, 6 | 0A | 9, 11, 13 | 0D |
Начальный адрес массива загрузить в пару регистров HL, заданную константу – в регистр D. Заполнение массива константой оформить в виде цикла, счетчик циклов организовать на регистре Е. Значение контрольной суммы записать в регистр С. Начальный адрес подпрограммы 2020 h. Нижняя
граница стека – 2045 h. Алгоритм решения задачи и алгоритм подпрограммы представлены на рисунке 16.2.
До выполнения программы вычислить значение контрольной суммы массива ячеек памяти для заданной константы (без переноса в старший разряд).
Результаты выполнения записать в таблицу 16.5 и сделать выводы.
Таблица 16.5 – Результаты выполнения индивидуального задания № 16.2
Номер варианта | Результат (P = 16) | Содержимое регистров и ЯП (P = 16) | Значения признаков | |||||||||
(C) | (D) | (E) | (H) | (L) | (M1) -(M16) | (SP) | S | Z | A | P | C | |
После выполнения программы целиком (Project " Run), необходимо выполнить ее в пошаговом режиме по отдельным операциям (Project " Trace Into) и проследить за содержимым указателя стека SP после выполнения команд соответствующих блокам 12 и 13 основной программы (рисунок 16.2, а), а также блокам 1 и 5 подпрограммы (рисунок 16.2, б). Полученные значения записать в отчет и сделать выводы.
Рисунок 16.2 – Алгоритм решения задачи (a) и алгоритм подпрограммы (б)
ЛАБОРАТОРНАЯ РАБОТА № 17
ОБУЧЕНИЕ РАБОТЕ В ИНТЕГРИРОВАННОЙ СРЕДЕ MPLAB IDE
Цель работы
1 Изучить назначение и состав интегрированной среды (ИС) разработки MPLAB IDE 8.
2 Приобрести практические навыки и начальные умения программирования микроконтроллеров dsPIC33F с помощью ИС
MPLAB IDE 8.
3 Изучить структурную схему, назначение органов управления, ввода и элементов индикации учебного стенда НТЦ – 31.000.
4 Изучить порядок работы учебного стенда НТЦ – 31.000 и выполнить программу тестовой прошивки в ИС MPLAB IDE 8.