Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Инструкции по выполнению работы

 

Задание №1: Исследование программы 5.1

1. Записать программу 5.1 в память микро – ЭВМ

2. Вычислить время выполнения программы с выполнением цикла один раз. Вычислить число в регистре С для получения задержки 0,5 сек.

2. Используя программу 5.1 как подпрограмму включить её в разработанную программу по выводу данных на монитор.

 

 

Подпрограмма №5.1:

movb,c записать число из регистра С в регистр В

dly:nop нет операции

dcrb уменьшить содержимое В на 1

jnzdly пока в регистре В не 0 идти на dly

hlt все

 

Задание №2: Исследование программы 5.3

1.Записать полный текст программы 5.3

2.Ввести в микро – ЭВМ программу. Установить на входном устройстве число 00. Произвести пуск программы и проследить за изменением, увеличивается число, записанное во входное устройство.

 

Подпрограмма №5.2:

jmpmain

delay:movb,c записать число из регистра С в регистр В

dly:nop нет операции

dcrb уменьшить содержимое В на 1

jnzdly пока в регистре В не 0 идти на dly

ret все

main:xraa очистить аккумулятор

out 60 записать 00 в выходное устройство

calldelay вызвать подпрограмму задержки

cma записать код FF в регистр А

out 60 записать код FF в выходное устройство

calldelay вызвать подпрограмму задержки

hit все

 

Программа №5.3:

jmpmain

delay:movb,c записать число из регистра С в регистр В

dly:nop нет операции

dcrb уменьшить содержимое В на 1

jnzdly пока в регистре В не 0 идти на dly

ret возврат из подпрограммы

bpp:xraa очистить аккумулятор

out 60 записать 00 в выходное устройство

calldelay вызвать подпрограмму задержки

cma записать код FF в регистр А

out 60 записать код FF в выходное устройство

calldelay вызвать подпрограмму задержки

ret возврат из подпрограммы

main:in 80 прочитать число из входного регистра в аккумулятор

movc,a записать число в регистр С

callbpp вызвать подпрограмму BPP

jmpmain

продолжать

Задание №3: Исследование программы П5.4

1.Ввести программ П5.4 в память эмулятора

2.Установить на выходном устройстве переключатели соответственно числу 11. Осуществить пуск программы. Убедиться, что МПС будет находиться в режиме ожидания появления 0 в любом разряде входного устройства.

3.Установить 0 с помощью переключателей в любом из разрядов входного устройства. Проверить содержимое всех регистров МП после окончания программы. Осуществить повторный пуск программы при наличии нулей в двух разрядах входного устройства. Какое число будет записано в регистре В после окончания выполнения программы?

Программа №5.4:

lxisp,0bb0 записать в SP адрес стека

m1:in 80 получить число из входного устройства

criff содержит ли какой-нибудь разряд 0?

jzm1 если нет, то ждать

callm2 если да, то вызвать подпрограмму определения разряда

hit останов

m2:mvib,ff

m3:inrb увеличить содержимое В

rrc сдвиг вправо

jcm3 если CY=1, то продолжать

ret возврат из подпрограммы

 

Задание №4: Исследование программы 5.5

1. Записать программу 5.5 в память эмулятора

2. Убедиться, что программа осуществляет временную задержку на 10 сек.

 

Программа №5.5:

pushbc записать в стек содержимое регистра ВС

lxibc,1218 занести в регистр ВС время задержки

callcnt обращение к подпрограмме

jmpdone перейти в конец программы

cnt:dcxbc декремент содержимого ВС

jnzcnt если ВС¹0, идти на cnt

ret иначе возврат из подпрограммы

done:popbc восстановить содержимое ВС

hlt останов программы

 

 

Методика анализа результатов, полученных по лабораторной работе

 

Команда условного перехода проверяет состояние соответствующего разряда регистра признаков (F). Если при проверке состояния разряда регистра признаков условие не подтверждается, то выполняется следующая по порядку команда программы, иначе происходит переход.

Программа 4.1 осуществляет ожидание простого (двоичного) события и при возникновении этого события формирует простое (двоичное) управление. В программе каждый бит порта с адресом 03h ассоциируется с некоторым событием от внешнего устройства, например, соответствует состоянию некоторого концевого переключателя технологического процесса. Таким образом, в технологическом процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в технологическом процессе задействованы 8 исполнительных механизмов с номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное состояние (0 или 1).

Порядок выполнения отчета по лабораторной работе

 

1. Наименование и цель работы

2. Программы временных задержек.

