Коммерциялық емес акционерлік қоғамы

АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС УНИВЕРСИТЕТІ

«Электроника» кафедрасы

 

 

МИКРОПРОЦЕССОРЛЫҚ ТЕХНИКА НЕГІЗДЕРІ

3-бөлім 

5B070300 – Информациялық жүйелер

мамандығының барлық оқу түрінің студенттерінің

зертханалық жұмыстарды орындауына арналған әдістемелік  нұсқаулар

 

 

Алматы 2011

 

ҚҰРАСТЫРУШЫ: О.Т. Шанаев. Микропроцессорлық техника негіздері. 3-бөлім. 5B070300 – Информациялық жүйелер мамандығының барлық оқу түрінің студенттерінің “Микропроцессорлық техника негіздері” пәні бойынша зертханалық жұмыстарды орындауына арналған әдістемелік  нұсқаулар. – Алматы: АЭжБУ, 2011. – 30 б. 

 

Ұсынылып отырған әдістемелік нұсқамада микропроцессорлық жүйелердің бағдарламалық бөлігіне, яғни олардың құрылымдық және іскерлік блоктарының іс жүзінде қойылған мәселені шешу жолындағы өзара әрекеттесуін қамтамасыз ету принциптерін оқуға арналған зертханалық жұмыстар келтірілген. Сонымен, бұл жұмыстар студенттердің микропроцессорлық жүйелердің жұмысын ассемблер тілінде бағдарлау негіздерін игеруіне бағытталған.

Зертханалық жұмыстардың жұмыс тапсырмаларының орындалуы екі кезеңмен жүзеге асырылады: алдымен – виртуалды түрде (бағдарламалық симуляторда), сосын – іс жүзіндегі құрылғыда (зертханалық құралымда). бағдарламалық симуляторда. Алуан түрлі іскерлік элементтерімен қамтылған және олардың іс-әрекеттерінің көрнекілігімен көзге түсетін бағдарламалық симулятор оқушылардың құрамы жағынан түр-түрлі жүйе моделдерін құруына және олардың жұмысын зерттеуіне кең мүмкіндік береді, демек, олардың оқу материалын толық игеруіне жағдай жасайды. Іс жүзіндегі құрылғыдағы жұмыс, бір жағынан, студенттердің алдыңғы кезеңде алған теориялық білімінің түбегейлі тиянақталуына мүмкіндік туғызады, ал екінші жағынан, олардың болашақтағы мамандығы бойынша жұмысына қажетті іскерлік қабілеттерінің қалыптастырылуына әсер етеді.

Зертханалық жұмыстарға берілген әдістемелік нұсқаулар 5B070300 – Информациялық жүйелер мамандығының барлық оқу түрінің студенттеріне арналған. Бұл нұсқауларды өзге мамандықтарға жоспарланған осы сияқты пәндердің сәйкесті тақырыптарынан зертханалық жұмыстар ұйымдастыру үшін де пайдалануға болады.

Без. 3, кест. 3, әдеб. көрсеткіші. – 10 атау.

 

Пікір беруші:   физ-мат. ғыл. д-р., проф. С. Б. Бимурзаев           

 

“Алматы энергетика және байланыс университеті” коммерциялық емес акционерлік қоғамының 2011 ж. басылым жоспары бойынша басылады.

 

© “Алматы энергетика және байланыс университеті КЕАҚ, 2011 ж.

 

Кіріспе

Микропроцессорлық жүйелердің құрылым принциптері мен іскерлік негіздерін оқып үйренуге арналған Микропроцессорлық техникапәні өзара байланысты және өзара толтырымды екі бөліктен тұрады: аппараттық бөлігі (hardware) және бағдарламалық бөлігі (software). Демек, пәнді толық игеру үшін оның аппараттық бөлігін де, бағдарламалық бөлігін де игеру керек болады.

Алдыңғы әдістемелік нұсқамаларда [1, 2] микропроцессорлық жүйелердің аппараттық бөлігіне, яғни микропроцессорлық жүйелердің құралым блоктарының құрылымдық принциптерін және олардың істеу сипаттамаларын оқуға, арналған зертханалық жұмыстар келтірілген.

Ұсынылып отырған әдістемелік нұсқамада микропроцессорлық жүйелердің бағдарламалық бөлігіне, яғни олардың құрылымдық және іскерлік блоктарының іс жүзінде қойылған мәселені шешу жолындағы өзара әрекеттесуін қамтамасыз ету принциптерін оқуға арналған зертханалық жұмыстар келтірілген. Сонымен, бұл жұмыстар студенттердің микропроцессорлық жүйелердің жұмысын ассемблер тілінде бағдарлау негіздерін игеруіне бағытталған.

Зертханалық жұмыстардың жұмыс тапсырмаларының орындалуы екі кезеңмен жүзеге асырылады: алдымен – виртуалды түрде (бағдарламалық симуляторда), сосыніс жүзіндегі құрылғыда (зертханалық құралымда). бағдарламалық симуляторда. Алуан түрлі іскерлік элементтерімен қамтылған және олардың іс-әрекеттерінің көрнекілігімен көзге түсетін бағдарламалық симулятор оқушылардың құрамы жағынан түр-түрлі жүйе моделдерін құруына және олардың жұмысын зерттеуіне кең мүмкіндік береді, демек, олардың оқу материалын толық игеруіне жағдай жасайды. Іс жүзіндегі құрылғыдағы жұмыс, бір жағынан, студенттердің алдыңғы кезеңде алған теориялық білімінің түбегейлі тиянақталуына мүмкіндік туғызады, ал екінші жағынан, олардың болашақтағы мамандығы бойынша жұмысына қажетті іскерлік қабілеттерінің қалыптастырылуына әсер етеді.

Зертханалық жұмыстардың ұсынылған ұйымдастырылу әдістемесі автордың көптеген жылдық сабақ жүргізу барысында тексеріліп, уақыт тәжірибесінен өткен. Оқу зерттелімдерінің бірнеше түрде ұйымдастырылуы студенттердің цифрлық жүйелердің оқылатын элементтері мен құрылғылары жөніндегі игерген білімдерінің тереңділігін қамтамасыз етуге және олардың моделдік және іс жүзіндегі тәжірибелер жүргізуіне қажетті іскерлік қабілеттерінің қалыптасуына мүмкіндікті ұлғайтады, ал бұлар, ақырында, зертханалық сабақтардың алдына қойылған мақсаттарға толығымен жеткізеді.

 

1  Қажетті мәліметтер мен жалпы әдістемелік ұсынылымдар

Зертханалық сабақтарға арналған жұмыс тапсырмаларының орындалуы екі кезеңмен жүзеге асырылады: виртуалды түрде (бағдарламалық симуляторда) және іс жүзіндегі құрылғыда (зертханалық құралымда). Жұмыстың виртуалды да, іс жүзіндегі де бөліктерінің де негізі – Intel 8085 микропроцессоры.

1.1 Intel 8085 микропроцессорының командалар жүйесі

1.1 кестесінде представлены команды Intel 8085 микропроцессорының командалар жүйесі келтірілген. Кестенің бірінші бағанасында командалардың мнемоникасы (шартты жазылымы) келтірілген, бұнда келесі белгіленімдер пайдаланылған: r – регистрлер, rp – регистр жұптары, М – жанама сілтеу кезіндегі жады ұяшығы, b3b2 – команданың екінші және үшінші байттары, port – перифериялық құрылғының адресі.

