Пример выполнения задания.
Задача
Составить фрагмент программы сложения числа хранящегося в регистре 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