Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПТ (украинская) ДРУК.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.86 Mб
Скачать

4. Лабораторна робота № 3. Виконання галужень в програмах

Мета роботи

Навчиться розробляти програми розгалужених структур.

Загальні відомості

У розглянутих вище лабораторних роботах програмні модулі мають лінійну структуру, тоді як в реальних умовах при розробці програм керування, доводиться створювати програми розгалужених структур, коли залежно від стану керованого об'єкту і інших умов, процесор повинен виконувати різні дії, що програмно реалізується наявністю різних шляхів (гілок) виконання програми.

Часто для створення розгалужених програмних структур використовуються команди безумовного і умовного переходів. При виконанні групи команд умовного переходу процесором як умова аналізуються біти регістра стану:

С – ознака позики/перенесення;

Z – ознака нуля;

S – ознака знаку;

Р – ознака парності

Для реалізації безумовного переходу використовується команда:

JMP <B3B2> – процесор переходить до виконання команди, адреса якої вказана в третьому і другому байтах <B3B2>

До групи команд умовного переходу відносяться команди:

JC<B3B2>(JNC<B3B2>) – перейти до команди розташованої в пам'яті ОЗП, за адресою <В3В2> якщо С=1 (С=0), інакше – до наступної по порядку команди;

JZ<B3B2>(JNZ<B3B2>) – перейти до команди розташованої в пам'яті ОЗП, за адресою <В3В2> якщо Z=1 (Z=0), інакше – до наступної по порядку команди;

JP<B3B2>(JM<B3B2>) – перейти до команди розташованої в пам'яті ОЗП, за адресою <В3В2> якщо S=1 (S=0), інакше – до наступної по порядку команди;

JPO<B3B2>(JPE<B3B2>) – перейти до команди розташованої в пам'яті ОЗП, за адресою <В3В2> якщо P=1 (P=0), інакше – до наступної по порядку команди.

Для реалізації операцій множення і ділення використовуються наступні алгоритми (рисунок 4.1).

Рисунок 4.1 - Алгоритми операцій множення і ділення.

Порядок виконання роботи

Увімкнути ПЕВМ. Увійти до робочого середовища Windows під своїм паролем. Для запуску емулятора завантажте програму k120.bat з директорії c:\Program files\int8080.

Виконати наступні обов'язкові завдання

Завдання 3.1. Написати програму для вирішення такого математичного виразу:

[(2100) : 5] → (2101) (4.1)

Лістинг програми з докладними коментарями приведений в таблиці 4.1.

Результат роботи програми показати викладачеві, помістивши в комірку з адресою (2100) число 30Н.

Таблиця 4.1

Адреса

Код

Мітка

Мнемоніка

Коментар

2200

06 00

MVI B, 00H

00H→(B)

2202

3A 00 21

LDA 2100H

(2100)→(A)

2205

FE 05

L2:

CPI 05H

порівняти (A) з 05H

2207

DA 10 22

JC L1

якщо 05>(A)→L1

220A

D6 05

SUI 05H

(A)-05H→(A)

220C

04

INR B

(B)+1→(B)

220D

C3 05 22

JMP L2

перехід на L2

2210

78

L1:

MOV A, B

(B)→(A)

2211

32 01 21

STA 2101H

(A)→(2101)

2214

76

HLT

зупинення

Завдання 3.2. Написати програму для вирішення такого математичного виразу:

[(2100) ∙ 7]→(2101) (4.2)

Лістинг програми з докладними коментарями приведений в таблиці 4.2.

Результат роботи програми показати викладачеві, помістивши в комірку з адресою (2100) число 10Н.

Таблиця 4.2

Адреса

Код

Мітка

Мнемоніка

Коментар

2200

0E 07

MVI C,07H

07H→(C)

2202

3A 00 21

LDA 2100H

(2100)→(A)

2205

47

MOV B, A

(A)→(B)

2206

AF

XRA A

(A)=0

2207

80

L2:

ADD B

(A)+(B)→(A)

2208

0D

DCR C

(C)-1→(C)

2209

C2 07 22

JNZ L2

якщо біт Z=0→L2

220С

32 01 21

L1:

STA 2101H

(A)→(2101)

220D

76

HLT

зупинення

Завдання 3.3. Написати програму для вирішення такого математичного виразу:

[(2100) (2101) + 17Н] > 20H → […] : 2 → (2102) (4.3)

< 20H → […] ∙ 2 → (2103)

Лістинг програми з докладними коментарями приведений в таблиці 4.3.

Результат роботи програми показати викладачеві, заздалегідь завантаживши в комірки (2100), (2101) відповідно 10Н і 01Н.

Таблиця 4.3

Адреса

Код

Мітка

Мнемоніка

Коментар

2200

3A 00 21

LDA 2100H

(2100)→(A)

2203

47

MOV B, A

(A)→(B)

2204

3A 01 21

LDA 2101H

(2101)→(A)

2207

A8