Екінші бағанада команда кодтары (бірінші байты) келтірілген: микропроцессор регистрінің адресін көсету қажеттілігінде – сегізразрядты екілік сан түрінде, ал қалған жағдайларда – оналтылық санауыш түрінде. Регистрлердің жалпылама адрестерінің разрядтары үшін келесі белгілемелер алынған: дерек көзіне (Data Source) – S символы, дерек қабылдағышына (Data Destination) – D символы, ал регистр жұптарына (Pair) – P символы.

Үшінші бағанада сәйкесті команданың орындалуынан кейін қойылатын тулар жөніндегі мәліметтер келтірілген: “–” символы – ешқандай ту көтетілмейді, “+” символы – тулардың барлығы да көтеріледі, “+” – тасымал туынан басқа тулардың барлығы көтеріледі, “С” – тасымал туы ғана көтеріледі. Бұл тулар (S – терістік, Z – нөлдік, AC – ондық тасымал, P – жұптық, С – тасымал) ту регистрінде қалыптастырылады:

7

6

5

4

3

2

1

0

S

Z

0

AC

0

P

1

C

 

 

Келесі үш бағанада команда байттарының саны мен оның орындалу уақытына сәйкесті такт саны мен цикл саны келтірілген.

Соңғы бағанада командаларға түсініктеме келтірілген.

1.1 К е с т е

Мнемокод

Код

Ту

Байт

Такт

Цикл

Түсініктеме

1

2

3

4

5

6

7

Дерек тарату командалары

MOV r1, r2

01DDDSSS

1

4

1

r1 ← (r2)

MOV M, r

01110SSS

1

7

2

[(HL)] ← (r)

MOV r, M

01DDD110

1

7

2

(r) ← [(HL)]

MVI r, b2

00 DDD110

2

7

2

r1 ← b2

MVI M, b2

36

2

10

3

[(HL)] ← b2

LXI rpb3b2

00PP0001

3

10

3

rp ← b3b2

LDA b3b2

3A

3

13

4

A ← b3b2

1.1 К е с т е (жалғасы)

1

2

3

4

5

6

7

STA b3b2

32

3

13

4

b3b2 ← (A)

LHLD b3b2

2A

3

16

5

HL ← b3b2

SHLD b3b2

22

3

16

5

b3b2 ← (HL)

LDAX rp

00PP0010

1

7

2

A ← [(rp)]

STAX rp

00PP1010

1

7

2

[(rp)] ← (A)

XCHG

EB

1

4

1

(HL) ↔ (rp)

Арифметикалық және логикалық операциялардың командалары

ADD r

10000SSS

+

1

4

1

A ← (A) + (r)

ADD M

86

+

1

7

2

A ← (A) + [(HL)]

ADI b2

C6

+

2

7

2

A ← (A) + b2

ADC r

10001SSS

+

1

4

1

A ← (A) + (r) + (TC)

ADC M

8E

+

1

7

2

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

ACI b2

CE

+

2

7

2

A ← (A) + b2 + (TC)

SUB r

10010SSS

+

1

4

1

A ← (A) – (r)

SUB M

96

+

1

7

2

A ← (A) – [(HL)]

SUI b2

D6

+

1

7

2

A ← (A) – b2

SBB r

10011SSS

+

1

4

1

A ← (A) – (r) – (TC)

SBB M

9E

+

1

7

2

A ← (A) – [(HL)] – (TC)

SBI b2

DE

+

2

7

2

A ← (A) – b2 – (TC)

INR r

00DDD100

(+)

1

4

1

r ← (r) + 1

INR M

34

(+)

1

10

3

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

DCR r

00DDD101

(+)

1

4

1

r ← (r) – 1

DCR M

35

(+)

1

10

3

[(HL)] ← [(HL)] – 1

INX rp

00PP0011

1

6

1

rp ← (rp) + 1

DCX rp

00PP1011

1

6

1

rp ← (rp) – 1

DAD rp

00PP1001

1

10

3

[(HL)] ← [(HL)] + (rp)

DAA

27

+

1

4

1

A ← (A)2-10

ANA r

10100SSS

+

1

4

1

A ← (A) ۸ (r)

ANA M

A6

+

1

4

1

A ← (A) ۸ [(HL)]

ANI b2

E6

+

2

7

2

A ← (A) ۸ b2

XRA r

10101SSS

+

1

4

1

A ← (A)  (r)

XRA M

AE

+

1

7

2

A ← (A)  [(HL)]

XRI b2

EE

+

2

7

2

A ← (A)  b2

ORA r

10110SSS

+

1

7

2

A ← (A) ۷ (r)

ORA M

B6

+

1

7

2

A ← (A) ۷ [(HL)]

ORI b2

F6

+

2

7

2

A ← (A) ۷ b2

CMP r

10111SSS

+

1

4

1

 (A) – (r)

CMP M

BE

+

1

4

1

 (A) – [(HL)]

CPI b2

FE

+

2

7

2

 (A) – b2

CMA

2F

1

4

1

 A ←  

STC

37

C

1

4

1

 TC ← 1

CMC

3F

C

1

4

1

 TC

RLC

07

C

1

4

1

 A7-1 ← (A6-0), A0 ← (TC), TC←A7

RRC

0F

C

1

4

1

 A6-0 ← (A7-1), A7 ← (TC), TC←A0

1.1 К е с т е (жалғасы)

1

2

3

4

5

6

7

RAL

17

C

1

4

1

 A7-1 ← (A6-0), A0 ← (A7), TCA7

RAR

1F

C

1

4

1

 A6-0 ← (A7-1), A7 ← (A0), TCA0

Бағдарламаның орындалу бағытын басқару командалары

JMP b3b2

C3

3

10

3

PC ← b3b2

Jcond b3b2

11CCCC01

3

10

3

Cond = 1: PC ← b3b2

CALL b3b2

CD

3

18

5

SP ← (PC), PC ← b3b2

Ccond b3b2

11CCC100

3

2/5

9/18

Cond = 1:

SP ← (PC), PC ← b3b2

RET

C9

3

10

3

PC ← [(SP)]

Rcond

11CCC100

3

17/11

5/3

Cond = 1: PC ← [(SP)]

RST n

111nnn111

1

11

3

PC ← 8n

SPHL

E9

1

6

1

SP ← (HL)

Арнайы командалар

PUSH rp

11PP0101

1

11

3

SP ← (SP) – 2;

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

PUSH PSW

F5

1

11

3

SP ← (SP) – 2;

[(SP)],[(SP) + 1]←(A),(F)

POP rp

11PP0001

1

10

3

rp ← [(SP)],[(SP) + 1],

SP ← (SP) + 2

POP PSW

F1

1

10

3

F,A ← [(SP)],[(SP) + 1];

SP ← (SP) + 2

XTHL

E3

1

18

5

(HL) ↔ [(SP)],[(SP) + 1]

PCHL

F9

1

5

1

PC ← (HL)

IN port

DB

2

10

3

A ← (port)

OUT port

D3

2

10

3

port ← (A)

EI

FB

1

4

1

Үзіліске рұқсат

ВI

F3

1

4

1

Үзіліске тиым

HLT

76

1

7

2

Тоқтатылым

NOP

00

1

4

1

Операция жоқ

RIM

20

1

4

1

Үзіліс маскасын оқу

SIM

30

1

4

1

Үзіліс маскасын қою

 

Intel 8085 микропроцессорының кез келген командасының кодын 1.2 кестедегі команданың орналасқан орнының горизонталь және вертикаль аталымдарын тізбелеп жазу арқылы жеңіл анықтауға болады.

 

