Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TsUiMP_lektsia.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
246.44 Кб
Скачать

2.3.3. Екібайтты сандарды қосу бағдарламасы

Алдыңғы бағдарламалар бірбайтты (яғни, сегізразрядты екілік кодымен суреттелген, ондық мәні 255-тен аспайтын) сандарды қосуға ғана жарайды. Енді екібайтты (яғни, оналтыразрядты екілік кодымен суреттелген) сандарды қосу мүмкіндігін қарастырайық. Жадының 22A0-ұяшығынан бастап жұптап орналастырылған (бірінші байты кіші адрес бойынша, екінші байты келесі адреске) 25 санды қосу бағдарламасын келесі түрде құруға болады:

 

 

 

 

 

 

 

; 4-бағдарлама

1

2160

21

 

LXI

2300H

; HL ← 22A0

2

2161

A0

 

 

 

 

3

2162

22

 

 

 

 

4

2163

0E

 

MVI

C, 19H

; C ← 1916 = 2510

5

2164

97

 

SUB

A

; A ← 00

6

2165

5F

 

MOV

E, A

; B ← 00

7

2166

57

 

MOV

D, A

; B ← 00

8

2167

86

K3:

ADD

M

; A ← [(HL)]

9

2168

5F

 

MOV

E, A

; E ← (A)

10

2169

7A

 

MOV

A, D

; A ← (D)

11

216A

23

 

INX

H

; HL ← (HL) + 1

12

216B

8E

 

ADC

M

; A ← (A) + [(HL)] + (TC)

13

216C

57

 

MOV

D, A

; D ← (E)

14

216D

0D

 

DCR

C

; C ← (C) – 1

15

216E

CA

 

JZ

K4

; TZ = 1: PC ← 2175

16

216F

76

 

 

 

 

17

2170

80

 

 

 

 

18

2171

7B

 

MOV

A, E

; A ← (E)

19

2171

23

 

INX

H

; HL ← (HL) + 1

20

2172

C3

 

JMP

K3

; PC ← 2167

21

2173

67

 

 

 

 

22

2174

21

 

 

 

 

23

2175

23

K4:

INX

H

; HL ← (HL) + 1

24

2176

73

 

MOV

M, E

; [(HL)] ← (E)

25

2177

23

 

INX

H

; HL ← (HL) + 1

26

2178

72

 

MOV

M, D

; [(HL)] ← (D)

27

2179

FF

 

RST 7

 

;Басқару бағдарламасына қайту

 

Бағдарламаның дайындық кезеңінде сілтеу регистрлеріне (яғни, HL жұбына) жадының жұмысқа қажетті бірінші ұяшығының адресі жазылды (1-жол), сосын қосылатын операндтар саны микропроцессордың С регистріне енгізілді (4-жол), бұдан кейін бірбайтты командалар арқылы аккумулятор менD және E регистрлері тазартылды (5-, 6-, 7-жолдар). Микропроцессордың D және E регистрлері жүргізілген қосу операцияларының нәтижелерін жинақтауға пайдаланылады: оның кіші байты E регистрінде, үлкен байты D регистрінде жиналады.

Бағдарламаның негізгі өңдеу жұмысын атқару бөлігі (қызмет кезеңі) 8...13 жолдар арасында орналасқан. Бұнда жанама сілтеу регистріндегі (яғни, HL жұбындағы) адрес арқылы алынған операнд аккумуляторға қосылады да (8-жол), алынған нәтиже E регистріне жіберіледі (9-жол). Бұдан кейін аккумуляторға нәтиже жинақталымының D регистріндегі үлкен байты әкелініп (10-жол), ұлғайтылған адрес (11-жол) арқылы операндтың екінші байты оған ADC командасымен қосылады (12-жол). Бұл командаға сәйкесті қосу операциясының орындалуы кезінде қосылатын сандармен қатар алдыңғы операциядан шыққан тасымал да (TC) ескеріледі. Бұл нәтиже D регистріне жіберіледі (13-жол). Сосын (тексерім кезеңінде) операнд санауышы (C регистрі) бірге кемітіліп (14-жол), операндтардың біткен-бітпегендігі тексеріледі де (15-жол), олардың біткен жағдайында бағдарлама нәтижені шығару кезеңіне ауыстырылады, ал олардың бітпеген жағдайында қажетті дайындалым арқылы (яғни аккумуляторға нәтиже жинақталымының кіші байты әкелініп) (18-жол), адрес ұлғайтылғаннан (19-жол) кейін бағдарламаның негізгі жұмысы (яғни, қосу операциялары) әрі қарай жалғастырылады (20-жол).

Бұл бағдарламада алынған және D мен C регистрлерінде жинақталған екібайтты нәтиже жадының бастапқы деректерден кейінгі ұяшықтарына байт-байтымен шығарылады (23…26 жолдар).

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