Лабораторна робота №3
Тема: Програми з розгалуженням
Мета: навчитися користуватися командами умовних і безумовних переходів
Теоретичні відомості
Приклад.
Написати алгоритм і програму для обчислення величини z
2x
– 18, якщо x<=8
x1
=8 x2
=10
Z =
(y-x)/2, якщо x>8 y1 =9 y2 =16
Блок – схема Програма
ORG
800H 800
3A 1E 08 LDA XXX 803
FE 08 CPI 8 805
FA 16 08 JM RRR ; A<=8 808 CA 16 08 JZ
RRR ;
80B
47 MOV B,A; 80C
3A 1F 08 LDA YYY;
80F
90 SUB B;
810
37 STC ; (y-x)/2 811
3F CMC;
812
1F RAR ;
813
C3 1A 08 JMP KON; 816
87 RRR: ADD A;
817
06 12 MVI B,18; 2x-18 819
90 SUB B;
81A
32 20 08 KON: STA ZZZ 81D
76 HLT 81E
08 XXX: DB 8 81F
09 YYY: DB 9 820
00 ZZZ: DB 0 END
A
(XXX)
ні
A
A+A B
18 A
A-B
(ZZZ)
A
B
A A
(YYY) A
A-B
CY 0 A
A/2
так
Завдання: Написати алгоритм і програму для обчислення величини z у відповідності з вказаним варіантом. Програму розпочати з адреси 800H+N, N - номер варіанту. Результат занести за адресою ZZZ. Програму набрати на УМК, перевірити результати.
Варіант 1
60/2 - x, якщо x > 11 x1 =20h x2 =5
Z =
(x-2)/2, якщо x <= 11 y1 =5 y2 =65h
Варіант 2
14 - y, якщо x <= 14 x1 =14 x2 =15
Z =
y – 81, якщо x > 14 y1 =4 y2 =100
Варіант 3
2x + 13, якщо x <= 5 x1 =6 x2 =2
Z =
3y, якщо x > 5 y1 =10 y2 =10
Варіант 4
4x + 2, якщо x <= 53 x1 =10 x2 =60
Z =
3y - 8, якщо x > 53 y1 =25 y2 =25
Варіант 5
(x – 34)/2, якщо x > 78 x1 =79 x2 =10
Z =
y + 3x , якщо x <= 78 y1 =10 y2 =20
Варіант 6
x - y, якщо x <= 15 x1 =10 x2 =20
Z =
x + 3 , якщо x > 15 y1 =15 y2 =15
Варіант 7
x+13 , якщо x>34 x1 =100 x2 =21
Z =
y/2 , якщо x<=34 y1 =30 y2 =30
Варіант 8
4x-y , якщо x<=10 x1 =9 x2 =30
Z =
y+x+5, якщо x>10 y1 =20 y2 =15
Варіант 9
4-y+x , якщо x>18 x1 =19 x2 =22
Z =
2y+3x, якщо x<=18 y1 =20 y2 =11
Варіант 10
24 - 4y , якщо x<=41 x1 =40 x2 =60
Z =
y – 80/2, якщо x>41 y1 =2 y2 =100
Варіант 11
x – 124/2, якщо x > 78 x1 =80 x2 =30
Z =
y + 3x, якщо x <= 78 y1 =10 y2 =10
Варіант 12
x - y , якщо x<=15 x1 =10 x2 =60
Z =
2x - y, якщо x>15 y1 =8 y2 =100
Варіант 13
x + 20 , якщо x>= 5 x1 =7 x2 =3
Z =
y + x, якщо x< 5 y1 =12 y2 =124
Варіант 14
2x - 3y , якщо x<=100 x1 =30 x2 =120
Z =
y – 80/2, якщо x>100 y1 =8 y2 =100
Варіант 15
x+20/2 , якщо x>=5 x1 =7 x2 =-2
Z =
5y, якщо x<5 y1 =24 y2 =10
Варіант 16
2x+124/2 , якщо x<=50 x1 =5 x2 =60
Z =
2x - 3y, якщо x>50 y1 =124 y2 =10
Варіант 17
48 - 2x , якщо x<46 x1 =45 x2 =46
Z =
33- 2x + 2y, якщо x>=46 y1 =12 y2 =40
Варіант 18
64 + 2x , якщо x<46 x1 =30 x2 =60
Z =
47 + x - 2y, якщо x>=46 y1 =127 y2 =20
Варіант 19
60/2 - x, якщо x > 11 x1 =20h x2 =5
Z =
(x-2)/2, якщо x <= 11 y1 =5 y2 =65h
Варіант 20
14 - y, якщо x <= 14 x1 =14 x2 =15
Z =
y – 81, якщо x > 14 y1 =4 y2 =100
Варіант 21
2x + 13, якщо x <= 5 x1 =6 x2 =2
Z =
3y, якщо x > 5 y1 =10 y2 =10
Варіант 22
4x + 2, якщо x <= 53 x1 =10 x2 =60
Z =
3y - 8, якщо x > 53 y1 =25 y2 =25
Варіант 23
(x – 34)/2, якщо x > 78 x1 =79 x2 =10
Z =
y + 3x , якщо x <= 78 y1 =10 y2 =20
Варіант 24
x - y, якщо x <= 15 x1 =10 x2 =20
Z =
x + 3 , якщо x > 15 y1 =15 y2 =15
Варіант 25
x+13 , якщо x>34 x1 =100 x2 =21
Z =
y/2 , якщо x<=34 y1 =30 y2 =30
Варіант 26
4x-y , якщо x<=10 x1 =9 x2 =30
Z =
y+x+5, якщо x>10 y1 =20 y2 =15
Варіант 27
4-y+x , якщо x>18 x1 =19 x2 =22
Z =
2y+3x, якщо x<=18 y1 =20 y2 =11
Варіант 28
24 - 4y , якщо x<=41 x1 =40 x2 =60
Z =
y – 80/2, якщо x>41 y1 =2 y2 =100
Варіант 29
x – 124/2, якщо x > 78 x1 =80 x2 =30
Z =
y + 3x, якщо x <= 78 y1 =10 y2 =10
Варіант 30
x - y , якщо x<=15 x1 =10 x2 =60
Z =
2x - y, якщо x>15 y1 =8 y2 =100
Контрольні питання:
Які команди використовують для організації розгалуження ?
Скільки байт займає команда JMP KKK ?
Як здійснити запис результату в пам’ять ?