1.2 К е с т е

 

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 

0

NOP

LXI

B

STAX

B

INX

B

INR

B

DCR

B

MVI

B

RLC

 

DAD

B

LDAX

B

DCX

B

INR

C

DCR

C

MVI

C

RRC

0

1

 

LXI

D

STAX

D

INX

D

INR

D

DCR

D

MVI

D

RAL

 

DAD

D

LDAX

D

DCX

D

INR

E

DCR

E

MVI

E

RAR

1

2

RIM

LXI

H

SHLD

INX

H

INR

H

DCR

H

MVI

H

DAA

 

DAD

H

LHLD

DCX

H

INR

L

DCR

L

MVI

L

CMA

2

3

SIM

LXI

SP

STA

INX

SP

INR

M

DCR

M

MVI

M

STC

 

DAD

SP

LDA

DCX

SP

INR

A

DCR

A

MVI

A

CMC

3

4

MOV

B,B

MOV

B,C

MOV

B,D

MOV

B,E

MOV

B,H

MOV

B,L

MOV

B,M

MOV

B,A

MOV

C,B

MOV

C,C

MOV

C,D

MOV

C,E

MOV

C,H

MOV

C,L

MOV

C,M

MOV

C,A

4

5

MOV

D,B

MOV

D,C

MOV

D,D

MOV

D,E

MOV

D,H

MOV

D,L

MOV

D,M

MOV

D,A

MOV

E,B

MOV

E,C

MOV

E,D

MOV

E,E

MOV

E,H

MOV

E,L

MOV

E,M

MOV

E,A

5

6

MOV

H,B

MOV

H,C

MOV

H,D

MOV

H,E

MOV

H,H

MOV

H,L

MOV

H,M

MOV

H,A

MOV

L,B

MOV

L,C

MOV

L,D

MOV

L,E

MOV

L,H

MOV

L,L

MOV

L,M

MOV

L,A

6

7

MOV

M,B

MOV

M,C

MOV

M,D

MOV

M,E

MOV

M,H

MOV

M,L

HLT

MOV

M,A

MOV

A,B

MOV

A,C

MOV

A,D

MOV

A,E

MOV

A,H

MOV

A,L

MOV

A,M

MOV

A,A

7

8

ADD

B

ADD

C

ADD

D

ADD

E

ADD

H

ADD

L

ADD

M

ADD

A

ADC

B

ADC

C

ADC

D

ADC

E

ADC

H

ADC

L

ADC

M

ADC

A

8

9

SUB

B

SUB

C

SUB

D

SUB

E

SUB

H

SUB

L

SUB

M

SUB

A

SBB

B

SBB

C

SBB

D

SBB

E

SBB

H

SBB

L

SBB

M

SBB

A

9

A

ANA

B

ANA

C

ANA

D

ANA

E

ANA

H

ANA

L

ANA

M

ANA

A

XRA

B

XRA

C

XRA

D

XRA

E

XRA

H

XRA

L

XRA

M

XRA

A

A

B

ORA

B

ORA

C

ORA

D

ORA

E

ORA

H

ORA

L

ORA

M

ORA

A

CMP

B

CMP

C

CMP

D

CMP

E

CMP

H

CMP

L

CMP

M

CMP

A

B

C

RNZ

POP

B

JNZ

JMP

CNZ

PUSH

B

ADI

RST

0

RZ

RET

JZ

 

CZ

CALL

ACI

RST

1

C

D

RNC

POP

D

JNC

OUT

CNC

PUSH

D

SUI

RST

2

RC

 

JC

IN

CC

 

SBI

RST

3

D

E

RPO

POP

H

JPO

XTHL

CPO

PUSH

H

ANI

RST

4

RPE

PCHL

JPE

XCHG

CPE

 

XRI

RST

5

E

F

RP

POP

PSW

JP

DI

CP

PUSH

PSW

ORI

RST

6

RM

SPHL

JM

EI

CM

 

CPI

RST

7

F

 

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 

 

1.2 Жұмыс орнының құрал-жабдықтары:

-       компьютер;

-       8085 Simulator IDE бағдарламасы;

-       Degem Systems фирмасының PU-2000 зертханалық құралымы;

-       алмалы-салмалы EB-151 және EB-152 тақташалары;

-       жалғама сымдар мен жалғамыштар.

1.3 Жұмыс орнының суреттемесі

Жұмыстың виртуалды бөлімін орындау үшін компьютерге 8085 Simulator IDE бағдарламасын орналастыру керек. Симулятордың құрылымы мен оның іскерлік мүмкіндіктерінің пайдаланылуы зертханалық жұмыстардың орындалу барысында кездесу ретімен суреттеледі. Ал қазір жұмыстың зертханалық құралымда орындалу тәртібін қысқаша суреттей кетелік.

Зертханалық құралымдағы микропроцессорлық жүйенің (микрокомпьютердің) орталық буыны – Intel 8085 микропроцессоры (МП), ол бағдарлама арқылы анықталған мәселенің шешілуін (орындалуын) жүзеге асырады және  онымен қатар осы мәселені шешу кезіндегі МПЖ модулдерінің сәйкесті жұмыс істеуін (нақты айтқанда, деректердің әртүрлі модулдер арасында жіберілуін, арифметикалық және логикалық операциялардың орындалуын) басқарады.

Жүйе жадысы екі микросұлбамен жүзеге асырылған:

-       басқару бағдарламасын сақтауға пайдаланылатын, 2764 (EPROM, Erasable Programmable Read-Only Memory) микросұлбасы;

-       жұмыс бағдарламасы мен деректерді сақтауға пайдаланылатын, 6116 (RAM, Random Access Memory) микросұлбасы. Жұмыс жадысының бағдарлама жазуға арналған аймағы 2100H адресінен басталады.

Енгізу порты ретінде сегіз ауыстырғыш, ал шығыс порты ретінде сегіз жарық диоды пайдаланылады.

Жүйенің көрсетілген бөліктемелері EB-151 орналастырылған.

EB-152 тақташасында келесі бөліктемелер орналастырылған:

-       жадыға жұмыс бағдарламасы мен оның жұмысына қажетті деректер енгізуге пайдаланылатын, түймежинам;

-       микропроцессор регистрлері мен жады ұяшықтарындағы деректерді көрсетуге, яғни оларды оқуға пайдаланылатын, дисплей.

Жұмыс орнын, яғни жүйені зертханалық жұмысты орындауға дайындау келесі тәртіппен жүзеге асырылады:

-       EB-151 тақташасын зертханалық құралымға, ал EB-152 тақташасын  оның сол жақ жанына орналастыр. Келесі жалғамалар арқылы EB-151 және EB-152 тақташаларын қоректендірілу жағынан біріктір және олардың өзара дерек жіберу мүмкіндігін қамтамасыз ет:

 

PU-2000

 

EB-152

+12 V

+12 V

12 V

12 V

+5 V

+5 V

GND

GND

RX

TX

TX

RX

 

-       EB-152 тақташасындағы S1 (SIG.ANAL/KB+DISP) ауыстырғышын KB+DISP жағдайына қой (немесе оған көзіңді жеткіз). Құралымдағы қорек көзін қосып, EB-152 тақташасындағы дисплейдің EBHt көрсетіп тұрғанына көзіңді жеткіз;

-       EB-151 тақташасындағы микрокомпьютерді ондағы Resetтүймесін тез басу арқылы қайта қос. Жалғанымдардың дұрыс қойылғанында При EB-152 тақташасындағы дисплей “Eb-151” көрсетіп тұру керек, ал бұның өзгеше жағдайында жалғанымдардың дұрыстығын тексеру керек.

