Подготовка к выполнению работы. 1 Повторить по [1] структурную схему, форматы данных и команд, способы адресации, принцип работы и систему команд МП Intel 8085A (К1821ВМ85А)
1 Повторить по [1] структурную схему, форматы данных и команд, способы адресации, принцип работы и систему команд МП Intel 8085A (К1821ВМ85А).
2 Подготовить заготовку отчета (см. содержание отчета).
3 Подготовить ответы на вопросы для самоконтроля.
Вопросы для самоконтроля
1 Поясните назначение МП БИС Intel 8085A (далее по тексту МП БИС). Кратко опишите назначение узлов, входящих в МП БИС, а также управляющих сигналов.
2 Поясните процессы в МП БИС после начального запуска (сброса).
3 Поясните процессы в МП БИС при отсутствии сигналов на входе Ready.
Приборы, оборудование и документация
1 Персональный компьютер (ПК).
2 Программный пакет «Sim8085 Microprocessor Simulator».
3 Методические указания к лабораторной работе.
4 Система команд МП Intel 8085A.
Порядок выполнения работы
1 Проверка подготовки учащихся к занятию по вопросам для самоконтроля в виде фронтального или программированного опроса и инструктаж по технике безопасности.
2 Произвести внешний осмотр ПК и убедиться визуально в отсутствии каких-либо повреждений и дефектов.
3 Включить ПК.
4 Изучить принцип работы симулятора Sim8085. Для этого:
4.1 После запуска программы Sim8085 выбрать пункт меню «File®New» и на экране появится рабочая область или окно программы (рисунок 13.1).
Рисунок 13.1 – Окно программы симулятора Sim8085 Microprocessor Simulator
Данное окно предназначено для ввода программ. Одной из особенностей симулятора является то, что все цифровые данные в программе прописываются в десятичной системе счисления, а обрабатываются в шестнадцатеричной.
Для упрощения перевода из одной системы счисления в другую в симулятор вшит конвертор (рисунок 13.2), который можно вызвать пунктом меню «Tools®Base Converter».
Для преобразования числа из шестнадцатеричной системы счисления в десятичную необходимо просто вписать число, которое необходимо перевести, в поле «HEX» и десятичное число автоматически появится в поле «DEC». Например из рисунка 13.2 видно, что для ввода шестнадцатеричного числа FE(16) нам необходимо перевести его в десятичное 254(10) и записать в окно программы (рисунок 13.3).
Рисунок 13.2 – Окно конвертора
Также особенностями симулятора является то, что команды вводятся мнемоническими обозначениями, а при загрузке регистровых пар в мнемонике команды следует указывать оба регистра, например LXI HL, 200Ch. Кроме того, все символы программы следует вводить на английском языке.
На рисунке 13.3 показан ввод команд непосредственной загрузки регистра D числом FE(16) = 254(10) и регистровой пары HL числом 200С(16) = 8204(10).
Рисунок 13.3 – Ввод команды непосредственной загрузки регистра D числом FE h и регистровой пары HL числом 200C h
4.2 Для запуска и отладки пользовательских программ в симуляторе есть отладчик (рисунок 13.4), который вызывается пунктом меню «Project®Debug Mode».
Рисунок 13.4 – Окно отладчика симулятора Sim8085 Microprocessor Simulator
В данном окне можно проследить за отладкой и выполнением программы. При наличии ошибок отладчик выдает сообщения в каких строках программы допущены ошибки. Например, на рисунке 13.5 показан пример сообщения отладчика, если данные в командах MVI D, FE h и LXI HL, 200C h не переведены в десятичную систему счисления.
Рисунок 13.5 – Пример работы отладчика симулятора Sim8085 Microprocessor Simulator при наличии ошибок при вводе программы
Рассмотрим работу отладчика на примере непосредственной загрузки регистра D числом FE(16) = 254(10) и регистровой пары HL числом
200C h = 8204(10) (рисунок 13.6).
В окне отладчика мы видим, что по адресу 2000 h теперь записана команда непосредственной загрузки регистра D числом FE(16) = 254(10), а по адресу 2002 h – команда загрузки регистровой пары HL числом
200С(16) = 8204(16). Заметим, что в окне отладчика данные представлены уже в шестнадцатеричной форме, в отличие от окна ввода программы.
В стандартных настройках программы начальным адресом программы является 2000 h, но в настройках отладчика (Options®Debugger Options) его можно изменить (рисунок 13.7).
Рисунок 13.6 – Пример работы отладчика симулятора Sim8085 Microprocessor Simulator при отсутствии ошибок при вводе программы
Рисунок 13.7 – Окно настроек отладчика симулятора Sim8085 Microprocessor Simulator
4.3 Рассмотрим работу симулятора на примере тренировочной программы, которая реализует подсчет количества единиц в байте
(таблица 13.1).
Таблица 13.1 – Тренировочная программа подсчета количества единиц в байте
Адрес | Метка | Команда | Операнд | Комментарий |
MVI | D, FE h | ; Загр. исходного ; числа FE h в рег. D | ||
MVI | C, 08 h | ; Загр. в рег. C количества ; разрядов в байте | ||
MOV | A, D | ; A(D) для сдвига | ||
MVI | B, 00 h | ; Обнуление рег. B, ; счетчика единиц | ||
M2: | RAR | ; Сдвиг вправо, значение ; мл. бита в бит переноса | ||
JNC | M1 | ; Если (Tc) = 0, обойти ; инкремент счетчика единиц | ||
200B | INR | B | ; Инкремент счетчика ; единиц | |
200C | M1: | DCR | C | ; С(С) – 1, следующий ; разряд байта |
200D | JNZ | M2 | ; Переход на проверку ; след. разряда байта | |
HLT | ; Останов |
Вводим программу. Результаты ввода отражены на рисунке 13.8. Как видно, все числа предварительно переведены в десятичную систему счисления. В качестве исходного в регистр D загружаем число FE(16) = 254(10). Выполняем отладку программы (Project®Debug Mode). При наличии ошибок для выхода из режима отладчика используем пункт меню «Project®Terminate». При отсутствии ошибок выполняем программу. Для запуска программы используем пункт меню «Project®Run» (рисунок 13.9).
Рисунок 13.8 – Окно ввода симулятора с программой, реализующей подсчет количества единиц в байте
Рисунок 13.9 – Окно отладчика после выполнения тренировочной программы, реализующей подсчет количества единиц в байте
По окончании выполнения тренировочной программы симулятор выводит на экран ПК окно с результатами:
- программа выполнена до команды HLT;
- конечный результат подсчета количества единиц в байте отражен в регистре B (число FE(16) = 1111 1110(2) содержит семь единиц);
- кроме того, в окне отладчика отображаются значения всех регистров МП, указателя стека SP, программного счетчика PC, а также всех признаков результата (знака S, нулевого результата Z, вспомогательного переноса А, четности P, переноса С).
4.4 После проверки преподавателем результатов выполнения тренировочной программы свернуть окно отладчика симулятора.
5 Индивидуальное задание № 13.1. Выполнить линейную программу, составленную в лабораторной работе № 12, согласно заданному варианту индивидуального задания № 12.1. Для этого выполнить ввод, отладку и запуск программы аналогично указаниям пунктов 4.1…4.3 данных методических указаний. Результаты выполнения программы записать в таблицу 13.2 и сделать подробные выводы о состоянии всех регистров и значениях всех признаков.
Таблица 13.2 – Результаты выполнения индивидуального задания № 13.1
Номер варианта | Результат (Р = 16) | Содержимое регистров (Р = 16) | Значения признаков | |||||||||||||
(M1) | (M2) | (A) | (B) | (C) | (D) | (E) | (H) | (L) | (SP) | (PC) | S | Z | A | P | C | |
После проверки преподавателем результатов выполнения индивидуального задания свернуть окно отладчика симулятора, закрыть программу Sim8085 и завершить работу ПК.
6 Ответить на контрольные вопросы.
7 Оформить отчет и сдать зачет.
Содержание отчета
Отчет должен содержать:
1 Наименование и цель лабораторной работы.
2 Алгоритм и листинг тренировочной программы в виде таблицы (таблица 13.1).
3 Результаты выполнения индивидуального задания № 13.1 (таблица 13.2) и выводы о состоянии регистров, ячеек памяти и значениях признаков.
4 Ответы на контрольные вопросы.
Контрольные вопросы
1 Поясните, как организуется циклический вычислительный процесс в тренировочной программе (таблица 13.1)?
2 Поясните, что содержит программный счетчик РС на рисунке 13.9?
3 Почему в результате выполнения тренировочной программы
(рисунок 13.9) признак Z = 1?