Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
2021-10-05 | 122 |
5.00
из
|
Заказать работу |
|
|
Цель работы: исследование методов подключения и организации обмена с простейшими устройствами ввода-вывода. Изучение программных способов маскирования данных и организации условных переходов в микро-ЭВМ.
Краткие сведения из теории
К командам ввода- вывода МП БИС КР580ИК80 относятся команды
IN<A1> и OUT<A1>.
При выполнении команды IN<A1> микро-ЭВМ считывает число из входного устройства с адресом (А1)(А1) и записывает его в аккумулятор.
При выполнении команды OUT<A1> МП БИС записывает число из аккумулятора в выходное устройство с адресом (А1)(А1).
Так как адрес устройства указывается в одном байте, то с помощью этих команд микро-ЭВМ может обмениваться информацией не более чем с 256 внешними устройствами.
В качестве простейших устройств ввода-вывода могут использоваться 8-разрядные регистры (например, многорежимный буферный регистр (МБР) К589ИР12).
Обмен данными между микро-ЭВМ и внешними устройствами может вызываться как в определенных местах в программе, так и по сигналам прерывания. В последнем случае подпрограмма обмена данными с внешним устройством будет вызываться за счет перевода микро-ЭВМ в режим обслуживания прерывания.
Схемы подключения МБР К589ИР12 при использовании его в качестве устройства ввода-вывода и организации обмена информацией как по сигналам, формируемым микро-ЭВМ, так и по сигналам запросов прерывания приведены на рис. 3.5, а-г.
На рис.3.5 а,б показаны схемы подключения МБР при работе его в качестве устройства ввода-вывода и осуществлении обмена информацией с ним по сигналам, формируемым микро-ЭВМ.
На рис.3.5 в,г приведены схемы подключения по сигналам прерывания. В этом случае внешнее устройство записывает данные во входное устройство (рис.3.5 в) по сигналу, подаваемому на вход STB многорежимного буферного регистра. Этим же сигналом формируется сигнал прерывания на выходе схемы, подаваемый на вход прерывания МП БИС. Вызванная подпрограмма обслуживания прерывания заставляет микро-ЭВМ обратиться ко входному устройству для получения данных.
|
Схема подключения МБР и микро-ЭВМ для вывода данных во внешнее устройство приведена на рис.3.5, г.
При поступлении сигнала запроса от внешнего устройства (ВУ) на вход STB многорежимный буферный регистр вырабатывает сигнал низкого уровня на выходе , который может подаваться на вход прерывания МП БИС. Подпрограмма обслуживания этого прерывания записывает данные в МБР по сигналам выборки. Этими же сигналами сбрасывается внутренний триггер запроса прерывания МБР, что приводит к появлению сигнала единичного уровня на выходе , который сообщает внешнему устройству о приеме данных от микро-ЭВМ в МБР.
В качестве устройства ввода-вывода могут применяться и более сложные схемы, например программируемое устройство ввода-вывода информации в параллельном коде (КР580ИК55).
Схема подключения в микро-ЭВМ входного устройства, выполненного на базе МБР К589ИР12 (D1) с переключателями, приведена на рис.3.6,а. При замкнутом переключателе на вход регистра подается “0”, а при разомкнутом — “1”. Переключатели используются для имитации передачи данных от внешнего устройства. К регистру можно подключить светодиоды (HL1 - HL8) для индикации чисел, записанных в нем.
На рис. 3.6,б приведена схема подключения выходного устройства микро-ЭВМ, построенная на базе схемы К589ИР12 (D1). Светодиоды HL1 - HL8 указывают число, записанное в выходном устройстве.
Простейшая программа (программа П.6) перезаписи числа со входного устройства (с адресом 05) в выходное устройство (с адресом 05) имеет следующий вид:
ПРОГРАММА П.6
Адрес | Машинный код | Метка | Мнемокод | Комментарий |
0800 | DB 05 | CNT | IN05 | ;записать число из входного ;устройства с адресом ;05Н в аккумулятор |
0802 | D3 05 | OUT 05 | ;записать число из аккумулятора ;в выходное устройство ;с адресом 05Н | |
0804 | C3 0008 | JMP CNT | ;идти на CNT |
|
Организация условных переходов в микро-ЭВМ осуществляется с помощью регистра признаков МП БИС.
Регистр признаков имеет пять разрядов, каждый из которых устанавливается по определенному правилу в соответствии с выполнением МП БИС последней команды.
Этими разрядами являются:
1. Разряд переполнения С-CARRY. В него записывается 1, если при выполнении арифметической команды или команды сдвига было переполнение аккумулятора, в противном случае в разряд записывается 0.
2. Разряд знака S-SIGN. В него записывается 1, если при выполнении арифметической или логической команды в старшем, седьмом, разряде аккумулятора записана 1, в противном случае в разряд записывается 0.
3. Разряд нулевого результата Z-ZERO. В него записывается 1, если при выполнении арифметической или логической команды во всех разрядах числа в аккумуляторе имеются 0, в противном случае в разряд записывается 0.
4. Дополнительный разряд переполнения АС-AUX. CARRY. В него записывается 1, если при выполнении команд в аккумуляторе возникает единица переноса из третьего разряда числа.
5. Разряд четности P-PARITY. В него записывается 1, если при выполнении команды количество единиц в разрядах аккумулятора будет четным.
Во многих случаях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих операций:
1) логического умножения числа в аккумуляторе и маски, которое очищает разряд числа, если в соответствующем разряде маски будет записан 0, и не изменит его, если в разряде маски записана 1;
2) логического сложения числа в аккумуляторе и маски, которое устанавливает разряд числа в 1, если в таком же разряде маски будет записана 1, и не изменит его, если в этом разряде записан 0;
3) логического “исключающего ИЛИ” числа в аккумуляторе и маски, которое инвертирует содержание разряда числа, если в соответствующем разряде маски записана 1, и не изменит его, если в этом разряде записан 0.
Примеры использования этих команд приведены в табл.3.2.
Таблица 3.2.
Мнемо-код | Машин-ный код | Число в аккумуляторе | Маска | Комментарий | Результат в аккумуляторе |
ANI<D1> | E6<D1> | 00111010 11111111 00000000 10101010 11110000 00001111 00100010 | 10101100 00100010 00100010 00100010 11111111 11111111 00000000 | Логическое умножение содержимого аккумулятор с байтом D1 | 00101000 00100010 00000000 00100010 11110000 00001111 00000000 |
ORI<D1> | F6<D1> | 00111010 00001111 11110000 | 10101100 00001111 00001111 | Логическое сложение содержимого аккумулятора с байтом D1 | 10111110 00001111 11111111 |
XRI<D1> | EF<D1> | 00111010 00001111 11110000 | 10101100 00001111 00001111 | Логическое “исключающее ИЛИ” содержимого аккумулятора с байтом D1 | 10010110 00000000 11111111 |
Проведение логических операций возможно также с содержимым аккумулятора и внутренними регистрами МП БИС. В этом случае команды — однобайтные. При выполнении всех логических команд задействуются разряды Z, S, P, AC регистра признаков (в разряд С записывается 0). Это позволяет проверять состояние любого разряда числа и выполнять условные переходы в программах. Программа маскирования отдельных разрядов числа (программа П.7), записанного во входном устройстве, приведена ниже. Программа помещает результат маскирования в выходное устройство.
|
ПРОГРАММА П.7
Адрес | Код | Метка | Мнемокод | Комментарий |
0800 | DB 05 | CNT | IN 05 | ;получить число из ;входного устройства |
0802 | Е6 20 | ANI 20 | ;выполнить логическую ;операцию | |
0804 | D3 05 | OUT 05 | ;записать результат в ;выходное устройство | |
0807 | C3 0008 | JMP CNT | ;продолжать |
Условные переходы организуются в программах с помощью команд условных переходов.
При выполнении этих команд МП БИС проверяет состояние соответствующего разряда регистра состояния. Если при проверке состояния разряда регистра состояния условие не подтверждается, то выполняется следующая по порядку команда программы. Все команды условных переходов — трехбайтные: первый байт не содержит код команды, второй и третий байты — адрес передач управления. Таким образом, команды условных переходов позволяют строить ветвящиеся алгоритмы и в зависимости от текущего значения результата выполнения программы переходить на различные участки программы.
Ниже приведена программа (программа П.8) для определения 1 в пятом разряде числа, записанного во входном устройстве. Программа использует маскирование числа и условный переход.
|
ПРОГРАММА П.8
Адрес | Код | Метка | Мнемокод | Комментарий |
0800 | DB 05 | WAIT | IN 05 | ;получить число из входного ;устройства |
0802 | E6 20 | ANI 20 | ;проверить состояние пятого ;разряда числа | |
0804 | CA 0008 | IZ WAIT | ;идти на WAIT, если в пятом ;разряде был 0 (Z=0) |
В представленных ранее программах имел место лишь один цикл, в котором работала микро-ЭВМ. Программа ожидания появления 1 во втором и пятом разрядах числа, записанного во входном устройстве (программаП.9), содержит два цикла.
ПРОГРАММА П.9
Адрес | Код | Метка | Мнемокод | Комментарий |
0800 | DB 05 | WAIT 1 | IN 05 | ;получить число из входного ;устройства |
0802 | E6 04 | ANI 00000100 | ;выключен ли второй ;переключатель? | |
0804 | CA 0008 | JZ WAIT 1 | ;если нет, продолжить WAIT 1 | |
0807 | 3E FF | MVI A, FF | ;если да, зажечь светодиоды | |
Адрес | Код | Метка | Мнемокод | Комментарий |
0809 | D3 05 | OUT 05 | ;выходного регистра | |
080B | DB 05 | WAIT 2 | IN 05 | ;получить число из ;входного устройства |
080D | E6 20 | ANI 00100000 | ;выключен ли пятый ;переключатель? | |
080F | CA 0B08 | JZ WAIT 2 | ;если нет, продолжать ;WAIT 2 | |
0812 | 3E 00 | MVI A, 00 | ;если да, погасить ;светодиоды | |
0814 | D3 05 | OUT 05 | ;выходного регистра | |
0816 | C3 0008 | JMP WAIT 1 | ;повторить программу |
Задания для домашней подготовки
1. Ознакомьтесь со схемой многорежимного буферного регистра и схемой программируемого устройства ввода-вывода информации в параллельном коде КР580ИК55.
2. Изучите способы организации обмена информацией между микро-ЭВМ и внешними устройствами. Рассмотрите схемы подключения устройств ввода-вывода данных при различных способах обмена.
3. Ознакомьтесь с командами ввода-вывода МП БИС КР580ИК80, а также временными диаграммами их выполнения.
4. Изобразите схемы подключения к микро-ЭВМ устройств ввода-вывода, используемых при проведении лабораторной работы.
5. Изучите группу логических команд и команд условной передачи управления.
6. Ознакомьтесь с разрядами регистра признаков МП БИС и правилами записи в них 1.
7. Ознакомьтесь с программами П.6, П.7, П.8, П.9.
8. Самостоятельно разработайте программы:
а) включение светодиодов выходного устройства, если число, записанное во входном устройстве, больше 3;
б) включение светодиодов выходного устройства, если число, записанное во входном устройстве, больше 3, но меньше 8.
9. Видоизмените программу П.8 так, чтобы микро-ЭВМ реагировала на 0 в патом разделе при записанных 1 во всех остальных разрядах.
Задания к лабораторной работе
Задание 1. Исследовать программу П.6.
Порядок выполнения задания:
1. Ввести в микро-ЭВМ программу П.6. Осуществить пуск программы.
2. Убедиться, что при выполнении программы микро-ЭВМ постоянно переписывает данные со входного устройства в выходное. Для этого с помощью переключателей входного устройства изменить числа, записанные в нем. Информация о числах в устройствах ввода-вывода может отображаться светодиодами.
|
Задание 2. Исследовать программу П.7.
Порядок выполнения задания:
1. Ввести в микро-ЭВМ программу П.7. Осуществить пуск программы и исследовать результат ее выполнения по числу, записанному в выходное устройство.
2. Заменяя в программе П.7 двухбайтную команду ANI <D> на однобайтные ANA A, XRA A, ORA A, исследовать результат их выполнения по числу, записанному в выходном устройстве.
Задание 3. Исследовать программу П.8.
Порядок выполнения задания:
1. Ввести в микро-ЭВМ программу П.8. Осуществить пуск программы и убедиться, что при ее выполнении микро-ЭВМ реагирует лишь на те числа во входном устройстве, которые содержат 1 в пятом разряде. После окончания выполнения программы (выполнения в программе команды RST1) в разряде Z регистра состояния записана 1.
2. Исследовать видоизмененную программу П.8, позволяющую микро-ЭВМ реагировать на 0 в пятом разряде при записанных 1 во всех остальных разрядах.
Задание 4. Исследовать программу П.9.
Порядок выполнения программы:
1. Ввести в микро-ЭВМ программу П.9. Осуществить пуск программы и убедиться, что при наличии 1 лишь во втором разряде числа входного регистра светодиоды выходного регистра включены и микро-ЭВМ работает в цикле WAIT 2 ожидания появления единицы в пятом разряде числа.
2. Записать 0 во второй разряд входного устройства при включенных светодиодах входного устройства при включенных светодиодах входного устройства. Записать 1 в пятый разряд входного устройства и убедиться, что светодиоды выходного устройства выключаются, и микро-ЭВМ находится при выполнении цикла WAIT 1 программы.
3. Установить 1 одновременно во втором и пятом разрядах числа во входном устройстве и проверить, что микро-ЭВМ последовательно выполняет оба цикла (WAIT 1 и WAIT 2) программы.
Задание 5. Исследовать программы, разработанные в п.8 задания для домашней подготовки.
Примечание: Программы, разработанные при выполнении п.8 задания для домашней подготовки, исследуйте самостоятельно.
Работа на учебной ЭВМ
В учебной микро-ЭВМ входные и выходные устройства выполнены по схемам, приведенным на рис.П.6, П.7. Адрес входного устройства — 05, а выходного — 05. Таким образом, все программы, приведенные в лабораторной работе, задания и порядок их выполнения могут быть без каких-либо изменений выполнены на учебной микро-ЭВМ.
Содержание отчета
Отчет должен содержать:
1. Схемы подключения внешних устройств к микро-ЭВМ.
2. Временные диаграммы процесса выполнения микро-ЭВМ команд ввода-вывода данных с внешних устройств.
3. Самостоятельно разработанные и исследованные в процессе выполнения лабораторной работы программы, указанные в п.8 задания для домашней подготовки.
4. Полный перечень команд передачи управления по условию для МП БИС КР580ИК80.
5. Полный перечень команд логических операций для МП БИС КР580ИК80.
Задание для самопроверки
1. С помощью каких команд микро-ЭВМ может осуществлять ввод-вывод информации?
2. За сколько машинных тактов осуществляется ввод-вывод данных по командам IN <A1>, OUT <A1>?
3. Приведите схемы подключения дешифраторов адреса и внешних устройств при организации обмена информацией с внешними устройствами с помощью различных команд.
4. Укажите достоинства и недостатки различных методов адресации к внешним устройствам.
5. При выполнении каких команд, приведенных в программе П.7, задействуются разряды регистра состояния МП БИС?
6. По каким условиям записывается 1 в каждый из разрядов регистра состояния МП БИС?
7. Перечислите виды логических операций, выполняемые МП БИС.
8. Перечислите режимы работы программируемого устройства ввода-вывода информации в параллельном коде КР580ИК55.
9. Укажите различия в управляющих сигналах схем К589ИР12 и КР580ИК55 при использовании их в режиме ввода-вывода информации в микро-ЭВМ.
10. Приведите различные варианты подключения внешних устройств к микро-ЭВМ с помощью схем К589ИР12 и КР580ИК55.
11. Рассмотрите возможные способы организации обмена информацией между двумя микро-ЭВМ в параллельном коде с помощью схемы КР580ИК55.
ЛАБОРАТОРНАЯ РАБОТА 4
Подпрограмма и стек
Цель работы: исследование особенностей записи и обращения к подпрограммам; изучение методов исследования стека при создании программ.
Краткие сведения из теории
Память микро-ЭВМ, построенной на основе МПК серии К580, может иметь не более 65 536 однобайтных ячеек. Учитывая ограниченные возможности памяти при разработке программ, нужно стараться сделать их как можно короче. С этой целью часть программы, которая неоднократно повторяется, или программа, которая используется, могут быть оформлены в виде подпрограмм - последовательностей команд, выполнение которых может быть вызвано из любого места программы любое количество раз.
Процесc передачи управления к подпрограмме называется ее вызовом. Данные и адреса, требуемые для работы подпрограммы, называются входными параметрами. Результаты работы подпрограммы, передаваемые по окончании ее работы в основную программу, называются выходными параметрами.
Для вызова подпрограмм и возврата из них используются команды:
CALL<A2><A1> и RET.
Команда CALL<A2><A1> загружает в программный счетчик МП БИС содержимое байтов <A2> <A1>, записанных в последующих двух адресах памяти после адреса, где записан код команды CALL (CD). Содержимое байта <A2> записывается в младший байт PCL программного счетчика, а третий байт <A1> команды - в старший байт PCH программного счетчика, при этом МП БИС автоматически сохраняет в стеке адрес основной программы, к которому она будет обращаться после выполнения подпрограммы.
Стек - специально организованная область ОЗУ, задействованная в микро-ЭВМ для временного хранения данных или адресов. Число, записанное в стек последним, извлекается из него первым. Команда RET (C9) помещает в программный счетчик последнее записанное на данный момент в стеке число. После этого выполнение программы будет осуществляться с этого адреса. Любая подпрограмма должна заканчиваться командой RET. Автоматическое сохранение и восстановление адреса основной программы при выполнении подпрограмм позволяет сделать подпрограммы вложенными, т. е. осуществить вызов одной подпрограммы из другой. Уровень вложенности для данной микро-ЭВМ определяется лишь размером стека.
Существуют также команды условного вызова подпрограммы и возврата из них. Они позволяют вызвать подпрограмму и возвратиться из нее по определенному состоянию заданных разрядов регистра признаков (аналогично командам условных переходов). Все команды условного вызова подпрограммы - трехбайтные, во втором и третьем байтах сообщается начальный адрес подпрограммы. Команды вызова подпрограмм и возврата из них используют стек и внутренний регистр МП БИС SP (STACK POINTER) для адресации к стеку.
Помимо команд вызова подпрограмм и возврата из них со стеком можно обмениваться информацией с помощью команд PUSH<R> (записать в стек содержимого обозначенного регистра МП БИС). Эти команды являются однобайтными, и в них содержится указание пары регистров МП БИС.
При записи в стек содержимого пары регистров или программного счетчика по адресу SP-1 записывается содержимое старшего регистра из указанной пары или старший байт PCH программного счетчика, а по адресу SP-2 в стек записывается содержимое младшего регистра из указанной пары младшего байта PCL программного счетчика.
При записи из стека данных в пару регистров или программный счетчик в младший регистр пары или PCL записывается число из адреса, указанного в указателе стека SP, а в старший регистр пары или PCH - число, записанное по адресу SP+1. В результате выполнения команды содержимое указателя стека SP увеличивается на 2. Данные в памяти не изменяются, а лишь происходит их чтение и увеличение содержимого SP.
Таким образом, при записи данных адреса стека растут от больших к меньшим, а указатель стека SP всегда содержит последний адрес стека, в котором записано число.
При разработке программ необходимо первоначально назначать область стека, записывая в SP адрес с помощью команды LXI SP<A2><A1> или команды SPHL.
Все операции со стеком должны быть сбалансированы, т. е. каждая подпрограмма должна содержать равное количество команд PUSH<R> и POP<R> и оканчиваться командой RET. В противном случае выполнение команды RET в конце подпрограммы приведет к записи в программный счетчик случайного числа из стека. Адрес возврата в основную программу будет потерян, и нарушиться последовательность ее выполнения.
Как правило, в начале каждой программы сохраняют в стеке содержимое всех задействованных при ее выполнении регистров с помощью команд PUSH<R>. В конце подпрограммы восстановление содержимого регистров осуществляется с помощью команд POP<R> и в обратной последовательности по отношению к их записи в стек.
Обычно в виде подпрограмм записываются многократно используемые фрагменты программ, например подпрограмма выдачи звукового сигнала, подпрограмма обслуживания клавиатуры и дисплея и т. д.
Алгоритм работы простой подпрограммы временной задержки приведен на рис.4.7.
Общее время задержки вычисляется по формуле:
TD = t1 + (t2 + t3 + t4) N1 + t5,
где: N1 - число, первоначально записанное в счетчике.
В качестве счетчика выбран регистр B, в который записывается число N1 из регистра C.
Команда NOP нужна для увеличения времени выполнения цикла, а следовательно, и общей задержки. Вместо команды NOP может быть записана любая последовательность команд, выполнение которых не изменяет содержимого микропроцессора.
Время записи числа N1 в регистр B и возврата из подпрограммы t1+t5 фиксировано и в цикл не входит. Минимальная задержка для приведенной подпрограммы определяется при N1 = 01 и равна:
TD MIN = t1 + t2 + t3 + t4 + t5.
Максимальная задержка имеет место при N1 = 00 и вычисляется по формуле:
TD MAX = t1 + (t2 + t3 + t4) 256 + t5.
Подпрограмма DLY (подпрограмма П.10) представляет подпрограмму временной задержки, записанную в соответствии с алгоритмом, представленным на рис. П.7.
Подпрограмма П.10
Адрес | Машинный код | Метка | Мнемокод | Комментарий |
0900 | 41 | MOV B,C | ;записать число из регистра ;С в регистр В | |
0901 | 00 | DLY | NOP | ;нет операции |
0902 | 05 | DCR B | ;уменьшить число в регистре В на 1 | |
0903 | С2 0109 | JNZ DLY | ;если число, записанное в регистре ;В, не равно нулю, то идти на DLY | |
0906 | С9 | RET |
Подпрограмма П.11
Адрес | Машинный код | Метка | Мнемокод | Комментарий |
0A00 | AF | BPP | XRA A | ;очистить аккумулятор |
0A01 | D3 04 | OUT BP | ;записать 00 в выходное устройство | |
0A03 | CD 0009 | CALL DLY | ;вызвать подпрограмму задержки | |
0A06 | 2F | CMA | ;записать код FF в аккумулятор | |
0A07 | D3 04 | OUT BP | ;записать код FF в выходное;устройство | |
0A09 | CD 0009 | CALL DLY | ;вызвать подпрограмму задержки | |
0A0C | C9 | RET | ||
Рассмотрим пример использования подпрограммы временной задержки при организации звуковых сигналов в микро-ЭВМ. В микро-ЭВМ звуковые сигналы могут формироваться простейшей схемой (рис. 4.8), на вход которой со звуковой частотой записываются по очереди "0" и "1". Будем считать, что устройство формирования звуковых сигналов имеет адрес 04. Схема алгоритма работы подпрограммы генерации звуковых колебаний (подпрограмма П.11) приведена на рис. 4.9.
Программа MAIN (программа П.12) представляет программу генерации сигналов с частотой, задаваемой числом с входного регистра.
Программа П.12
Адрес | Машинный код | Метка | Мнемокод | Комментарий |
0800 | DB 05 | MAIN | IN 05 | ;записать число из входного регистра ;в аккумулятор |
0802 | 4F | MOV C, A | ;записать число в регистр C | |
0803 | CD 000A | CALL BPP | ;вызвать подпрограмму ВВР | |
0806 | C3 0008 | JMP MAIN | ;продолжать | |
Подпрограмма П.13
Адрес | Машинный код | Метка | Мнемокод | Комментарий |
0429 | C5 | DELA | PUSH B | ;сохранить содержимое ;регистров В и С в стеке |
042A | 01 0100 | LXI B, 0001 | ;установить | |
042D | C3 3104 | JMP DEL1 | ;длительность 1мс | |
0430 | C5 | DELB | PUSH B | ;сохранить содержимое ;регистров В и С в стеке |
0431 | F5 | DEL1 | PUSH PSW | ;сохранить содержимое PSW в стеке |
0432 | AF | XRA A | ;очистить аккумулятор | |
0433 | D5 | PUSH D | ;сохранить содержимое ;регистров D и E в стеке | |
0434 | 16 67 | DEL2 | MVI D,TIME | ;загрузить счетчик 1мс задержки |
0436 | 15 | DEL3 | DCR D | ;уменьшить содержимое счетчика на 1 |
0437 | C2 3604 | JNZ DEL3 | ;если не ноль, продолжать | |
04A | 0B | DCX B | ;уменьшить содержимое ;счетчика длительности на 1 | |
043B | B8 | CMP B | ; | |
043C | C2 3404 | JNZ DEL2 | ; | |
043F | B9 | CMP C | ; | |
0440 | C2 3404 | JNZ DEL2 | ;если не 0, продолжать | |
0443 | D1 | POP D | ;восстановить содержимое ;регистров D,E | |
0444 | F1 | POP PSW | ;то же, PSW | |
0445 | C1 | POP B | ;то же, B,C | |
0446 | C9 | RET |
При использовании подпрограмм за счет изменения входных параметров можно влиять на конечный результат выполнения подпрограмм.
Рассмотрим это на примере подпрограммы регулируемой временной задержки (подпрограмма П.13).
Программа состоит из двух подпрограмм:
DELB (адрес 0430) и DELA (адрес 0429).
Подпрограмма DELB осуществляет регулируемую временную задержку, и входным параметром ее является двухбайтное число, записанное в паре регистров (B,C). Это число и определяет длительность задержки в миллисекундах.
Частным случаем подпрограммы DELB является подпрограмма DELA, осуществляющая фиксированную задержку в 1 мс и не имеющая входных параметров. Таким образом, если необходимо иметь в программе фиксированную задержку в 1 мс, то можно обращаться с помощью команды CALL к подпрограмме DELA. При необходимости получения определенной заданной временной задержки в программе необходимо записать соответствующее число в регистры B,C, а затем вызвать подпрограмму DELB
Задания для домашней подготовки.
1. Изучите временные диаграммы выполнения микро-ЭВМ команд CALL<A2><A1> и RET.
2. Ознакомьтесь с командами вызова и возврата из подпрограммы по условию для МП БИС.
3. Определите, при каких числах, записанных в регистре В, подпрограмма П.9 будет осуществлять минимальное и максимальное время задержки. Определите эти времена, если машинный такт Т=1 мкс.
4. Разработайте подпрограмму 5- и 10- секундной временной задержки.
5. Составьте программу, последовательно включающую светодиоды выходного устройства на время соответственно 10 и 5 с. При разработке программы воспользуемся подпрограммами, разработанными в п.4 задания (рис. 4.10).
6. Определите для подпрограммы П.13, при каких числах в регистрах В и С будет максимальное и минимальное время задержки. Определите эти времена, если машинный такт Т=1 мкс.
7. Разберите программу П.14, определяющую, какой из восьми переключателей входного устройства (адрес 05) микро-ЭВМ установлен в положение "0":
а) составьте алгоритм работы программы П.14;
б) запишите подпрограмму, используемую в программе П.14;
в) установите, в каком регистре МП БИС содержится информация о номере переключателе входного устройства, установленном в "0";
г) определите, как будет работать программа П.14, если на входном устройстве будут установлены в положение "0" не один, а несколько переключателей.
Программа П.14
Адрес | Машинный код | Метка | Мнемокод | Комментарий |
0800 | 31 B00B | LXI SP,0BBO | ;запись в указатель стека SP ;адрес 0900 | |
0803 | DB 20 | WAITC | IN 20 | ;получить число из входного ;устройства |
0805 | FE FF | CPI FF | ;содержит ли какой-либо разряд ;число 0 | |
0807 | CA 0308 | JZ WAITC | ;если нет, то ждать | |
080A | CD 1008 | CALL IDSW | ;если да, то вызвать подпрограмму ;определения разряда, ;в котором записан 0 | |
080D | CF | RST 1 | ;окончить выполнения программы | |
0810 | 06 FF | IDSW | MVI B, FF | ;записать в регистр B число FF |
0812 | 04 | SRCH | INR B | ;увеличить содержимое ;регистра В на 1 |
0813 | 0F | RRC | ;сдвинуть число в аккумуляторе ;вправо | |
0814 | DA 1208 | JC SRCH | ;если С=1, то продолжать | |
0817 | C9 | RET | ;возврат из подпрограммы | |
Задание к лабораторной работе
Задание 1. Исследовать процесс выполнения команд вызова и возврата из подпрограммы, а также команд работы со стеком
Порядок выполнения задания:
1. Ввести в микро-ЭВМ подпрограмму П.15.
2. Выполнить программу П.15 по командам, используя режим выполнения программы по командам. После каждой команды проверить содержимое всех регистров МП БИС.
3. Выполнить команды CALL STDY, PUSH PSW, POP, RET по машинным циклам и построить временные диаграммы их выполнения микро-ЭВМ.
4. Заменить в подпрограмме П.15 команду POP PSW на команду NOP(00) и проследить, как будет выполняться подпрограмма П.15. Объяснить происшедшие изменения.
Подпрограмма П.15
Адрес | Машинный код | Метка | Мнемокод | Комментарий |
0800 | 31 B00B | LXI SP,0BB0 | ;записать в указатель стека SP адрес 0BB0 | |
0803 | CD 0708 | CALL STDY | ;вызвать подпрограмму STDY | |
0806 | CF | RST 1 | ;остановить выполнение;подпрограммы | |
0807 | F5 | STDY | PUSH PSW | ;записать слово состояние МП БИС ;в стек |
0808 | C5 | PUSH B | ;записать содержимое регистров ;В,С в стек | |
0809 | D5 | PUSH D | ;записать содержимое регистров ;D,E в стек | |
080A | E5 | PUSH H | ;записать содержимое регистров ;H,L в стек | |
080B | 3E 05 | MVI A, 05 | ;записать в регистр А число 05 | |
080D | 47 | MOV B, A | ;записать число из регистра А в;регистр В | |
080E | 87 | ADD A | ;удвоить содержимое аккумулятора | |
080F | 5F | MOV E, A | ;записать число из регистра А ;в регистр Е | |
0810 | 67 | MOV H, A | ;записать число из регистра А ;в регистр Н | |
0811 | E1 | POP H | ;записать числа из стека ;в регистры H, L | |
1812 | D1 | POP D | ;записать числа из стека в ;регистры D, E | |
0813 | C1 | POP B | ;записать числа из стека ;в регистры B, C | |
0814 | F1 | POP PSW | ;записать слово состояния из ;стека в МП БИС | |
0815 | C9 | RET | ;возврат из подпрограммы |
Задание 2. Исследовать программу временной задержки на примере работы программы генерации звуковых колебаний (программа П.12).
Порядок выполнения задания:
1. Собрать и подключить схему выдачи звуковых сигналов к микро-ЭВМ так, как показано на рис.4.8
2. Записать полный текст программы П.12 для генерации звуковых сигналов с учетом подпрограмм П.10 и П.11. Ввести в микро-ЭВМ программу.
3. Установить на входном устройстве число 00.
4. Осуществить пуск программы с адреса 0800.
5. Проследить за изменением тона звука, формируемого микро-ЭВМ в процессе выполнения программы, увеличивая число, записанное во входном устройстве.
Задание 3. Исследовать программу регулируемой временной задержки на примере программы, последовательно включающей и выключающей светодиоды выходного устройства на время соответственно 10 и 5 с.
Порядок выполнения задания:
1. Ввести в микро-ЭВМ программу, разработанную в п.5 задания для домашней подготовки.
2. Осуществить пуск программы и проверить ее выполнение микро-ЭВМ.
3. Изменить числа, записанные в регистрах В, С, в подпрограмме регулированной временной задержки (подпрограмма П.13). Проверить возможность изменения длительности задержки.
Задание 4. Исследовать программу П.14.
Порядок выполнения задания:
1. Ввести программу П.14 в микро-ЭВМ.
2. Установить на входном устройстве переключатели соответственно числу FF. Осуществить пуск программы. Убедиться, что микро-ЭВМ будет находиться в режиме ожидания появления “0” в любом разряде входного устройства.
3. Установить 0 с помощью переключателей в любом из разрядов входного устройства. Проверить содержимое регистров МП БИС после окончания выполнения программы П.14.
4. Осуществить повторный запуск программы при наличии нулей в двух разрядах входного устройства. Какое число будет записано в регистре В МП БИС после окончания выполнения программы?
Работа на учебной ЭВМ
Учебная микро-ЭВМ содержит схему выдачи звуковых сигналов. Адрес внешнего устройства для записи данных в схему выдачи звуковых сигналов - 04.
Ряд подпрограмм записан в ПЗУ микро-ЭВМ. В частности, все записанные в ПЗУ и приведенные в описании лабораторной работы программы, имеют адрес меньше 0800.
Все приведенные в лабораторной работе программы и порядок их выполнения могут быть без каких-либо изменений выполнены на учебной микро-ЭВМ.
Содержание отчета
Отчет должен содержать:
1. Временные диаграммы выполнения команд CALL<A2><A1>, RET.
2. Ответы на вопросы пп.4,6 задания для домашней подготовки.
3. Полный перечень команд вызова и возврата из подпрограмм для МП БИС КР580ВМ80.
4. Разработанные в процессе домашней подготовки программы 5- и 10-секундной задержки.
5. Перечень команд работы со стеком для МП БИС КР580ВМ80.
6. Ответы на вопросы, поставленные в п.7 задания для домашней подготовки.
Задания для самопроверки
1. Укажите количество машинных тактов выполнения команды CALL<A2><A1>.
2. В какой последовательности записывается и считывается из стека содержимое аккумулятора и регистра признаков МП БИС при выполнении команд PUSH PSW и POP PSW.
3. С
|
|
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!