Оқу бағдарламасын (яғни, пайдаланушының дайындаған бағдарлама-сын) жұмыс жадысына енгізу үшін MEM түймесін басып, одан кейін дисплейдің адрестік алқабына жадының бірінші ұяшығының адресін енгіз. Дисплейдің деректік алқабына қажетті код мәнін енгіз де, ENTER түймесін бас, бұл кезде жады ұяшығының адресі бірге ұлғаяды да, келесі деректі (операция кодын немесе операнд мәнін) енгізуге мүмкіндік беріледі. Және с.с.

Жады ұяшықтарының құрамын тексеру осы сияқты жүзеге асырылады, яғни MEM түймесін басып, одан кейін дисплейдің адрестік алқабына жадының тексерілетін бірінші ұяшығының адресін енгізіледі. Бұдан әрі ENTER түймесін басу арқылы ұяшық адрестерін тібелі түрде өзгерте отырып, олардың құрамын оқуға болады. Қажетті жағдайда, әрине, оларды өзгертуге болады.

Микропроцессордың регистрлерінің құрамын тексеру үшін REG түймесін басып, сосын регистр нөмірін енгізу керек, одан кейін дисплейдің деректік аймағында көрсетілген регистрдің құрамы көрсетіледі. Осы сияқты өзге регистрлердің де құрамын қарап шығуға болады. Тексерілетін егистрлердің нөмірін ENTER түймесін басу арқылы тізбелеп те өзгертуге болады (1.3 кестені қара).

1.3 К е с т е

Регистр нөмірі

Регистрлер

Регистрдің суреттемесі

1

A

Аккумулятор

2

B

Регистр B

3

C

Регистр C

4

D

Регистр D

5

E

Регистр E

6

H

Регистр H

7

L

Регистр L

8

F

Ту регистрі

9

I

Үзіліс жасырмасы

A

PC

Бағдарлама санауышы

B

SP

Стек көрсеткіші

C

HL

Жады көрсеткіші

D

AF

Процессордың ахуал сөзі

E

BC

BC регистрлік жұбы

F

DE

DE регистрлік жұбы

 

Бағдарламаны іске қосу GO түймесін басып, одан кейін бағдарламаның бастапқы адресін енгізіп, сосын ENTER түймесін басу арқылы жүзеге асырылады.

 


2 Зертханалық жұмыс. Дерек жіберілімдері

Жұмыс мақсаты:

-        Intel 8085 микропроцессорының негізіндегі микропроцессорлық жүйенің (МПЖ) құрылымымен танысу;

-       Intel 8085 микропроцессорының командалар жүйесіндегі әртүрлі сілтемелі дерек жіберім командаларының іс-әрекеттерімен танысу;

-       Intel 8085 микропроцессорының негізіндегі бағдарламалық МПЖ симуляторының қызмет мүмкіндіктерін пайдаланып үйрену;

-       Ассемблер тілінде бағдарлауды үйренуге арналған зертханалық құралыммен жұмыс істеу тәртібін игеру.

2.1 Жұмыс тапсырмасы

2.1.1 C:\Program Files\8085 Simulator IDE ішінде студент туралы жеткілікті мәлімет (топ нөмірі, фамилиясы мен аты) берілген аталыммен бума (папка) ашып, алда құрылатын файлдардың барлығын да сонда сақтау керек.

2.1.2 Симулятор бағдарламасын  әлпеттемесімен аш та, ашылған симулятор терезесінде (2.1 суретті қара) Tools/Assembler таңдап, кезекті Assembler терезесінде File/New таңда.

2.1 Сурет

2.1.3 Бағыттаманы Tab түймесімен ығыстырып, төмендегі бағдарламаның бірінші командасын енгіз де, Enter түймесін бас. Осы сияқты бағдарламаның келесі командаларын да енгіз. Белгілер жол басында жазылады. Жазылған бағдарламаны Transfers (Жіберілімдер) аталымымен сақта (File/Save As). Нәтижесінде asm кеңейтілімді файл құрылады.

 

         ;WRITING to MEMORIES

SW:   ;Single Writing

         MVI A,0FH;Direct Loading

         STA 00D0H;Direct Writing

         NOP

 

S1:     ;Serial Writing-1

         MVI C,07h;Data Counter

         LXI D,00D0H;Initial Address

         MVI A,00H;Cleaning

T0:    ADI 13H;Expansion Step

         INX D;Address Increment

         STAX D;Indirect Writing

         DCR C;Monitoring of the Data Counter

         JNZ T0;Continue

         XCHG;Exchange

         NOP

 

S2:     ;Serial Writing-2

         MVI C,08H;Data Counter

T1:    ADI 09H;Expansion Step

         INX H;Address Increment

         MOV M,A;Indirect Writing

         DCR C;Monitoring of the Data Counter

         JNZ T1;Continue

         NOP

 

AW:  ;Data Access and Writing

         LXI D,00EFH;Initial Address

         MVI C,08H;Data Counter

T2:    MOV A,M;Indirect Loading

         STAX D;Indirect Writing

         DCX H;Address Decrement

         DCX D;Address Decrement

         DCR C;Monitoring of the Data Counter

         JNZ T2;Continue

         NOP

 

AC:   ;Data Access, Conversion and Writing

         MVI C,07H;Data Counter

T3:    MOV A,M;Indirect Loading

         RLC;Left Shift

         XCHG;Exchange

         MOV M,A;Indirect Writing

         DCX H;Address Decrement

         DCX D;Address Decrement

         XCHG;Exchange

         DCR C;Monitoring of the Data Counter

         JNZ T3;Continue

         NOP

        

SA:    ;Single Access and Writing

         LDA 00D0H;Direct Loading

         STA 00E0H;Direct Writing

         HLT;Ending

 

Бірнеше блок түрінде құрылған бұл бағдарламада процессор мен жады арасындағы дерек жіберілімдері жүзеге асырылады. Бірінші блокта (Single Writing-1) жадыға тура сілтемелі команда арқылы жеке жіберілім жүзеге асырылады. Екінші блокта (Serial Writing) жадыға жанама сілтемелі команда арқылы дерек массивінің (арифметикалық прогрессияның мүшелері түріндегі) жіберілімі жүзеге асырылады. Дерек массивінің жіберілімінің ыңғайлырақ тәсілі келесі блокта (Single Writing-2) келтірілген.

Келесі үш блокта (Data Access, Data Access and Conversion, Single Writing) деректердің жадының бір аймағынан екінші аймағына алғы пайдаланылған командаларға ұқсас командалармен жіберілуі ек кері тәртіппен) жүзеге асырылады.

 

2.1.4 Assembler терезесінде Tools/Assemble&Load таңда. Нәтижесінде hex, lst, obj кеңейтілімді файлдар құрылады.

2.1.5 Симулятордың негізгі терезесінде Tools/Breakpoints Manager таңдап, әрбір блоктан кейін, яғни NOP командасы тұрған жолдарға (2.2 суретті қара), тексерім нүктелерін қой.

2.1.6 Симулятордың негізгі терезесінде моделдеу жылдамдығын (мысалы, Rate/Normal) таңдап, симуляторды іске қос (Simulation/Start).

2.1.7 Бағдарламаның әрбір тексерім нүктесіндегі тоқталымында орындалған бағдарлама блогындағы командалардың іс-әрекетін және алынған нәтижелерін (микропроцессор регистрлері мен жадының сәйкесті ұяшықтарындағы) талда.

