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

 

Задача

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