XRA B

(A) (B)→(A)

2208

C6 17

ADI 17H

(A)+17H→(A)

220A

FE 20

CPI 20H

зрівняти (A)з20Н

220C

DA 17 22

JC L1

якщо (A)<20H→L1

220F

B7

ORA A

Біт С=0

2210

1F

RAR

(A):2→(A)

2211

32 02 21

STA 2102H

(A)→(2102)

2214

C3 1C 22

JMP L2

перейти на L2

2217

B7

L1:

ORA A

Біт С=0

2218

17

RAL

(A)·2→(A)

2219

32 03 21

STA 2103H

(A)→(2103)

221C

76

L2:

HLT

зупинення

Завдання 3.4. Самостійно написати програму для вирішення математичного виразу згідно варіанту (таблиця 4.4).

Зміст звіту

Тема, мета роботи.

Лістинги програм написаних самостійно і перевірка.

Висновки.

Таблиця 4.4

варіанту

Завдання

Дані для перевірки

1

(2100) · 6 + [(2102) : 20H ]→ (2103)

76H→(2100); C6→(2102)

2

65H + [(2100) · 34H] → (2101)

97Н→(2100)

3

[(2100) " (2101) : 10H]→ (2102)

BE→(2100);A1→(2101)

4

[(2100) L 25H] · (2101) < F0H → (2102)

F0H → (2103)

70Н→(2100);12Н→(2101)

5

{72H + [(2100) : (2101)]} · 15H → (2102)

F6→(2100);74Н→(2101)

6

[(2100) : (2101)] + [(2102) · (2103)]→ (2104)

D7→(2100); A4→(2101); 1F→(2102); EA→(2103)

7

(2100) : 10H + (2101) · 50H→ (2103)

19Н→(2100);05Н→(2101)

8

(2100) " (2101) + [(2102) : 15H]→ (2103)

8E→(2100);14Н→(2101); CD→(2102);

9

[(2100) : 3AH + (2101)] · 3 → (2102)

98Н→(2100); В6H→(2101)

10

(2100) · (2101) A0 → […] – 75H→ (2103)

< A0 → […] + 10H→ (2104)

F3→(2100);75Н→(2101)

11

[30H · (2100)] + [(2101)] : 2 → (2102)

30Н→(2100);74Н→(2101)

12

(2100) V [(2101) - (2102)] : 12H→ (2103)

28Н→(2100);9E→(2101); 37H→(2102);

13

(2100) · 40H - (2101) + 25H→ (2102)

47Н→(2100);34Н→(2101)

14

[(2100) – 0AH] · 15 - (2101) 50H → (2102)

< 50H → (2103)

72Н→(2100);12H→(2101)

15

[18H + (2100)] · 35Н - (2101) → (2102)

84Н→(2100);12Н→(2101)

16

{(2100) - [(2101) : (2102)]} < 0 → (2103)

> 0 → (2104)

= 0 → (2105)

D4→(2100);42H→(2101) 10H→(2102);

Продовження таблиці 4.4

17

[50H + (2100)] : 2FH → (2101)

8E→(2100)

18

[(2100) + (2101) – 15H] · (2102) → (2103)

90Н→(2100);64Н→(2101);77Н→(2102)

19

[(2100) : 30H] + [4ЕH · (2101)]→ (2102)

36Н→(2100);67Н→(2101)

20

[(2100) · (2101)] - [(2102) : 25H]→ (2103)

5C→(2100);22Н→(2101); 1F→(2102);

21

(2100) - [(2101) · (2102)] 0H → […] : 2→ (2103)

< 0H → […] · 2→ (2104)

32Н→(2100);89Н→(2101);А1→(2102)

22

[(2100) - (2101)] : 65H = 0 → (2102)

0 → (2103)

A6→(2100);4D→(2101)

23

[(2100) " (2101) + (2102)] · 1ВH → (2103)

0D→(2101);FF→(2102);E3→(2102)

24

САH : [(2100) + (2101)] → (2102)

7B→(2100);D4→(2101)

25

(2100) : (2101) · 4 → (2102)

99Н→(2100);13H→(2101)

26

(2100) · 6 + [(2102) : 20H ]→ (2103)

8CН→(2100);79Н→(2102)

27

65H + [(2100) · 34H] → (2101)

99Н→(2100)

28

[(2100) " (2101) : 10H]→ (2102)

12Н→(2100);88Н→(2101);

29

[(2100) L 25H] · (2101) < F0H → (2102)

F0H → (2103)

67Н→(2100);90Н→(2101)

30

{72H + [(2100) : (2101)]} · 15H → (2102)

84Н→(2100);12Н→(2101)

Контрольні запитання

Реалізація безумовних переходів.

Реалізація умовних переходів.

Чи використовується регістр стану при реалізації безумовних переходів?

Чи використовується регістр стану при реалізації умовних переходів?

Скласти програму для вирішення математичного рівняння, заданого викладачем.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]