2.1.8 Моделдеу жылдамдығын (мысалы, Rate/...) таңдау арқылы симулятор жұмысын жалғастыр.

2.2 Сурет

Қажетті жағдайда (оқытушының ұсынысы бойынша) бағдарламаның әрбір блоктарын жеке орында. Ол үшін бағдарламаның бірінші жолына JMP командасын қойып, оған қажетті блоктың белгісін жалға да, блок соңындағы NOP командасын HLT командасына ауыстыр.

2.1.9 Микрокомпьютерді (зертханалық құралымды) іске дайындап (1.3 тарауын қара) жады ұяшықтарына келтірілген бағдарламаның жеке блоктарындағы команда кодтарын енгіз. Команда кодтарын 1.2 кестесі арқылы анықтауға немесе алдыңғы тәжірибеде (мысалы, Memory Editor арқылы) алынған кодтарды пайдалануға болады. Ауысу адрестерін, әрине, бағдарламаның іс жүзіндегі жүйе жадысында орналастырылуына сәйкесті түзету керек. Бағдарламаның әрбір блогын RST7 командасымен бітіру керек.

2.1.10 Бағдарламаның әрбір блогын GO түймесін басып, блоктың бастапқы адресін енгізу арқылы іске қос (1.3 тарауын қара).

2.1.11 Орындалған бағдарлама блогында алынған нәтижелерді симуляторда алынған нәтижелермен салыстыр.

2.2 Тексерім сұрақтары

1.     Микропроцессордың ішкі құрылымын және оның құрама бөліктерінің қызметін түсіндір.

2.     Бағдарламаның жеке блоктарындағы ауыстыру командаларының іс-әрекетін түсіндір.

3 Зертханалық жұмыс. Бірбайтты арифметика

Жұмыс мақсаты:

-       бірбайтты арифметикалық командалардың (қосу және алу) іс-әрекетімен танысу;

-       айналымды бағдарламалық құрылымдардың ұйымдастырылу принциптерін игеру;

-       перифериялық құрылғылармен жұмыстардың ұйымдастырылуының принциптерін игеру.

3.1 Жұмыс тапсырмасы

3.1.1 Симулятор бағдарламасын  әлпеттемесімен іске қос та, ашылған симулятор терезесінде Tools/Assembler таңдап, сосын File/New таңда.

3.1.2 Төмендегі бағдарламаны енгізіп, оны Single-Byte Arithmetic (Бірбайтты арифметика) аталымымен сақта.

 

         ;SINGLE-BYTE ARITHMETIC

DA:   ;Data Array (arithmetical progression)

         LXI H,00E0H;Initial Address

         MVI C,0AH;Data Quantity

         MVI A,00H;Cleaning

         MOV M,C;Writing in the Memory

SD:    INX H;Address Increment

         ADI 55H;Increment Step of the Linear Series

         MOV M,A;Writing in the Memory

         DCR C;Monitoring of the Data Counter

         JNZ SD;Continue

         NOP

 

CS:    ;Cumulative Summation

         ;SUM=((2a1+(n-1)d)/2)n

         ;a1-first operand,n-quantity,d-step,

         LXI H,00E0H;Initial Address

         MVI A,00H;Cleaning

         MOV B,A;Cleaning

         MOV C,M;Installation of the Data Counter

C1:    INX H;Address Increment

         ADD M;Addition

         JNC C2;Carry Monitoring

         INR B;Carry Accumulation

C2:    DCR C;Monitoring of the Data Counter

         JNZ C1;Continue

         NOP

 

RR:   ;Retention of Result

         INX H;

         MOV M,A;Low Byte

         INX H;

         MOV M,B;High Byte

         NOP

 

SS:    ;Series Subtraction

         LXI H,00E0H;Initial Address

         MOV C,M;Installation of the Data Counter

S1:     INX H;Address Increment

         SUB M;Subtraction

         JNC S2;Borrow Monitoring

         DCR B;Borrow Subtraction

S2:     DCR C;Monitoring of the Data Counter

         JNZ S1;Continue

         NOP

 

AD:   ;ALTERNATIVE of the Single-Byte Summation

         ;Data

         IN 01H;First Operand

         MOV E,A

         IN 01H;Data Quantity

         MOV C,A

         IN 02H;Step

         MOV D,A

         LXI H,0000H

         NOP

 

AC    ;Cumulative Summation-A

A1:    MOV A,E

         ADD D

         MOV E,A

         MOV A,L

         ADD E

         JNC A2

         INR H

A2:    MOV L,A

         DCR C

         JNZ A1

         MOV A,L

         OUT 03H

         MOV A,H

         OUT 04H

         HLT;Ending

 

Бұл бағдарлама келесі блоктардан тұрады:

-       Data Arrayжадыға арифметикалық прогрессия мүшелері түріндегі деректердің жазылуын жүзеге асырады (прогрессияның берілген параметрлерін (n = 0AH – мүшелер санын, a1 = 00H – бірінші мүшенің мәнін, d = 55H – прогрессия қадамын) жұмыстың орындалу барысында өзгертуге болады);

-       Cumulative Summation – бағдарламаның алдыңғы блогында жадыға жазылған арифметикалық прогрессия мүшелерінің қосындысын анықтайды;

-       Retention of Resultалынған қосынды нәтижесін жадыда сақтайды;

-       Series Subtractionалдында алынған қосындыдан арифметикалық прогрессия мүшелерінің мәндерін тізбелеп алады;

-       екі қосалқы блок түрінде (Data и Cumulative Summation-A) құрылған ALTERNATIVE of the Single-Byte Summation блогында арифметикалық прогрессия мүшелерінің қосындысын анықтаудың перифериялық құрылғыларды пайдалану арқылы (IN, OUT) анықталатын өзгеше түрі жүзеге асырылады.

 

3.1.3 Assembler терезесінде выбрать Tools/Assemble&Load таңда.

3.1.4 Симулятордың негізгі терезесінде Tools/Breakpoints Manager таңдап, әрбір блоктан кейін, яғни NOP командасы тұрған жолдарға (2.2 суретті қара) тексерім нүктелерін қой.

3.1.5 Симулятор терезесінде Tools/Peripheral Devices терезесін аш. Ашылған Peripheral Devices терезесінде Device 1 түймесін басып, порт адресін 01 түрінде анықта да, сосын бұл портты IN жағдайына қой. Осы сияқты келесі порт адресін 02 түрінде анықтап, оны да IN жағдайына қой. Келесі порттардың адресін 03 және 04 түрінде анықтап, оларды OUT жағдайына қой (3.1 суретті қара).

3.1.6 Симулятордың негізгі терезесінде моделдеу жылдамдығын (мысалы, Rate/Normal) таңдап, симуляторды іске қос (Simulation/Start).

3.1.7 Бағдарламаның әрбір тексерім нүктесіндегі тоқталымында орындалған бағдарлама блогындағы командалардың іс-әрекетін және алынған нәтижелерін (микропроцессор регистрлері мен жадының сәйкесті ұяшықтарындағы) талда.

3.1.8 Моделдеу жылдамдығын (мысалы, Rate/...) таңдау арқылы симулятор жұмысын жалғастыр.

Алынған қосынды нәтижесінің  өрнегі арқылы есептелген мәнге сәйкестігін тексер.

Қажетті жағдайда (оқытушының ұсынысы бойынша) бағдарламаның әрбір блоктарын жеке орында. Ол үшін бағдарламаның бірінші жолына JMP командасын қойып, оған қажетті блоктың белгісін жалға да, блок соңындағы NOP командасын HLT командасына ауыстыр.

