Задача
Составить фрагмент программы сложения числа хранящегося в регистре C, с числом EA16, результат поместить в ячейку с № 1E9. Начальный адрес фрагмента программы ячейка с № 800C.
1. Блок-схема программы
2. Фрагмент программы.
№ ячейки | Структура кода команды | Двоичный код | Шестн. код | Мнемоника | Выполняемая операция |
800С | Команда состоит из 1 байта. 01 ri rj ri ← (rj) ri =А = код 111 rj = С = код 001 | В1=01 111 0012 | В1=7916 | MOV A, C | |
800D | Команда состоит из 2 байтов.
11К2 110
для ADI К2 =000
A← (A)+<B2>
B2 =EA16 | В1=11 000 1102 | В1=C616 | ADI EA | |
800E | В2=1110 10102 | В2=EA16 | |||
800F | Команда состоит из 3 байтов. 00 К1 010 для STA К1 =110 B3 B2 = 1E916, где B3 =0116, B2 = Е916 | В1=00 110 0102 | В1=3216 | STA 1E9 | |
В2=1110 10012 | В2=Е916 | ||||
В3=0000 00012 | В3=0116 |
Практическая работа № 15
Тема: Программирование разветвляющихся участков алгоритмов
Цель работы: Получить практические навыки составления разветвляющихся программ в машинных кодах и на языке ассемблера
Задача 1. Проанализировать число, хранящееся в регистре B.
Если оно положительное, то выполнить сложение с числом, хранящемся в регистре C
Если оно отрицательное, то выполнить сложение с числом 5910
Результат поместить в регистр L
Начальный адрес программы 123616
Задача 2. Проанализировать число, хранящееся в регистре C.
Если оно положительное, то выполнить вычитание числа, хранящегося в регистре L
Если оно отрицательное, то выполнить вычитание числа BC16
Результат поместить в регистр H
Начальный адрес программы 20CD16
Задача 3. Проанализировать число, хранящееся в регистре H.
Если оно положительное, то выполнить дизъюнкцию с числом, хранящемся в регистре C
Если оно отрицательное, то выполнить дизъюнкцию с числом 9C16
Результат поместить в регистр L
Начальный адрес программы 43616
Задача 4. Проанализировать число, хранящееся в регистре D.
Если оно положительное, то выполнить конъюнкцию с числом, хранящемся в регистре H
Если оно отрицательное, то выполнить конъюнкцию с числом CD16
Результат поместить в регистр L
Начальный адрес программы 10FD16
Задача 5. Проанализировать число, хранящееся в ячейке A8616.
Если оно положительное, то выполнить сложение с числом, хранящемся в регистре C
Если оно отрицательное, то выполнить сложение с числом 5810
Результат поместить в регистр L
Начальный адрес программы F9516
Задача 6. Проанализировать число, хранящееся в ячейке ABCD16.
Если оно положительное, то выполнить вычитание числа, хранящегося в регистре D
Если оно отрицательное, то выполнить вычитание числа 9316
Результат поместить в регистр B
Начальный адрес программы 8AB16
Задача 7. Проанализировать число, хранящееся в ячейке 39F16.
Если оно положительное, то выполнить дизъюнкцию с числом, хранящемся в регистре D
Если оно отрицательное, то выполнить дизъюнкцию с числом 9616
Результат поместить в регистр B
Начальный адрес программы 65D16
Задача 8. Проанализировать число, хранящееся в ячейке DEF16.
Если оно положительное, то выполнить конъюнкцию с числом, хранящемся в регистре H
Если оно отрицательное, то выполнить конъюнкцию с числом F216
Результат поместить в регистр L
Начальный адрес программы 10CD16
Задача 9. Проанализировать число, хранящееся в регистре D.
Если оно четное, то выполнить сложение с числом, хранящемся в регистре L
Если оно нечетное, то выполнить сложение с числом CD
Результат поместить в регистр C
Начальный адрес программы 103616
Задача 10. Проанализировать число, хранящееся в регистре B.
Если оно четное, то выполнить вычитание числа, хранящегося в регистре H
Если оно нечетное, то выполнить вычитание числа D016
Результат поместить в регистр L
Начальный адрес программы 10AB16
Задача 11. Проанализировать число, хранящееся в регистре D.
Если оно четное, то выполнить дизъюнкцию с числом, хранящемся в регистре E
Если оно нечетное, то выполнить дизъюнкцию с числом ED16
Результат поместить в регистр B
Начальный адрес программы 9ABC16
Задача 12. Проанализировать число, хранящееся в регистре E.
Если оно четное, то выполнить конъюнкцию с числом, хранящемся в регистре H
Если оно нечетное, то выполнить конъюнкцию с числом 1B16
Результат поместить в регистр C
Начальный адрес программы DEF16
Задача 13. Проанализировать число, хранящееся в ячейке 102316.
Если оно четное, то выполнить сложение с числом, хранящемся в регистре C
Если оно нечетное, то выполнить сложение с числом 8510
Результат поместить в регистр D
Начальный адрес программы 894516
Задача 14. Проанализировать число, хранящееся в ячейке C12516.
Если оно четное, то выполнить вычитание числа, хранящегося в регистре C
Если оно нечетное, то выполнить вычитание числа 9F16
Результат поместить в регистр L
Начальный адрес программы 56AD16
Задача 15. Проанализировать число, хранящееся в ячейке D23516.
Если оно четное, то выполнить дизъюнкцию с числом, хранящемся в регистре D
Если оно нечетное, то выполнить дизъюнкцию с числом 4510
Результат поместить в регистр B
Начальный адрес программы 690C16
Задача 16. Проанализировать число, хранящееся в ячейке 567A16.
Если оно четное, то выполнить конъюнкцию с числом, хранящемся в регистре H
Если оно нечетное, то выполнить конъюнкцию с числом
Результат поместить в регистр 4E16
Начальный адрес программы
93B16
Задача 17. Проанализировать число, хранящееся в регистре D.
Если оно положительное, то выполнить сложение с числом, хранящемся в регистре H
Если оно отрицательное, то выполнить сложение с числом 6C16
Результат поместить в ячейку AD2416
Начальный адрес программы 97DC16
Задача 18. Проанализировать число, хранящееся в регистре C.
Если оно положительное, то выполнить вычитание числа, хранящегося в регистре D
Если оно отрицательное, то выполнить вычитание числа 9610
Результат поместить в ячейку CD0116
Начальный адрес программы 23AE16
Задача 19. Проанализировать число, хранящееся в регистре H.
Если оно положительное, то выполнить дизъюнкцию с числом, хранящемся в регистре B
Если оно отрицательное, то выполнить дизъюнкцию с числом 12010
Результат поместить в регистр L
Начальный адрес программы AD3516
Задача 20. Проанализировать число, хранящееся в регистре D.
Если оно положительное, то выполнить конъюнкцию с числом, хранящемся в регистре L
Если оно отрицательное, то выполнить конъюнкцию с числом FD16
Результат поместить в ячейку 459816
Начальный адрес программы DA1216
Задача 21. Проанализировать число, хранящееся в ячейке 25D16.
Если оно положительное, то выполнить сложение с числом, хранящемся в регистре D
Если оно отрицательное, то выполнить сложение с числом A916
Результат поместить в ячейку DE816
Начальный адрес программы AC9516
Задача 22. Проанализировать число, хранящееся в ячейке DB516.
Если оно положительное, то выполнить вычитание числа, хранящегося в регистре D
Если оно отрицательное, то выполнить вычитание числа 5A16
Результат поместить в ячейку C23516
Начальный адрес программы 65D16
Задача 23. Проанализировать число, хранящееся в ячейке F1316.
Если оно положительное, то выполнить дизъюнкцию с числом, хранящемся в регистре L
Если оно отрицательное, то выполнить дизъюнкцию с числом A316
Результат поместить в ячейку FA816
Начальный адрес программы AD516
Задача 24. Проанализировать число, хранящееся в ячейке DA1216.
Если оно положительное, то выполнить конъюнкцию с числом, хранящемся в регистре C
Если оно отрицательное, то выполнить конъюнкцию с числом 8416
Результат поместить в ячейку 546816
Начальный адрес программы FE2316
Задача 25. Проанализировать число, хранящееся в регистре H.
Если оно четное, то выполнить сложение с числом, хранящемся в регистре L
Если оно нечетное, то выполнить сложение с числом 6510
Результат поместить в ячейку 238916
Начальный адрес программы FAD16
Задача 26. Проанализировать число, хранящееся в регистре D.
Если оно четное, то выполнить вычитание числа, хранящегося в регистре E
Если оно нечетное, то выполнить вычитание числа 9710
Результат поместить в ячейку DF1216
Начальный адрес программы AC4516
Задача 27. Проанализировать число, хранящееся в регистре H.
Если оно четное, то выполнить дизъюнкцию с числом, хранящемся в регистре L
Если оно нечетное, то выполнить дизъюнкцию с числом DF16
Результат поместить в ячейку 23DA16
Начальный адрес программы 89F16
Задача 28. Проанализировать число, хранящееся в регистре B.
Если оно четное, то выполнить конъюнкцию с числом, хранящемся в регистре D
Если оно нечетное, то выполнить конъюнкцию с числом 15610
Результат поместить в ячейку 12F16
Начальный адрес программы 36A16
Задача 29. Проанализировать число, хранящееся в ячейке DA5816.
Если оно четное, то выполнить сложение с числом, хранящемся в регистре L
Если оно нечетное, то выполнить сложение с числом 20010
Результат поместить в ячейку 25FA16
Начальный адрес программы 8CD16
Задача 30. Проанализировать число, хранящееся в ячейке FA816.
Если оно четное, то выполнить вычитание числа, хранящегося в регистре C. Если оно нечетное, то выполнить вычитание числа 18010
Результат поместить в ячейку 45616
Начальный адрес программы DF816
Задача 31 Проанализировать число, хранящееся в ячейке CA5216.
Если оно четное, то выполнить дизъюнкцию с числом, хранящемся в регистре L
Если оно нечетное, то выполнить дизъюнкцию с числом 13010
Результат поместить в ячейку FA216
Начальный адрес программы ABC916