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

2.3.8. Қосалқы бағдарламалармен жұмыс істеу

Микропроцессорлық жүйенің негізгі жұмыс бағдарламасының құрамында одан шақырылатын бірнеше қосалқы бағдарламалар болады. Осындай бағдарламаның құрылымы мен жұмыс тәртібін қарастыру мақсатында жадының 22F0-ұяшығынан бастап, қатарлап орналастырылған жиырма төрт санға (ai) жүзгізілетін y = a0*a1 + a2*a3 +  өрнегін есептеу бағдарламасын қарастыралық:

 

 

 

 

 

 

 

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

1

2220

31

 

LXI

SP, 2300H

; SP ← 2300

2

2221

00

 

 

 

 

3

2222

23

 

 

 

 

4

2223

3A

 

LDA

22F0H

; A ← [22F0] … a0

5

2224

F0

 

 

 

 

6

2225

22

 

 

 

 

7

2226

5F

 

MOV

E, A

; E ← (A)

8

2227

3A

 

LDA

22F1H

; A ← [22F1] … a1

9

2228

F1

 

 

 

 

10

2229

22

 

 

 

 

11

222A

CD

 

CALL

2207H

; SP ← (PC), PC ← 2207

12

222B

07

 

 

 

 

13

222C

22

 

 

 

 

14

222D

7D

 

MOV

A, L

; A ← (L)

15

222E

32

 

STA

22A0

; [(22A0)] ← (A)

16

222F

A0

 

 

 

 

17

2230

22

 

 

 

 

18

2231

7C

 

MOV

A, H

; A ← (HL)

19

2232

32

 

STA

22A1

; [(22A1)] ← (A)

20

2233

A1

 

 

 

 

21

2234

22

 

 

 

 

22

2235

3A

 

LDA

22F2H

; A ← [22F2] … a2

23

2236

F2

 

 

 

 

24

2237

22

 

 

 

 

25

2238

5F

 

MOV

E, A

; E ← (A)

26

2239

3A

 

LDA

22F3H

; A ← [22F3] … a3

27

223A

F3

 

 

 

 

27

223B

22

 

 

 

 

28

223C

CD

 

CALL

2207H

; SP ← (PC), PC ← 2207

29

223D

07

 

 

 

 

30

223E

22

 

 

 

 

31

223F

3A

 

LDA

22A0H

; A ← [22A0]

32

2240

A0

 

 

 

 

33

2241

22

 

 

 

 

34

2242

4F

 

MOV

C, A

; C ← (A)

35

2243

3A

 

LDA

22A1H

; A ← [22A1]

36

2244

A1

 

 

 

 

37

2245

22

 

 

 

 

38

2246

47

 

MOV

B, A

; B ← (A)

39

2247

09

 

DAD

B

; HL ← (HL) + (BC)

40

2248

5D

 

MOV

E, L

; E ← (L)

41

2249

54

 

MOV

D, H

; D ← (H)

42

224A

0E

 

MVI

C, 14H

; C ← 1416 = 2010

43

224B

14

 

 

 

 

44

224C

21

 

LXI

H, 22F4h

; HL ← 22F4

45

224D

F4

 

 

 

 

46

224E

22

 

 

 

 

47

224F

CD

 

CALL

2144H

; SP ← (PC), PC ← 8044

48

2250

44

 

 

 

 

49

2251

21

 

 

 

 

50

2252

6F

 

MOV

L, A

; L ← (A)

51

2253

60

 

MOV

H, B

; H ← (B)

52

2254

19

 

DAD

D

; HL ← (HL) + (DE)

53

2255

FF

 

RST 7

 

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

 

Бұл бағдарлама қосалқы бағдарламалармен жұмыс істейтін болғандықтан оларға ауысу кезінде негізгі бағдарламаға қайту мүмкіндігін қамтамасыз ету үшін бағдарлама басында (1-жол) жадының нақтылы аймағы стекке бөлініп, оның түбі (SP) белгіленді.

Бірінші көбейтілетін екі сан (a0, a1) E және A регистрлеріне енгізіліп (1…8-жолдар), оларды көбейту үшін қосалқы бағдарлама (9-бағдарлама) шақырылып (11-жол), сол арқылы жүзеге асырылады да, алынған екібайтты нәтиже жады ұяшықтарына уақытша сақтауға жіберіледі (14…19-жолдар). Сосын келесі екі сан (a2, a3) E және A регистрлеріне енгізіліп (22…26-жолдар), олар да қосалқы бағдарлама арқылы көбейтіледі де (28-жол), екібайтты нәтиже HL  регистрлік жұбында қалды. Бұдан кейін, жадыда уақытша сақталған алдыңғы көбейтінді BC регистрлік жұбына енгізіліп (31…38-жолдар), DAD командасы арқылы екі көбейтіндінің қосындысы анықталады да (39-жол), бұл нәтиже DE регистрлік жұбына уақытша сақтауға жіберіледі (40-, 41-жолдар). Келесі кезеңде қосылатын сандардың саны (1416 = 2010 ) С регистріне (42-жол), бірінші санның адресі, бұл жерде жанама сілтеу адресінің регистрі ретінде пайдаланылатын, HL регистрлік жұбына енгізіліп (44-жол), көп санды қосуға арналған қосалқы бағдарлама (3-бағдарлама) шақырылады (47-жол). Бұл кезде алынған BC регистрлік жұбындағы нәтиже  HL регистрлік жұбына көшіріліп (50-, 51-жолдар), оған алдыңғы DE регистрлік жұбындағы екі көбейтіндінің қосындысы қосылып (52-жол), ақырғы нәтиже алынады.

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