3.1 Сурет

3.1.9 Микрокомпьютерді (зертханалық құралымды) іске дайындап (1.3 және 2.1.9 тарауларын қара) жады ұяшықтарына келтірілген бағдарламаның жеке блоктарындағы команда кодтарын енгіз.

3.1.10 Бағдарламаның әрбір блогын GO түймесін басып, блоктың бастапқы адресін енгізу арқылы іске қос (1.3 тарауын қара).

3.1.11 Орындалған бағдарлама блогында алынған нәтижелерді симуляторда алынған нәтижелермен салыстыр.

3.2 Тексерім сұрақтары

1.     Бағдарламаның жеке блоктарындағы ауыстыру командаларының іс-әрекетін түсіндір.

2.     Перифериялық құрылғылармен жұмыстың ұйымдастырылу принциптерін түсіндір.


4 Зертханалық жұмыс. Екібайтты арифметика

Жұмыс мақсаты:

-       екібайтты операндтармен арифметикалық операциялар (қосу және алу) орындау тәртібімен танысу;

-       екібайтты арифметикалық операцияларды орындаудың альтернативті мүмкіндігін игеру.

4.1 Жұмыс тапсырмасы

4.1.1 Симулятор бағдарламасын іске қос та, ашылған симулятор терезесінде Tools/Assembler таңдап, сосын File/New таңда.

4.1.2 Төмендегі бағдарламаны енгізіп, оны Double-Byte Arithmetic (Екібайтты арифметика) аталымымен сақта.

 

         ;DOUBLE-BYTE ARITMETIC

         ;Data Array (arithmetical progression)

         LXI H,00E0H;initial address

         MVI C,0AH;data quantity

         MOV M,C

         MVI A,00H;low byte

         MVI B,12H;high byte

DD:   ADI 15H;step of the low byte=15H

         INR B;step of the high byte=01H

         INX H

         MOV M,A;loading in the low byte memory

         INX H

         MOV M,B;loading in the high byte memory

         DCR C;monitoring of the data counter

         JNZ DD;continue

         NOP

 

CC:   ;Cumulative Summation

         ;SUM=((2a1+(n-1)d)/2)n

         ;a1-first operand,n-quantity,d-step,

         LXI H,00E0H;initial address

         LXI D,0000H;temporary repository for the result

         MOV B,M;installation of the data counter

         MOV C,B;doublet of the data counter

CS:    MOV A,E

         INX H

         ADD M;low byte

         MOV E,A

         MOV A,D

         INX H

         ADC M;high byte

         MOV D,A

         DCR B;monitoring of the data counter

         JNZ CS;continue

         NOP

        

AD:   ;Addition with Direct Addressing

         MOV A,E

         ADI 3DH;low byte

         MOV E,A

         MOV A,D

         ACI 5AH;high byte

         MOV D,A

         NOP

        

RR:   ;Retention of the Result

         INX H;

         MOV M,E;low byte

         INX H;

         MOV M,D;high byte

         NOP

        

SS:    ;Series Subtraction

         LXI H,00E0H

S0:     MOV A,E

         INX H

         SUB M;low byte

         MOV E,A

         MOV A,D

         INX H

         SBB M;high byte

         MOV D,A

         DCR C;monitoring of the data counter

         JNZ S0;continue

         NOP

 

SD:    ;Subtraction with Direct Addressing

         MOV A,E

         SUI 3DH;low byte

         MOV E,A

         MOV A,D

         INX H

         SBI 5AH;high byte

         MOV D,A

         NOP

 

AL:    ;ALTERNATIVE of the Double-Byte Summation

         LDA 00E0H

         MOV C,A;data counter

         LXI SP,00E1H;initial address

         LXI H,0000H;Double-Byte Accumulator

AS:    POP D;Pulling

         DAD D;Double-Byte Summation

         DCR C;monitoring of the data counter

         JNZ AS;continue

         LXI B,5A3DH

         DAD B

         HLT

 

Бұл бағдарлама келесі блоктардан тұрады:

-       Data Array – жадыға арифметикалық прогрессия мүшелері түріндегі деректердің жазылуын жүзеге асырады (прогрессияның берілген параметрлерін (n = 0AH – мүшелер санын, a1 = 1200H – бірінші мүшенің мәнін, d = 0115 – прогрессия қадамын) жұмыстың орындалу барысында өзгертуге болады). Қалыптастырылған прогрессия мүшесі жадының екі ұяшығында сақталады (алдымен – кіші байты, сосын – үлкен байты);

-       Cumulative Summation – бағдарламаның алдыңғы блогында жадыға жазылған арифметикалық прогрессия мүшелерінің қосындысын анықтайды;

-       Addition with Direct Addressing – қосу операциясын тікелей сілтенімді командалар арқылы жүзеге асырады;

-       Retention of Result – алынған қосынды нәтижесін жадыда сақтайды;

-       Series Subtraction – алдында алынған қосындыдан арифметикалық прогрессия мүшелерінің мәндерін тізбелеп алады;

-       Subtraction with Direct Addressing – алу операциясын тікелей сілтенімді командалар арқылы жүзеге асырады;

-       ALTERNATIVE of the Double-Byte Summation – арифметикалық прогрессия мүшелерінің қосындысының екібайтты қосу командасы DAD арқылы анықталатын өзге жолын жүзеге асырады.

 

4.1.3 Assembler терезесінде выбрать Tools/Assemble&Load таңда.

4.1.4 Симулятордың негізгі терезесінде Tools/Breakpoints Manager таңдап, әрбір блоктан кейін, яғни NOP командасы тұрған жолдарға тексерім нүктелерін қой.

4.1.5 Симулятордың негізгі терезесінде моделдеу жылдамдығын (мысалы, Rate/Normal) таңдап, симуляторды іске қос (Simulation/Start).

4.1.6 Бағдарламаның әрбір тексерім нүктесіндегі тоқталымында орындалған бағдарлама блогындағы командалардың іс-әрекетін және алынған нәтижелерін (микропроцессор регистрлері мен жадының сәйкесті ұяшықтарындағы) талда.

4.1.7 Моделдеу жылдамдығын (мысалы, Rate/...) таңдау арқылы симулятор жұмысын жалғастыр.

Алынған қосынды нәтижесінің  өрнегі арқылы есептелген мәнге сәйкестігін тексер.

Қажетті жағдайда (оқытушының ұсынысы бойынша) бағдарламаның әрбір блоктарын жеке орында. Ол үшін бағдарламаның бірінші жолына JMP командасын қойып, оған қажетті блоктың белгісін жалға да, блок соңындағы NOP командасын HLT командасына ауыстыр.

4.1.8 Микрокомпьютерді (зертханалық құралымды) іске дайындап (1.3-ті қара) жады ұяшықтарына келтірілген бағдарламаның жеке блоктарындағы команда кодтарын енгіз.

4.1.9 Бағдарламаның әрбір блогын GO түймесін басып, блоктың бастапқы адресін енгізу арқылы іске қос (1.3 тарауын қара).

4.1.10 Орындалған бағдарлама блогында алынған нәтижелерді симуляторда алынған нәтижелермен салыстыр.

4.2 Тексерім сұрақтары

1.     Бағдарламаның жеке блоктарындағы ауыстыру командаларының іс-әрекетін түсіндір.

2.     Тасымалды және тасымалсыз арифметикалық командалардың іс-әрекетінің айырмашылығын түсіндір.

