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

2.3.6. Регистр жұптарымен жұмыс істеу

Жоғарыда екібайтты сандарды қосу тасымалсыз және тасымалды қосу командаларын (ADD және ADC) тізбелеп пайдалану арқылы жүзеге асырылғанды (4-бағдарлама). Intel 8085 микропроцессорының командалар жүйесінде екібайтты сандарды тікелей қосушы командалар да бар, олар – DAD мнемоникасымен суреттелетін командалар. Жадының 22D0-ұяшығынан бастап жұптап орналастырылған (бірінші байты кіші адрес бойынша, екінші байты келесі адреске) үш санды DAD командалары арқылы қосылып, алынған қосындыны екіге көбейту бағдарламасын келесі түрде құруға болады:

 

 

 

 

 

 

 

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

1

21С0

3A

 

LDA

22D0H

; A ← [22D0]

2

21С1

D0

 

 

 

 

3

21С2

22

 

 

 

 

4

21С3

6F

 

MOV

L, A

; L ← (A)

5

21С4

3A

 

LDA

22D1H

; A ← [22D1]

6

21С5

D1

 

 

 

 

7

21С6

22

 

 

 

 

8

21С7

67

 

MOV

H, A

; H ← (A)

9

21С8

3A

 

LDA

22D2H

; A ← [22D2]

10

21С9

D2

 

 

 

 

11

21СA

22

 

 

 

 

12

21СB

4F

 

MOV

C, A

; C ← (A)

13

21СC

3A

 

LDA

22D3H

; A ← [22D3]

14

21СD

D3

 

 

 

 

15

21СE

22

 

 

 

 

16

21СF

47

 

MOV

B, A

; B ← (A)

17

21D0

3A

 

LDA

22D4H

; A ← [22D4]

18

21D1

D4

 

 

 

 

19

21D2

22

 

 

 

 

20

21D3

5F

 

MOV

E, A

; E ← (A)

21

21D4

3A

 

LDA

22D5H

; A ← [22D5]

22

21D5

D5

 

 

 

 

23

21D6

22

 

 

 

 

24

21D7

57

 

MOV

D, A

; D ← (A)

25

21D8

09

 

DAD

B

; HL ← (HL) + (BC)

26

21D9

19

 

DAD

D

; HL ← (HL) + (DE)

27

21DA

29

 

DAD

H

; HL ← (HL) + (HL)

27

21DB

7D

 

MOV

A, L

; A ← (L)

28

21DC

32

 

STA

22D6H

; [(22D6)] ← (A)

29

21DD

D6

 

 

 

 

30

21DE

22

 

 

 

 

31

21DF

7C

 

MOV

A, H

; A ← (HL)

32

21E0

32

 

STA

22D7H

; [(22D7)] ← (A)

33

21E1

D7

 

 

 

 

34

21E2

22

 

 

 

 

35

21E3

FF

 

RST 7

 

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

 

Бағдарламаның дайындық кезеңінде (1 – 24-жолдар) жадыдағы екібайтты үш сан аккумулятор арқылы HL, BC және DE регистрлік жұптарына көшіріледі.

Бағдарламаның жұмыс кезеңі, яғни негізгі операциялардың орындалуы үш командамен ғана орындалады. Бұнда HL жұбы оналтыразрядты аккумумулятор ретінде пайдаланылып, DAD командасы арқылы оған алдымен BC жұбындағы (25-жол), сосын DE жұбындағы (26-жол) сан қосылады. Жұмыс кезеңінің соңғы командасы HL жұбын өзіне-өзін қосу арқылы екіге көбейту операциясы орындалады (27-жол).

Бағдарламаның ақырғы шығарым кезеңінде HL жұбындағы нәтиже аккумулятор арқылы жадыға шығарылады (28, 32-жолдар).

Бұл бағдарламаның ұзаққа созылған дайындық кезеңі мен шығарым кезеңін қысқарту үшін стекті пайдалану аса ыңғайлы келеді. Алдыңғы бағдарламаның осы жолмен өзгертілген түрін келесі түрде құруға болады:

 

 

 

 

 

 

 

 

 

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

1

21F0

3A

 

LXI

SP, 22D0H

; SP ← 22D0

2

21F1

D0

 

 

 

 

3

21F2

22

 

 

 

 

4

21F3

E1

 

POP

H

; HL ← [(SP)],[(SP) + 1],

; SP ← (SP) + 2

5

21F4

C1

 

POP

B

; HL ← [(SP)],[(SP) + 1],

; SP ← (SP) + 2

6

21F5

D1

 

POP

D

; HL ← [(SP)],[(SP) + 1],

; SP ← (SP) + 2

7

21F6

09

 

DAD

B

; HL ← (HL) + (BC)

8

21F7

19

 

DAD

D

; HL ← (HL) + (DE)

9

21F8

29

 

DAD

H

; HL ← (HL) + (HL)

10

21FA

00

 

NOP

 

; Бос операция

11

21FB

25

 

PUSH

H

; SP ← (SP) – 2;

[(SP)];[(SP) + 1]← (HL)

12

21FC

FF

 

RST 7

 

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

13

21FD

C9

 

RET

 

; PC ← [(SP)]

 

Бұл бағдарламада LXI SP командасы арқылы стектің төбесі белгіленді де (1-жол), одан кейін POP командаларымен сәйкесті регистр жұптарына (HL, BC, DE) жадыда орналасқан екібайтты сандар енгізіліп (4…6-жолдар), алдыңғы бағдарламадағыдай қосу операциялары орындалды (7…9-жолдар). Орындалған қосу операцияларының HL регистрлік жұбындағы нәтижесі жадыға PUSH командасымен шығарылады (11-жол). Нәтиженің HL регистрлік жұбында қалдырылуы қажет жағдайында NOP командасының орнына RST 7 немесе RET командасы қойылу керек (12, 13-жолдағы).

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