3. Рассчитанные числа для задержки на 0.5, 1 и 10 сек.

4. Программу 5.4 с пояснением содержимого регистра В.

5. Ответы на контрольные вопросы

 

Образец отчета по лабораторной работе:

ЛАБОРАТОРНАЯ РАБОТА №8

Разработка и использование программ с подпрограммами

Учебные цели: Исследование особенностей записи подпрограмм и обращения к подпрограммам на языке Ассемблер в микропроцессорных системах

;

Учебные задачи:

 

2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.

3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.

Выполнение работы

 

Задание №1: Программа 5.1.MOV B,C // Переслать данные из регистра C в регистр B. (тактов 5). DLY: NOP // пустая операция. (тактов 4). DCR B // декрементировать B. (тактов 5).JNZ DLY // если B не ноль, то переход по метке. (тактов 10-если переход, 4-если не переход).HLT // Останов. (тактов 7). Эту программу можно условно разделить на несколько частей: команды которые повторяются только один раз, команды которые могут повторяться много раз. Каждая команда выполняется за определённое количество тактов, причём команда условного перехода JNZ DLY выполняется за 10 тактов если условие верно и осуществляется переход, и за 7 тактов – если условие не выполнено. Можно составить уравнение по подсчету нужного количества итераций цикла этой программы, оно имеет вид:S = 5 + n·(4+5) + (n-1)·10 + 4 + 7,где S – общее число тактов на выполнение программы, n – число итераций цикла.Что бы найти количество итераций цикла для обеспечения нужного числа тактов программы, а следовательно задержки нужно формулу преобразовать:

 

С учётом того, что один такт равен 0,5·10-3 , чтобы получить задержку в 0,5 сек., подставляем в формулу значение S и получаем количество итераций цикла равным 52 в десятичной системе счисления, необходимо перевести это число в шестнадцатеричную систему счисления для того что бы процессор мог их корректно обработать. Оно равно 34h. Это число нужно записать в регистр C до начала выполнения программы.

Задание №2:

MVI A,02h

RET_:

OUT 90

RAL RAL

CALL WAT_

JMP RET_HLT

WAIT_: MOV B,C

DLY: NOP

DCR B

JNZ

DLY

RET

HLT

Программа №5.4:

lxisp,0bb0 записать в SP адрес стека

m1:in 80 получить число из входного устройства

criff содержит ли какой-нибудь разряд 0?

jzm1 если нет, то ждать

callm2 если да, то вызвать подпрограмму определения разряда

hit останов

m2:mvib,ff

m3:inrb увеличить содержимое В

rrc сдвиг вправо

jcm3 если CY=1, то продолжать

ret возврат из подпрограммы

 

При наличии на входном устройстве числа FFh программа зацикливается на первой итерации. При наличии одной единицы программа выполняется и в конце программы в регистре B остаётся число – номер первого разряда с нулём слева на право. При наличии большего числа нулей в регистре B получается номер разряда самого левого из нулей.

Задание №3:

Программа №5.5:

pushbc записать в стек содержимое регистра ВС

lxibc,1218 занести в регистр ВС время задержки

callcnt обращение к подпрограмме

jmpdone перейти в конец программы

cnt:dcxbc декремент содержимого ВС

jnzcnt если ВС¹0, идти на cnt

ret иначе возврат из подпрограммы

done:popbc восстановить содержимое ВС

hlt останов программы

На опыте оказалось, что программа выполняется за 6 секунд, что на 4 секунды быстрее указанного времени. Ответы на контрольные вопросы:

1.

2.

3.

4.

Анализ результатов, полученных в ходе лабораторной работы:

Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия.

Программа 5.1 реализует алгоритм программной задержки, где занимает один байт: регистр С Для получения требуемой задержки организован цикл, поэтому величина может варьироваться от 00h до FFh (т. е. от 0 до 256), для вычисления временной задержки здесь может быть использована

 

Для получения задержки 0,5 сек в регистр С необходимо записать число 34h.

Программа 5.2 реализует алгоритм программной задержки, где занимает два байта: В и С. Для увеличения времени задержки организовано два цикла (цикл в цикле), поэтому величина может варьироваться от 0000h до FFFFh (т. е. от 0 до 65535), однако, для вычисления временной задержки здесь должна использоваться гораздо более сложная формула.

Число записанное в регистровой паре, рассчитанное по формуле, ВС =1218 дало временную задержку 6 сек. Чтобы получить 10 сек нужно число увеличить. Оно будет равно 1896

 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...