3.     Екібайтты деректерді DAD командасымен қосылуының ұйымдастырылу принциптерін түсіндір.


5 Зертханалық жұмыс. Программа умножения

Жұмыс мақсаты:

-       екі бірбайтты санды арифметикалық көбейту бағдарламасын құру тәртібін түсіну;

-       перифериялық құрылғылармен жұмыс ұйымдастырылуының принциптерін игеру.

5.1 Көбейту алгоритмі

Intel 8085 микропроцессорында көбейту командасы жоқ, сондықтан көбейту операциясын орындау үшін сәйкесті бағдарлама құру керек болады. Көбейту алгоритмін анықталық. Машина алгоритмін көрнек түсіндіру мақсатында төменде ондық сандардың көбейтілімінің мектеп қабырғасынан белгілі үш түрлі жүзеге асырылу алгоритмі келтірілген:

 

 

Бірінші жазылымда көбейткіштің разряд мәндерін өзімізге үйреншіктікті оңнан солға қарай алып көбейту тәртібі келтірілген. Екінші жазылымда көбейткіштің разряд мәндерін солдан оңға қарай алып көбейту тәртібі келтірілген. Цифрлық құрылғыларда қосу операциясы екі санға ғана жүргізілетініне байланысты ондық сандардың жеке көбейтінділерінің солай қосылғаны үшінші жазылымда келтірілді. Бұнда төртразрядты сандардың көбейтіндісі сегізразрядты болатындығы ескеріліп, операция басында нәтиже нөл мәнінде алынды және ығыстыру операциясы (олар бағыттама арқылы көрсетілген) әрбір жеке көбейту операцияларының алдында жүргізіліп, жазылым қосу операцияларын орындауға ыңғайландырылды. Тап осы жазылым тәртібі екілік сандарды цифрлық құрылғыда көбейтуге ыңғайлы келеді. Сонымен, бірбайтты екілік сандарды көбейту алгоритмі келесі тәртіппен жүзеге асырылады:

-        сегізразрядты сандардың көбейтілу нәтижесі оналтыразрядты сан болатындықтан және жеке қосылымдардың да  оналтыразрядты сандарға жүргізілетіндігіне байланысты, оналтыразрядты аккумулятор ретінде HL регистрлік жұбы алынып, ол операция басында тазартылады;

-       DE регистрлік жұбының E регистріне бірінші сан (көбейтілгіш), ал оның D регистріне нөл енгізіліп, көбейтілгіш қосуға ыңғайлы оналтыразрядты санға айналдырылады;

-       екінші сан (көбейтілгіш) оның разрядтарын ығыстырып шығару үшін аккумуляторға (сөзімізді шатыстырмас үшін, оны бұдан әрі A регистрі деп атаймыз) енгізіледі;

-       ығыстыру операциясының санын бақылап отыру үшін, көбейткіштің разряд саны микропроцессордың бір регистріне (мысалы, С регистріне) енгізіледі;

-       әрбір жеке көбейту алдында осы мезетке дейін жиналған нәтиже (HL жұбындағы) солға ығыстырылады;

-       ығыстыру арқылы А регистрінен шығарылған көбейткіштің кезекті разрядының мәні нөл болғанда, жеке көбейту осымен бітеді (яғни, алдыңғы ығыстырыммен);

-       А регистрінен шығарылған көбейткіштің кезекті разрядының мәні бір болғанда, HL жұбына DE жұбы қосылады;

-       әрбір жеке көбейтілімнен кейін санауыш құрамы бірге кемітіледі де, оның нөлге тең болған кезінде көбейту бағдарламасы өз жұмысын тоқтатады.

Сонымен, ығыстыру операциясы сегіз рет жүргізіледі, ал қосу операциясының саны көбейткіштің құрамындағы бірліктердің санымен анықталады.

5.2 Жұмыс тапсырмасы

5.2.1 Симулятор бағдарламасын іске қос та, ашылған симулятор терезесінде Tools/Assembler таңдап, сосын File/New таңда.

5.2.2 Төмендегі бағдарламаны енгізіп, оны Multiplication (Көбейту) аталымымен сақта.

 

M:     ;MULTIPLICATION

         ;Data

         IN 01H

         MOV E,A

         MVI D,00H

         IN 02H

         LXI H,0000H

         MVI C,08H

         ;Implementation

M1:    DAD H

         RLC

         JNC M2

         DAD D

M2:    DCR C

         JNZ M1

         MOV A,L

         OUT 03H

         MOV A,H

         OUT 04H

         HLT

 

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

 

5.2.3 Assembler терезесінде выбрать Tools/Assemble&Load таңда.

5.2.4 Симулятор терезесінде Tools/Peripheral Devices аш та, онда порт адрестерін 01…04 арасында анықтап, екі портты (01 және 02 адресті) IN жағдайына, ал қалғанын OUT жағдайына қой.

5.2.5 Симулятордың негізгі терезесінде Tools/Breakpoints Manager таңдап, тексерім нүктесін DAD H командасы тұрған жолға (яғни, жеке көбейтілімдердің жүзеге асырылар алдында) қой.

5.2.6 Симулятордың негізгі терезесінде моделдеу жылдамдығын (мысалы, Rate/Normal) таңдап, симуляторды іске қос (Simulation/Start).

5.2.7 Бағдарламаның тексерім нүктесіндегі әрбір тоқталымында орындалған бағдарлама блогындағы командалардың іс-әрекетін және алынған нәтижелерін (микропроцессор регистрлері мен жадының сәйкесті ұяшықтарындағы) талда.

5.2.8 Моделдеу жылдамдығын (мысалы, Rate/...) таңдау арқылы симулятор жұмысын жалғастыр.

5.2.9 Микрокомпьютерді (зертханалық құралымды) іске дайындап (1.3 тарауын қара) жады ұяшықтарына келтірілген бағдарламаның жеке блоктарындағы команда кодтарын және көбейткіштер мәнін енгіз.

5.2.10 Бағдарламаны GO түймесін басып және оның бастапқы адресін енгізу арқылы іске қос (1.3 тарауын қара).

5.2.11 Орындалған бағдарлама блогында алынған нәтижелерді симуляторда алынған нәтижелермен салыстыр.

5.3 Тексерім сұрақтары

1.     Көбейту операциясын жүзеге асыруға арналған бағдарламаның негізіне алынған алгоритмді түсіндір.

2.     Көбейту бағдарламасының құрылымын түсіндір.


6 Зертханалық жұмыс. Стекпен жұмыс

Жұмыс мақсаты:

-       қосалқы бағдарламалармен жұмыстың ұйымдастырылу принциптерін игеру;

-       стекпен жұмыстың ұйымдастырылу принциптерін игеру.

6.1 Мәселе қойылымы

Микропроцессорлық жүйе жұмысының негізгі бағдарламасының құрамында әдетте, одан шақырылатын және нақтылы мәселелерді шешуге арналған, бірнеше қосалқы бағдарлама болады.

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

Қосалқы бағдарламаның шақырылуы кезінде, ол орындалып біткеннен кейін қайтып келетін негізгі бағдарламаның келесі командасының адресі стекте сақталады. Әрбір қосалқы бағдарлама, негізгі бағдарламаға қайтуды қамтамасыз ететін, RET командасымен аяқталу керек.

Қажетті жағдайда регистрлердегі (дәлірек айтқанда, регистрлік жұптардағы) деректерді де стекте PUSH командасымен сақтап, сосын оларды стектен POP командасымен оқуға болады.

