Ввод - вывод, маскирование данных и организация условных переходов. — КиберПедия 

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Ввод - вывод, маскирование данных и организация условных переходов.

2021-10-05 122
Ввод - вывод, маскирование данных и организация условных переходов. 0.00 из 5.00 0 оценок
Заказать работу

Цель работы: исследование методов подключения и организации обмена с простейшими устройствами ввода-вывода. Изучение программных способов маскирования данных и организации условных переходов в микро-ЭВМ.

Краткие сведения из теории

К командам ввода- вывода МП БИС КР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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.16 с.