Пример выполнения задания.

 

Задача

Проанализировать число, хранящееся в ячейке DA316 .

Если оно четное, то выполнить конъюнкцию с числом, хранящемся в регистре B

Если оно нечетное, то выполнить конъюнкцию с числом 14010

Результат поместить в ячейку AD716 .

Начальный адрес программы CD4516

1. Блок-схема программы

 

 

2. Фрагмент программы.

 

№ ячейки Структура кода команды Двоичный код Шестнадцкод Мнемоника Выполняемая операция
CD45 Команда состоит из 3 байтов 00 К1 010. Для LDA K1=111 B3B2 = DA316, где B3 =0D16, B2 = A316 В1=00 111 0102 В1=3A16 LDA DA3
CD46 В2=1010 00112 В2=A316
CD47 В3=0000 11012 В3=0D16
CD48 Команда состоит из 1 байта 00К3 111. Для RRC K3=001 В1=00 001 1112 В1=0F16 RRC
CD49 Команда состоит из 3 байтов. 11K4 010 Для K4=010 выполняется команда: B3 B2 = CD5216, где B3 =CD16, B2 = 5216 В1=11 010 0102 В1=D216 JNC CD52 Условие ТС =0
CD4A В2=0101 00102 В2=5216
CD4B В3=1100 11012 В3=CD16
CD4C Команда состоит из 1 байта 00К3 111. Для RAL K3=010 В1=00 010 1112 В1=1716 RAL
CD4D Команда состоит из 2 байт. 11K2 110 Для ANI K2 =100 B2 = 14010 = 8С16 В1=11 100 1102 В1=Е616 ANI 8С
CD4E В2=1000 11002 В2=8С16
CD4F Команда состоит из 3 байтов. Безусловный переход B3 B2 = CD5416, где B3 =CD16, B2 = 5416 В1=110000112 В1=С316 JMP CD54 Безусловный переход  
CD50 В2=0101 01002 В2=5416
CD51 В3=1100 11012 В3=CD16
CD52 Команда состоит из 1 байта 00К3 111. Для RAL K3=010 В1=00 010 1112 В1=1716 RAL
CD53 Команда состоит из 1 байта 10K2 ri Для ANA K2=100 ri =B= код 000   В1=10 100 0002 В1=А016 ANA В
CD54 Команда состоит из 3 байтов. 00 К1 010 для STA К1 =110 B3 B2 = AD716, где B3 =0A16, B2 = D716 В1=00 110 0102 В1=3216 STA AD7
CD55 В2=1101 01112 В2= D716
CD56 В3=0000 10102 В3=0A 16

 

 

Практическая работа № 16

Тема: Организация взаимодействия МП с внешними устройствами и памятью

Цель работы:Получить практические навыки составления программ работы с внешними устройствами в машинных кодах и на языке ассемблера

 

Задание 1.

1.Составить программу, по которой данные считываются с тумблеров, к их состоянию (содержимому аккумулятора) прибавляется 10010, и результаты выдаются на светодиоды.

2.Составить программу, по которой данные считываются с тумблеров, к их состоянию (содержимому аккумулятора) прибавляется 3010, и результаты выдаются на светодиоды.

3.Составить программу, по которой данные считываются с тумблеров, устанавливаются 1 и 2 биты, и результаты выдаются на светодиоды.

4.Составить программу, по которой данные считываются с тумблеров, очищаются 2 и 3 биты, и результаты выдаются на светодиоды.

5.Составить программу, по которой данные считываются с тумблеров, инвертируются 1 и 3 биты, и результаты выдаются на светодиоды.

6.Составить программу, по которой данные считываются с тумблеров, к их состоянию (содержимому аккумулятора) прибавляется 150, и результаты выдаются на светодиоды.

7.Составить программу, по которой данные считываются с тумблеров, от их состояния (содержимому аккумулятора) вычитается 1, и результаты выдаются на светодиоды.

8.Составить программу, по которой данные считываются с тумблеров, устанавливаются 2 и 3 биты, и результаты выдаются на светодиоды.

9.Составить программу, по которой данные считываются с тумблеров, очищаются 1 и 3 биты, и результаты выдаются на светодиоды.

10.Составить программу, по которой данные считываются с тумблеров, инвертируются 2 и 3 биты, и результаты выдаются на светодиоды.

11.Составить программу, по которой данные считываются с тумблеров, к их состоянию (содержимому аккумулятора) прибавляется 200, и результаты выдаются на светодиоды.

12.Составить программу, по которой данные считываются с тумблеров, от их состояния (содержимому аккумулятора) вычитается 2, и результаты выдаются на светодиоды.

13.Составить программу, по которой данные считываются с тумблеров, устанавливаются 1 и 3 биты, и результаты выдаются на светодиоды.

14.Составить программу, по которой данные считываются с тумблеров, очищаются 1 и 2 биты, и результаты выдаются на светодиоды.

15.Составить программу, по которой данные считываются с тумблеров, инвертируются 1 и 2 биты, и результаты выдаются на светодиоды.

16.Составить программу, по которой данные считываются с тумблеров, к их состоянию (содержимому аккумулятора) прибавляется 250, и результаты выдаются на светодиоды.

17.Составить программу, по которой данные считываются с тумблеров, от их состояния (содержимому аккумулятора) вычитается 4, и результаты выдаются на светодиоды.

18.Составить программу, по которой данные считываются с тумблеров, устанавливается 1-ый бит, и результаты выдаются на светодиоды.

19.Составить программу, по которой данные считываются с тумблеров, очищается 2-ой бит, и результаты выдаются на светодиоды.