Қосалқы бағдарламалармен және стекпен жұмыс ұйымдастырылу тәртібін қарастыру мақсатында y = a1*a2 + a3*a4 +  өрнегі бойынша есептеу бағдарламасы қарастырылады.

6.2 Жұмыс тапсырмасы

6.2.1 Симулятор бағдарламасын іске қос та, ашылған симулятор терезесінде Tools/Assembler таңдап, сосын File/New таңда.

6.2.2 Төмендегі бағдарламаны енгізіп, оны Stack (Стек) аталымымен сақта.

 

         ;SUM=a1*a2+a3*a4+sum(ai,n,d)

         LXI SP,0FFH

         MVI B,0A0H

 

         ;mul1=a1*a2

         IN 01H;first multiplier

         MOV E,A

         IN 02H;second multiplier

         CALL MUL

         PUSH H

         CALL PER

         NOP

 

         ;mul2=a3*a4

         IN 01H;first multiplier

         MOV E,A

         IN 02H;second multiplier

         CALL MUL

         PUSH H

         CALL PER

         NOP

 

         ;sum(ai,n,d)

         IN 01H;quantity - n

         MOV C,A

         IN 02H;step - d

         MOV D,A

         IN 01h;first operand - a1

         MOV D,A

         LXI H,0000H

         CALL SUM

         CALL PER

         NOP

 

         ;S3

         POP D

         DAD D

         POP D

         DAD D

         CALL PER

         HLT

 

MUL: ;Multiplication (subroutine)

         MVI D,00H

         LXI H,0000H

         MVI C,08H

M1:    DAD H

         RLC

         JNC M2

         DAD D

M2:    DCR C

         JNZ M1

         RET

 

SUM: ;Cumulative Summation (subroutine)

CS3:  MOV A,E

         ADD D

         MOV E,A

         MOV A,L

         ADD E

         JNC CS4

         INR H

CS4:  MOV L,A

         DCR C

         JNZ CS3

         RET

 

PER:  ;Displaying on the Periphery

         ;and Writing on the Memory

         MOV C,B

         MVI B,00H

         MOV A,L

         OUT 03H

         STAX B

         INR C

         MOV A,H

         OUT 04H

         STAX B

         INR C

         MOV B,C

         RET

 

Бағдарламаның негізгі бөлігі келесі блоктардан тұрады:

-       SUM негізгі бағдарламаның басы, онда стек көрсеткішінің мәні SP және нәтижелерді шығару құрылғысында көрсетуге арналған қосалқы бағдарламаның жұмысын ұйымдастыруға қажетті информация қойылады;

-       mul1 и mul2 – көбейтуге арналған деректер енгізіледі де, сосын көбейту бағдарламасы, одан кейін нәтиже көрсету бағдарламасы шақырылады;

-       sum қосуға арналған деректер енгізіліп, содан соң қосу бағдарламасы, одан кейін нәтиже көрсету бағдарламасы шақырылады;

-       S3 – ақырғы нәтиже, яғни алдыңғы кезеңдерде алынған жеке нәтижелердің қосындысы есептеледі.

Бағдарламада үш қосалқы бағдарлама пайдаланылады:

-       Multiplication шақырылар алдында енгізілген екі санның көбейтілуін жүзеге асырады;

-       Cumulative Summation – алдын-ала енгізілген деректердің қосындысын есептейді;

-       Displaying қосалқы бағдарламаларда алынған нәтижелердің сыртқы құрылғыда шығарылуын және олардың жадыда сақталуын жүзеге асырады.

 

6.2.3 Assembler терезесінде выбрать Tools/Assemble&Load таңда.

6.2.4 Симулятор терезесінде Tools/Peripheral Devices аш та, онда порт адрестерін 01…04 арасында анықтап, екі портты (01 және 02 адресті) – IN жағдайына, ал қалғанын OUT жағдайына қой.

6.2.5 Симулятордың негізгі терезесінде Tools/Breakpoints Manager таңдап, негізгі бағдарламаның әрбір блогынан кейін, яғни NOP командалары тұрған жолдарға тексерім нүктелерін қой.

6.2.6 Симулятордың негізгі терезесінде моделдеу жылдамдығын (мысалы, Rate/Normal) таңдап, симуляторды іске қос (Simulation/Start).

6.2.7 Бағдарламаның әрбір тексерім нүктесіндегі тоқталымында орындалған бағдарлама блогындағы командалардың іс-әрекетін және алынған нәтижелерін (микропроцессор регистрлері мен жадының сәйкесті ұяшықтарындағы) талда.

6.2.8 Моделдеу жылдамдығын (мысалы, Rate/...) таңдау арқылы симулятор жұмысын жалғастыр.

6.2.9 Микрокомпьютерді (зертханалық құралымды) іске дайындап (1.3 тарауын қара), жады ұяшықтарына келтірілген бағдарламаның жеке блоктарындағы команда кодтарын және көбейткіштер мәнін енгіз.

6.2.10 Бағдарламаны GO түймесін басып және оның бастапқы адресін енгізу арқылы іске қос (1.3-ті қара).

6.2.11 Орындалған бағдарлама блогында алынған нәтижелерді симуляторда алынған нәтижелермен салыстыр.

6.3 Тексерім сұрақтары

1.     Қосалқы бағдарламалармен жұмыс ұйымдастырылу принциптерін түсіндір.

2.     Стекпен. жұмыс ұйымдастырылу принциптерін түсіндір.


Әдебиеттер тізімі

1.     Шанаев О.Т. Микропроцессорлық техника негіздері. 1-бөлім. Зертханалық жұмыстарға арналған әдістемелік нұсқаулар. – Алматы: АЭжБУ, 2011.

2.     Шанаев О.Т. Микропроцессорлық техника негіздері. 2-бөлім. Зертханалық жұмыстарға арналған әдістемелік нұсқаулар. – Алматы: АЭжБУ, 2011.

3.     Шанаев О.Т. Цифрлық құрылғылар және микропроцессорлар: Оқу құралы / Алматы: АЭжБИ, 2009.

4.     Шанаев О.Т. Микропроцессорлық жүйелер: Оқу құралы / Алматы: АЭжБИ, 2009.

5.     Шанаев О.Т. Electronic Workbench моделдеу жүйесі / қазақ және орыс тілдерінде. – Алматы: АИЭС, 2003.

6.     Токхайм Р. Микропроцессоры. Курс и упражнения: Пер. с. англ. – М.: Мир, 1988.

7.     Угрюмов Е. П. Цифровая схемотехника. – СПб.: БХВ-Петербург, 2004.

8.     Сугано Т. Дж., Уидмер Н. С. Цифровые системы. Теория и практика: Пер. с англ. – М.: Издательский дом “Вильямс”, 2004.

9.     Хамахер К. И др. Организация ЭВМ. Пер. с. англ. – СПб.: Питер, 2003.

10. Уэйкерли Дж. Ф. Проектирование цифровых устройств: Пер. с. англ. – М.: Постмаркет, 2002.

  

Мазмұны 

Кіріспе  3

1 Қажетті мәліметтер мен жалпы әдістемелік ұсынылымдар  4

2 Зертханалық жұмыс. Дерек жіберілімдері 10

3 Зертханалық жұмыс. Бірбайтты арифметика  14

4 Зертханалық жұмыс. Екібайтты арифметика  18

5 Зертханалық жұмыс. Программа умножения  22

6 Зертханалық жұмыс. Стекпен жұмыс  25

Әдебиеттер тізімі 29

Жинақ жоспар 2011 ж., орны 207