- •Цифровые и микропроцессорные устройства
- •Часть 4
- •2014 Г., протокол № ____
- •Введение
- •Составление линейных и циклических программ
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •Обучение работе на симуляторе микропроцессора Sim8085 Microprocessor Simulator
- •Содержание отчета
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •2 Индивидуальное задание №1
- •3 Индивидуальное задание №2
- •4 Индивидуальное задание №3
- •Логические команды и команды сдвига Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Команды сравнения
- •Команды сдвига
- •Индивидуальное задание №1
- •Индивидуальное задание №2
- •Индивидуальное задание №3
- •Команды управления Цель работы
- •Подготовка и выполнение работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •1 Теоретическое обоснование
- •2 Индивидуальное задание №1
- •3 Индивидуальное задание №2
Методические указания
1 Теоретическое обоснование
Команды управления МП Intel 8085A включают в свой состав команды переходов, вызовов подпрограмм, возвратов в основную программу, передачи содержимого пары регистров в стек.
Существуют два типа команд переходов: безусловный и условный.
При выполнении команды безусловного перехода осуществляется передача управления по адресу, заданному во втором и третьем байтах команды, либо по адресу, заданному в регистровой паре.
Команды условного перехода выполняются в том случае, если установлен или сброшен соответствующий бит признака, в противном случае команда игнорируется и выполняется следующая за ней команда.
Существуют команды условного перехода для следующих битов регистра признаков:
бита нуля;
бита переноса;
бита знака;
бита четности.
Для каждого бита признака предусмотрены две команды перехода: переход по установленному биту признака (=1) и по сброшенному биту признака (=0).
Соответствие выполняемых команд и признаков приведены в таблице 16.1.
Таблица 16.1 – Соответствие выполняемых команд и признаков
Признак |
Ноль, Z |
Перенос, С |
Четность, Р |
Знак, S | |||||||
Команда |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 | |||
JZ |
да |
– |
– |
– |
– |
– |
– |
– | |||
JNZ |
– |
да |
– |
– |
– |
– |
– |
– | |||
JC |
– |
– |
да |
– |
– |
– |
– |
– | |||
JNC |
– |
– |
– |
да |
– |
– |
– |
– | |||
JPE |
– |
– |
– |
– |
да |
– |
– |
– | |||
JPO |
– |
– |
– |
– |
– |
да |
– |
– | |||
JM |
– |
– |
– |
– |
– |
– |
да |
| |||
JP |
– |
– |
– |
– |
– |
– |
– |
да |
Стек – это специальная область ОЗУ, используемая для сохранения и восстановления данных, а также адресов возврата при вызове подпрограммы. Нижняя граница области стека определяется 16-разрядным регистром-указателем стека SP. В микропроцессорной системе предусмотрены три типа операций со стеком:
запись в стек;
восстановление;
обмен стеком.
Запись в стек осуществляется при сохранении содержимого пар регистров (BC, DE, HL, PSW), а также при вызове подпрограммы (адрес возврата). Запись в стек производится следующим образом:
из указателя стека SP вычитается 1;
по адресу указателя стека записывается старший байт (содержимое ст. регистра или ст. байта адреса);
из указателя стека вычитается 1;
записывается младший байт.
Восстановление содержимого пар регистров и возврат осуществляется в обратном порядке:
по адресу в указателе стека считывается младший байт;
к содержимому указателя стека прибавляется 1;
считывается содержимое старшего байта;
к указателю прибавляется 1.
При вызове подпрограммы в стек записывается адрес команды, следующей за командой вызова подпрограммы. Затем, при возврате из подпрограммы, из стека в счетчик команд записывается адрес возврата. Необходимо следить за тем, чтобы непосредственно перед выполнением команды возврата из подпрограммы верхним элементом стека являлось значение адреса возврата. То есть, чтобы между командами вызова подпрограммы и возврата не было загрузки стека без восстановления.