20.Составить программу, по которой данные считываются с тумблеров, инвертируется 3-ий бит, и результаты выдаются на светодиоды.

21.Составить программу, по которой данные считываются с тумблеров, к их состоянию (содержимому аккумулятора) прибавляется 300, и результаты выдаются на светодиоды.

22.Составить программу, по которой данные считываются с тумблеров, от их состояния (содержимому аккумулятора) вычитается 3, и результаты выдаются на светодиоды.

23.Составить программу, по которой данные считываются с тумблеров, устанавливается 2-ой бит, и результаты выдаются на светодиоды.

24.Составить программу, по которой данные считываются с тумблеров, очищается 1 -ый бит, и результаты выдаются на светодиоды.

25.Составить программу, по которой данные считываются с тумблеров, инвертируется 2-ой бит, и результаты выдаются на светодиоды.

26.Составить программу, по которой данные считываются с тумблеров, к их состоянию (содержимому аккумулятора) прибавляется 25010, и результаты выдаются на светодиоды.

27.Составить программу, по которой данные считываются с тумблеров, от их состояния (содержимому аккумулятора) вычитается 2510 , и результаты выдаются на светодиоды.

28.Составить программу, по которой данные считываются с тумблеров, выполняется операция конъюнкция с числом 10010, и результаты выдаются на светодиоды.

29.Составить программу, по которой данные считываются с тумблеров, выполняется операция дизъюнкция с числом 15010, и результаты выдаются на светодиоды.

30.Составить программу, по которой данные считываются с тумблеров, выполняется операция исключающее «ИЛИ» с числом 25010, и результаты выдаются на светодиоды.

 

Задание 2.

1. Выделить четные биты числа, записанного в ячейке 8030 с помощью операции И. Результат получить на светодиодных индикаторах.

2. Продемонстрировать действие операции «исключающее ИЛИ» преобразуя число, записанное в аккумуляторе в код FF. Результат получить на светодиодных индикаторах.

3. Продемонстрировать действие операции «исключающее или» инвертируя в числе разряды, содержащие 1, и не изменяя разряды , содержащие 0. Результат получить на светодиодных индикаторах.

(Изменить программу так, чтобы операция «исключающее ИЛИ» выполнялась только над 4 младшими, 4 старшими битами).

4. Включить светодиоды, если число, записанное во входном устройстве, меньше или равно 3.

5. Включить светодиоды, если число, записанное во входном устройстве, больше 3, но меньше 8.

6. Зажечь светодиоды, если включены тумблеры Т1 и Т3 (изменить программу так, чтобы светодиоды зажигались при включении тумблеров Т1 или Т2).

7. Зажечь светодиоды, если в 5 разряде числа 0, а во всех остальных 1 (изменить программу так, чтобы микро - лаборатория реагировала на произвольную заданную комбинацию числа записанного в ячейке ОП).

8. Продемонстрировать функцию сдвига вправо, индицируя результат на светодиодах (изменить кодовые комбинации, подвергаемые сдвигу).

9.Продемонстрировать функцию сдвига влево, индицируя результат на светодиодах (изменить кодовые комбинации, подвергаемые сдвигу).

10. Вывести код, задаваемый тумблерами, на различные индикаторы дисплея.

11. Составить программу включения звукового сигнала тумблером Т1.

12. Включить звуковой сигнал на 5 секунд.

13. Включить звуковой сигнал на 10 секунд.

14. Включить звуковой сигнал тумблером Т2.

15. Включить звуковой сигнал тумблером Т3.

16. Зажечь 1, 4, 7 светодиоды на 5 секунд (изменить номера светодиодов).

17. Зажечь 2, 5, 8 светодиоды на 10 секунд (изменить время горения светодиодов).

18. Потушить все светодиоды на 15 секунд.

19. Выделить нечетные биты числа, записанного в ячейке 8035 с помощью операции И. Результат получить на светодиодных индикаторах.

20. Выделить младшие 4 бита числа, записанного в ячейке 8040 с помощью операции И. Результат получить на светодиодных индикаторах.

21. Продемонстрировать действие операции «исключающее ИЛИ» преобразуя число, записанное в аккумуляторе так, чтобы в младших четырех разрядах числа «0» были заменены на «1». Результат получить на светодиодных индикаторах.

22. Продемонстрировать действие операции «исключающее ИЛИ» преобразуя число, записанное в аккумуляторе так, чтобы в старших четырех разрядах числа 0 были заменены на 1. Результат получить на светодиодных индикаторах.

23. Продемонстрировать действие операции «исключающее или» инвертируя в числе разряды, содержащие 1, и не изменяя разряды , содержащие 0. Результат получить на светодиодных индикаторах.

Операцию «исключающее ИЛИ» применить только для 4 младших битов. 3. Продемонстрировать действие операции «исключающее или» инвертируя в числе разряды, содержащие 1, и не изменяя разряды , содержащие 0. Результат получить на светодиодных индикаторах.

Операцию «исключающее ИЛИ» применить только для 4 старших битов.

24. Составить программу включения звукового сигнала тумблером Т1, а включение светодиодов тумблером Т3.

25. Включить звуковой сигнал тумблерами Т1 и Т2.

26. Зажечь 1, 2 светодиоды на 5 секунд.

27. Зажечь 2, 4, 6 светодиоды на 10 секунд.

28. Зажечь 3, 4, 5 светодиоды на 5 секунд.

29. Потушить все светодиоды на 5 секунд.

30. Потушить все светодиоды на 10 секунд.