Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорная техника.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
6 Мб
Скачать
☆

Иерархическая организация подпрограмм.

Для упрощения структуры программы удобно использовать иерархию подпрограмм, есть основн. прогр., из котор. вызыв. подпрограммы, котор. делят на несколько уровней:

Применение таблиц.

Таблица – обобщ. одномер. массив, эл – ты кот. могут иметь различ. длину.

  1. Таблицы адресов – эл – ми явл. 16 – разр. адреса яч. памяти.

Каждое сообщение заканчивается спец. знаком – символом конца – терминатором:

NUUL = 00000000

Нажатию любой клавиши соответствует свой код, и следовательно своя п. п.

SB Код П / п

1 00H SUBRO

2 01H SUBR1

…………………………..

1.ввод с клавиатуры данных и сравнен. последов. с кодом ( известным ) клавиши, в случае рав – ва мы определили какая клавиша нажата и переходит к п / п.

IN KEYBORD

CPI 00H; сравнение с кодом SB1

SZ SUBR 0;

CPI 01H; сравнение с кодом SB2

CZ SUBR 1;

……………

такая прогр. может быть очень громадной

2.использ. табл. адресов:

IN KEYBORD

ADD A; удвоение

MOV E, A

MVI D, 0 ; ( DE )  ( A )

LXI H, TABLE ; ( HL )  нач. адрес табл.

DAD D ; ( HL )  ( HL ) + ( DE )

MOV D, M ; ( D )  Ст. б. адреса

INX H

MOV E, M ; ( E )  Мл. б. адреса

XCHG ; ( DE )  ( HL )

PCHL ; Переход к п / п

Применение таблиц для преобразования кодов:

Двоичный код

HEX

Символ

7

6

5

4

3

2

1

0

0

0

1

1

1

1

1

1

3F

0

0

0

0

0

0

1

1

0

06

1

...................................................................

0

1

1

1

1

1

1

1

7F

8

1

0

0

0

0

0

0

0

80

,

00000000 = 00Н

; П / п преобразование двоичного кода

; Символа в 7 – сегментный код

; Вх. пар – ры рег. А – двоич. код симв.

; Вых. пар – р рег. А – 7 – сегментн. Код

CONVERT: MOV E, A

MVI D, 0; ( DE )  ( A )

LXI H, TABLECOD

DAD D ; ( HD )  ( HL ) + ( DE )

MOV A, M; чтение кода из табл.

RET

; Табл. 7 – сегмент. кодов

TABLECOD ; DB 3FH; Код “ 0 ”

DB 06H; Код “ 1 ”

………

DB 71H; Код “ F ”

  1. вычисление ф – ций с помощью таблиц:

Y = X2 x = 0, 1, …, 10

X

Y

DEC

HEX

DEC

HEX

0

00

0

00

1

01

1

01

2

02

4

04

3

03

9

09

4

04

16

10

5

05

25

19

6

06

36

24

7

07

49

31

8

08

64

40

9

09

81

51

10

0A

100

64

; П / п вычисление ф – ции Y = X2

; Вх. пар – ры: рег. С – число Х

; Вых. пар – р: рег. Е – рез – т У

KVADRAT: MVI B, 0; ( BC ) – число х

LXI H, TABLE

DAD ; ( HL )  ( HL ) + ( BC )

MOV E, M ; чтение у

RET

; Таблицы квадратов

TABLE: DB 00H, 01H, 04H

DB 09H, 10H, 19H

DB 24H, 31H, 40H

DB 51H, 64H

4.Таблицы переходов:

слож. прогр. сост. из нескольких моделей. Обычно каждый модуль содержит п / п, кот. могут вызываться из др. модулей. Это делается с помощью команды CALL Adr

JMP Adr