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
|
|
Бұдан әрі бірнеше қарапайым есептерді шешуге арналған бағдарламалар келтірілген. Құрылған бағдарламалардың жұмысын оқу жүйесінде пайдаланылатын микропроцессорлық жүйелердің зертханалық құрылымдарында тексеруге болады. Көптеген жағдайда бұндай құрылымдардың құрамына ассемблер тілінде құрылған бағдарламаларды машина тіліне аударушы Ассемблер бағдарламасы енгізілмеген. Бұндай жағдайда аудару жұмысы қолдан жүргізіледі. Ол бағдарламадағы командалардың 2.5-кесте арқылы алынатын кодтары, операндтар және олардың жазылатын (сақталатын) жады ұяшықтарының адрестері оналтылық жазылым түрінде суреттеледі. Оналтылық сандар сәйкесті символымен қойылады. Бұл бағдарламаларды зертханалық құрылымға енгізіп, олардың жұмысын тексеруге болады.
Команда кодтарын жоғарыда айтылғандай, 2.5-кесте арқылы алуға болады, бірақ бұл жеңіл жұмыс емес. Сондықтан, команда кодтарының алыну жолын жеңілдету мақсатында бұл кестенің ықшамдалған суреттелімін (2.7-кестені қара) беруді дұрыс деп санадық. Бұл кестеден қажетті команданың коды ол орналасқан горизонталь және вертикаль жолдардың аталымдарын қатар жазу арқылы (міндетті түрде осы тәртіппен) анықталады.
2.3.1 Дерек таратылымы
Intel 8085 микропроцессорының командалар жүйесіндегі әртүрлі сілтемелі дерек тарату командаларының іс-әрекетімен танысуға арналған келесі Transfers (Жіберілімдер) аталымды бағдарламаны қарастыралық.
;TRANSFERS
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) жадыға тура сілтемелі команда (STA 00D0H) арқылы жеке жіберілім жүзеге асырылады. Екінші блокта (Serial Writing) жадыға жанама сілтемелі команда (STAX D) арқылы дерек массивінің (арифметикалық прогрессияның мүшелері түріндегі) жіберілімі жүзеге асырылады. Дерек массивінің жіберілімінің ыңғайлырақ тәсілі (MOV M,A) келесі блокта (Single Writing-2) келтірілген.
Келесі үш блокта (Data Access, Data Access and Conversion, Single Writing) деректердің жадының бір аймағынан екінші аймағына алғы пайдаланылған командаларға ұқсас командалармен жіберілуі (тек кері тәртіппен) жүзеге асырылады.
Келтірілген бағдарламаны Intel 8085 микропроцессорының негізіндегі микропроцессорлық жүйенің симуляторы (8085 Simulator IDE) арқылы орындау бағдарлама құрамындағы командалардың жұмысын түсінуге толық мүмкіндік береді. Алуан түрлі іскерлік элементтерімен қамтылған және олардың іс-әрекеттерінің көрнекілігімен көзге түсетін бағдарламалық симулятор оқушылардың құрамы жағынан түр-түрлі жүйе моделдерін құруына және олардың жұмысын зерттеуіне кең мүмкіндік береді, демек, олардың оқу материалын толық игеруіне жағдай жасайды.
Бағдарламаның жоғарыда сипатталған әрбір блогын жеке тексеру үшін олардың соңына (NOP командалары орналастырылған жолдарға) тоқтатылым нүктелерін қою керек (2.2-суретті қара).
2.2 Сурет
2.3.2 Бірбайтты арифметика
Келесі Single-Byte Arithmetic (Бірбайтты арифметика) бағдарламасы бірбайтты арифметикалық командалардың (ADD, SUB) іс-әрекетімен танысуға, айналымды бағдарламалық құрылымдардың ұйымдастырылу принциптерін түсінуге және перифериялық құрылғылармен жұмыстардың ұйымдастырылу принциптерн үйренуге арналған.
;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 15H;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
Бірнеше блок түрінде құрылған бұл бағдарламада процессор мен жады арасындағы дерек жіберілімдері жүзеге асырылады. Бірінші блокта (Single Writing-1) жадыға тура сілтемелі команда (STA 00D0H) арқылы жеке жіберілім жүзеге асырылады. Екінші блокта (Serial Writing) жадыға жанама сілтемелі команда (STAX D) арқылы дерек массивінің (арифметикалық прогрессияның мүшелері түріндегі) жіберілімі жүзеге асырылады. Дерек массивінің жіберілімінің ыңғайлырақ тәсілі (MOV M,A) келесі блокта (Single Writing-2) келтірілген.
Бұл бағдарламаның құрамындағы Data Array блогы жадыға арифметикалық прогрессия мүшелері түріндегі деректердің жазылуын жүзеге асырады (прогрессияның берілген параметрлерін (n = 0AH – мүшелер санын, a1 = 00H – бірінші мүшенің мәнін, d = 15H – прогрессия қадамын) жұмыстың орындалу барысында өзгертуге болады); Cumulative Summation блогы бағдарламаның алдыңғы блогында жадыға жазылған арифметикалық прогрессия мүшелерінің қосындысын анықтайды; Retention of Result блогы алынған қосынды нәтижесін жадыда сақтайды; Series Subtraction блогы алдында алынған қосындыдан арифметикалық прогрессия мүшелерінің мәндерін тізбелеп алады; екі қосалқы блок түрінде (Data и Cumulative Summation-A) құрылған ALTERNATIVE of the Single-Byte Summation блогында арифметикалық прогрессия мүшелерінің қосындысын анықтаудың перифериялық құрылғыларды пайдалану арқылы (IN, OUT) анықталатын өзгеше түрі жүзеге асырылады.
2.3.3 Екібайтты арифметика
Келесі Double-Byte Arithmetic (Екібайтты арифметика) бағдарламасы екібайтты сандарға арифметикалық операциялар жүргізуге арналған регистрлік сілтемді (ADD, ADC, SUB, SBB) және тіке сілтемді (ADI, ACI, SUI, SBI) командалардың іс-әрекетімен танысуға арналған.
;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 арқылы анықталатын өзге жолын жүзеге асырады.
2.3.4 Көбейту бағдарламасы
Intel 8085 микропроцессорында көбейту командасы жоқ, сондықтан көбейту операциясын орындау үшін сәйкесті бағдарлама құру керек болады. Келесі бағдарлама, екібайтты DAD командасы арқылы ұйымдастырылатын, көбейту операциясын орындауға арналған Multiplication (Көбейту) бағдарламасының жұмысымен танысуға мүмкіндік береді.
Бірбайтты екілік сандарды көбейту алгоритмі келесі тәртіппен жүзеге асырылады: сегізразрядты сандардың көбейтілу нәтижесі оналтыразрядты сан болатындықтан және жеке қосылымдардың да оналтыразрядты сандарға жүргізілетіндігіне байланысты, оналтыразрядты аккумулятор ретінде HL регистрлік жұбы алынып, ол операция басында тазартылады; DE регистрлік жұбының E регистріне бірінші сан (көбейтілгіш), ал оның D регистріне нөл енгізіліп, көбейтілгіш қосуға ыңғайлы оналтыразрядты санға айналдырылады; екінші сан (көбейтілгіш) оның разрядтарын ығыстырып шығару үшін аккумуляторға (сөзімізді шатыстырмас үшін, оны бұдан әрі A регистрі деп атаймыз) енгізіледі; ығыстыру операциясының санын бақылап отыру үшін, көбейткіштің разряд саны микропроцессордың бір регистріне (мысалы, С регистріне) енгізіледі; әрбір жеке көбейту алдында осы мезетке дейін жиналған нәтиже (HL жұбындағы) солға ығыстырылады; ығыстыру арқылы А регистрінен шығарылған көбейткіштің кезекті разрядының мәні нөл болғанда, жеке көбейту осымен бітеді (яғни, алдыңғы ығыстырыммен); А регистрінен шығарылған көбейткіштің кезекті разрядының мәні бір болғанда, HL жұбына DE жұбы қосылады; әрбір жеке көбейтілімнен кейін санауыш құрамы бірге кемітіледі де, оның нөлге тең болған кезінде көбейту бағдарламасы өз жұмысын тоқтатады. Сонымен, ығыстыру операциясы сегіз рет жүргізіледі, ал қосу операциясының саны көбейткіштің құрамындағы бірліктердің санымен анықталады.
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
2.3.5 Стекпен жұмыс ұйымдастырылуы
Микропроцессорлық жүйе жұмысының негізгі бағдарламасының құрамында, әдетте, одан шақырылатын және нақтылы мәселелерді шешуге арналған, бірнеше қосалқы бағдарлама болады.
Қосалқы бағдарламалармен жұмыс ұйымдастырылуы кезінде шақырылған бағдарламаның орындалып біткенінен кейін негізгі бағдарламаға қайту мүмкіндігін қамтамасыз ету керек. Ол үшін жадының жеке бір аймағы стекке бөлінеді де, оның түбі стек көрсеткіші SP ретінде белгіленеді. Қосалқы бағдарламаның шақырылуы кезінде, оның орындалып біткенінен кейін қайтып келетін негізгі бағдарламаның келесі командасының адресі стекте сақталады. Әрбір қосалқы бағдарлама, негізгі бағдарламаға қайтуды қамтамасыз ететін, RET командасымен аяқталу керек.
Қажетті жағдайда регистрлердегі (дәлірек айтқанда, регистрлік жұптардағы) деректерді де стекте PUSH командасымен сақтап, сосын оларды стектен POP командасымен оқуға болады.
Төменде қосалқы бағдарламалармен және стекпен жұмыс ұйымдастырылу тәртібін қарастыру мақсатында y = a1*a2 + a3*a4 + өрнегі бойынша Stack (Стек) аталымды есептеу бағдарламасы келтірілген.
;STACK...SUM=a1*a2+a3*a4+sum(ai,n,d)
LXI SP,0FFH
MVI B,0A0H
NOP
;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 – қосалқы бағдарламаларда алынған нәтижелердің сыртқы құрылғыда шығарылуын және олардың жадыда сақталуын жүзеге асырады.
3 Микропроцессорлық жүйе моделі
3.1 MP4M моделі
Оқырманның микропроцессорлық жүйенің аппараттық құрылым принциптері мен бағдарламалы істеу принциптерін толығырақ игеруін қамтамасыз ету мақсатында осы принциптер негізінде құрылған микропроцессорлық жүйенің оқу моделін суреттеуді дұрыс көрдік.
Құрамына микропроцессор (MP4M), дерек енгізу құрылғысы (In), жады жүйесі (Mem) және жүйенің жұмыс режимін таңдау блогы енгізілген, 4-разрядты микропроцессорлық жүйенің моделі 3.1 суретте келтірілген .
3.1 Сурет
Микропроцессор құрамына келесі блоктар кіреді (3.2-суретті қара): арнайы қызметтік регистрлер жинағы (RGs, Registers); арифметикалық-логикалық құрылғы (ALU, Arithmetic-Logic Unit); команда регистрі (IR, Instruction Register); команда дешифраторы (DC_16, Decoder 16-bit); таймер (CLK, Clock); микробағдарламалық құрылғы (Combi, Combinational Circuit.
Әрбіреуі нақтылы қызмет атқаруға арналған регистрлер жинағының (RGs) құрамына келесі регистрлер кіреді (3.3-суретті қара):
A регистрі аккумулятор (Accumulator) қызметін атқарады, онда арифметикалық және логикалық операцияларға қатысты операндтардың біреуі немесе операциялардың орындалу нәтижесі сақталады. Аккумуляторға дерек жадыдан (LD A командасы) немесе ALU-дан (кезекті арифметикалық немесе логикалық операция орындалғаннан кейін) енгізіледі;
3.2 Сурет
3.3 Сурет
A1 регистрі айналымды қосылымдардың ұйымдастырылуы кезінде туатын тасылымдарды жинауға арналған. Ол бағдарламаның іске қосылуы кезінде және аккумуляторға (A регистріне) LD A командасымен дерек енгізілуі кезінде тазартылады. Ондағы дерек Space түймесін басу арқылы аккумулятор көрсеткіштеріне қысқа мерзімге шығарылады;
B регистрі микропроцессордың ішкі регистрлері мен жады арасындағы дерек жіберілімдерінің адрес регистрінің қызметін атқарады (LD C, LD IP, LD SP, LD A командалары). LD C, LD SP, LD A командалары орындалғаннан кейін B регистріндегі сан ұлғайтылады (яғни, оған бір қосылады). Бұл регистрге дерек LD B командасымен енгізіледі, оған адрес регистрі ретінде C регистрі пайдаланылады. Ол бағдарламаның іске қосылуы кезінде тазартылады;
C регистрі арифметикалық және логикалық операцияларға қатысты екінші операндтың адрес регистрінің қызметін атқарады. Сәйкесті командалар орындалғаннан кейін С регистріндегі сан ұлғайтылады, бірақ оның бағытын (B регистрінен ерекше) өзгертуге болады, ол I түймесі арқылы қойылады және оның жағдайы (I) - Dcr/Inr көрсеткішінде көрсетіледі: I=0 кезінде – тура бағытта (Increment), ал I=1 кезінде – теріс бағытта (Decrement). Ондағы санды өзгермеген түрінде де қалдыруға болады, бұндай жағдай туралы жүйенің жұмыс режимдерін суреттеу кезінде айтылады. Бұл регистрге дерек LD C командасымен жүзеге асырылады. Бағдарламаның іске қосылуы кезінде бұл регистр 1111 жағдайына қойылады (XOR элементтері арқылы). Кез келген бағдарламаның құрамында дерек тарату командаларының болатындығынан, бағдарламаның бірінші командасы B регистріне дерек енгізу командасы (LD B) болу керек. C регистрінің сұлбасындағы (3.4-суретті қара) төрткірісті OR элементі регистрдің нөлдік жағдайын анықтауға арналған, ол арқылы айналымды операциялардың ұйымдастырылуы кезінде шартты ауысу жүзеге асырылады;
3.4 Сурет
SP регистрі стек көрсеткішінің (Stack Pointer) қызметін атқарады, яғни PUSH және POP командалуы кезінде адрес регистрінің рөлінде болады: ондағы адрес PUSH командасының орындалар алдында кемітіледі (Predecrement) және POP командасы орындалғаннан кейін ұлғайтылады (Postincrement). Загрузка этого регистра осуществляется командой LD SP. Бұл регистрге дерек LD SP командасымен жүзеге асырылады. Бағдарламаның іске қосылуы кезінде бұл регистр 1111 жағдайына қойылады;
IP регистрі команда көрсеткішінің (Instuction Pointer) қызметін атқарады. Кезекті команданың коды жадыдан шығарылып, команда регистріне сақталғаннан кейін ондағы адрес ұлғайтылады. Бұл регистрге дерек LD IP командасымен жүзеге асырылады. Ондағы адрес, жүйенің кейбір альтернативті жұмыс режимдерінде анықталатын, шартты ауысу кезінде де өзгертіледі. Ол бағдарламаның іске қосылуы кезінде тазартылады.
Барлық регистрдің кірістері – ішкі дерек желісіне, ал шығыстары (үш жағдайлы буферлік элементтер арқылы) атқаратын қызметіне сәйкесті дерек желісіне немесе адрес желісіне қосылған.
Арифметикалық-логикалық құрылғы (ALU, Arithmetic-Logic Unit) арифметикалық және логикалық операциялардың орындалуын жүзеге асырады. Оның құрамында сәйкесті операциялардың орындалуын жүзеге асырушы бөліктемелер (sum, not, and, or, xor) және операндтар мен орындалған операцияның нәтижесін уақытша сақтауға арналған буферлік регистрлер болады.
Команда дешифраторы (DC_16) кезекті команданың кодына сәйкесті орындаушы микробағдарламасын іске қосады, яғни осы команданың орындалуына қатысты құрылғыларға жіберілетін басқару сигналдарының қалыптастырылу жолын анықтайды.
Таймер (CLK) командалардың орындалуына қатысты құрылғыларға жіберілетін басқару сигналдарының уақыттық таралымын анықтайды.
Қиыстырмалы микробағдарламалық құрылғы (Combi, Combinational Circuit) кезекті команданың орындалуын қамтамасыз етуші кеңістіктік және уақыттық басқару сигналдарын қалыптастырады.
Жады жүйесі (Mem) құрамындағы (3.5-сурет) 2D құрылымымен құрылған 16 ұяшықты дербес жадылық құрылымдарға (mem) бағдарлама мен оның орындалуына қажетті деректер енгізіледі. Олардың сәйкесті информацияны енгізу құрылғысынан немесе микропроцессордан енгізуін және оған шығаруын жадының жергілікті басқару құрылғысы (MCon) енгізу құрылғысынан немесе микропроцессордан түскен басқару сигналдары арқылы реттейді.
3.5 Сурет
Енгізу құрылғысы (In) бағдарлама құрамындағы командалардың кодтары мен оның орындалуына қажетті деректердің 16 түйме арқылы енгізілуін қамтамасыз етеді. Ондағы түймелер жинағының (3.6, a-суретті қара) құрамындағы әрбір түйменің жолында орналастырылған, D-триггерінің негізінде құрылған, D (Delay) құрылымы (3.6, b-суретті қара) сәйкесті түйменің басылуы кезінде нақтылы ұзақтықты теріс импульс қалыптасуын қамтамасыз етеді. Басылған түймеге сәйкесті код қалыптастырушысы екі мәртебелі шифратор негізінде құрылған.
3.6 Сурет
Жүйе бірнеше режимде істей алады, олар режим таңдау блогындағы (Regime) түймелердің жағдайымен анықталады. Олардың жағдайы сәйкесті көрсеткіштерде суреттеледі. Осы режимдерді суреттелік.
Енгізу құрылғысынан жады жүйесіне ақпарат енгізу M=1 кезінде жүргізіледі. Егер бұл кезде P=1 болса, онда ақпарат – бағдарлама жадысына (бағдарлама коды F тоқтату командасымен аяқталу керек), ал P=0 кезінде дерек жадысына енгізіледі. Жады құрамын тексеру Space түймесін қысқа уақытқа басып, жады ұяшығының адресін өзгерту арқылы жүргізіледі. P түймесінің жағдайы өзгертілгенде жады адресі тазартылады.
Бағдарламаны іске қосу M түймесін M=0 жағдайына ауыстыру арқылы жүзеге асырылады. Егер бұл кезде P=1 болса, онда арифметикалық және логикалық командалардың орындалуы кезінде C регистрінің жағдайы өзгереді (I мәніне сәйкесті), ал P=0 кезінде оның жағдайы өзгермеген жағдайында қалады.
ADS және ACS командалары арқылы S=0 кезінде – қосу операциялары, ал S=1 кезінде алу операциялары орындалады. V=0 кезінде AND командасы арқылы екі операнд арасында – қалыпты логикалық көбейту операциясы, ал V=1 кезінде деректің нақтылы разрядындағы бірлік битті табуға арналған биттік операция жүзеге асырылады. Бұл биттік операцияның орындалуы үшін аккумуляторға қажетті разрядында ғана бір тұрған санауыш енгізілу керек. Суреттелген биттік операция сыртқы құрылғыдан келетін сұраныс сигналын немесе іс жүзіндегі қолданба жүйелердегі құптау сигналын тануды елестетеді.
Жүйені суреттелген режимдердің біреуіне ауыстыру бағдарламаны іске қосу алдында жүргізіледі, бірақ оны бағдарламаның жұмысының барысында да жүзеге асыруға болады, бұл жүйенің жүйенің бағдарламалық иүмкіндіктерін кеңейтеді. Мысалы, жұмыс барысында қосу операцияларын алу операцияларына немесе конъюнкцияны биттік операцияға ауыстыруға болады.
MP4M микропроцессорының командалары мен олардың сипаттамалары 3.1 кестеде, ал жүйенің жұмыс режимдерінің қойылуы 3.2 кестеде келтірілген.
3.1 К е с т е
Мн-ка
|
Код
|
Операциялар
|
Hex
|
V=0
|
P
|
S
|
V=1; I=1
|
LD B
|
0
|
B←[(C)]; C←(C)+1
|
|
|
|
LD C
|
1
|
C←[(B)]; B←(B)+1
|
|
|
|
LD IP
|
2
|
IP←[(B)]
|
|
|
|
LD SP
|
3
|
SP←[(B)]; B←(B)+1
|
|
|
|
LD A
|
4
|
A←[(B)]; B←(B)+1
|
|
|
|
ST
|
5
|
[(B)]←(A);B←(B)+1
|
|
|
|
INR
|
6
|
A←(A)+1
|
|
|
|
NOT
|
7
|
A←
|
|
|
|
ADS
|
8
|
A←(A)±[(C)]; TC
|
P=1: C←var(I)
P=0: C = invar
|
S=1: SUB (–)
S=0:ADD,ADC (+)
|
Zc = 0: IP←IP+1
|
ACS
|
9
|
A←(A)±[(C)±TC; TC
|
|
|
|
AND
|
A
|
A←(A)۸[(C)]
|
|
|
Zc۸Za=0: IP←IP+1
|
OR
|
B
|
A←(A)۷[(C)]
|
|
|
|
XOR
|
C
|
A←(A) [(C)]
|
|
|
|
PUSH
|
D
|
SP←(SP)–1; (SP)]←(A)
|
|
|
|
POP
|
E
|
A←(SP)]; SP←(SP)+1
|
|
|
|
HLT
|
F
|
IP = invar
|
|
|
|
3.2 К е с т е
Кілт, инд-р
|
M/R = 1
|
M/R → 0: Running: A,B,IP ← 0; C,SP ← F
|
P=1: C←var(I); P=0: C = invar
|
S = 0
|
P/D = 1:
MemPr←IN
|
P/D = 0:
MemD←IN
|
Addition (+)
|
A ← (A) + [(C)]
|
S = 1
|
Subtraction (–)
|
A ← (A) – [(C)]
|
I = 1
|
PostDecrement C←(C) –1
|
C←(C)–1; (C)=0: Zc ← 0
|
I = 0
|
PostIncrement C←(C) +1
|
C ← (C) + 1
|
V = 0
|
Logical Operation
|
A ← (A) {۸ / ۷ / } [(C)]
|
V = 1
|
Verifying of Byte
|
(A)=0010…bi = 1: Za ← 0
|
3.2 MP4M моделін бағдарлау
3.2.1 Дерек таратылымы
MP4M моделін дерек тарту командаларының жұмысымен танысалық. Ол үщін алдымен M және P түймелерін M=1 және P=1 жағдайына қою арқылы жүйені бағдарлама енгізу режиміне дайындап, жадыға келесі бағдарламаның команда кодтарын енгіз.
Адрес
|
Команда
|
Код
|
Адрес
|
Командалар
|
Код
|
0
|
LD B
|
0
|
5
|
POP
|
E
|
1
|
LD A
|
4
|
6
|
ST
|
5
|
2
|
LD SP
|
3
|
7
|
PUSH
|
D
|
3
|
LD C
|
1
|
8
|
PUSH
|
D
|
4
|
POP
|
E
|
9
|
HLT
|
F
|
M және P түймелерін M=1 және P=0 жағдайына қою арқылы жүйені дерек енгізу режиміне ауыстырып, жадыға әртүрлі деректерді енгіз. Жады түрін P түймесімен ауыстыра отырып, жадыға енгізілген ақпараттың (бағдарлама мен деректердің) дұрыстығын Space түймесін қысқа уақытқа басу арқылы тексер. P түймесін P=1 жағдайына қойып, сосын M түймесін M=0 жағдайына ауыстыру арқылы бағдарламаны іске қос. Көрсеткіштердің жағдайын бақылай отырып, бағдарлама жұмысын тексер. Қажетті жағдайда бағдарлама жұмысын түймесімен тоқтата тұруға немесе M түймесін екі рет басу арқылы бағдарлама жұмысын қайта бастауға болады. Бағдарлама жұмысы тоқтатылғаннан кейін жүйені енгізу жүйесіне ауыстырып, дерек жадысын тексеру арқылы, ондағы өзгерістерді анықтауға болады.
3.2.2 Арифметикалық және логикалық командалар
Арифметикалық және логикалық командалардың іс-әрекетімен танысуды келесі бағдарлама арқылы жүзеге асыруға болады.
Адрес
|
Командалар
|
Кодтар
|
Адрес
|
Командалар
|
Кодтар
|
0
|
LD B
|
0
|
7
|
ADS
|
8
|
1
|
LD C
|
1
|
8
|
ACS
|
9
|
2
|
LD A
|
4
|
9
|
ACS
|
9
|
3
|
INR
|
6
|
A
|
AND
|
A
|
4
|
INR
|
6
|
B
|
OR
|
B
|
5
|
ADS
|
8
|
C
|
XOR
|
C
|
6
|
ADS
|
8
|
D
|
HLT
|
F
|
3.2.3 Айналымды бағдарламалық құрылымдар
Модель мүмкіншілігін айналымды бағдарламалық құрылымдардың ұйымдастырылу принциптерін келесі бағдарламалар арқылы тексеруге болады.
Келесі бағдарлама жадыға 1…5 адресі арасында орналастырылған N санның (бұл жағдайда N=5) қосындысын анықтауға арналған.
Адрес
|
Командалар
|
Кодтар
|
Адрес
|
Деректер
|
Адрес
|
Деректер
|
0
|
LD B
|
0
|
0
|
6
|
…
|
…
|
1
|
LD C
|
1
|
1
|
8
|
7
|
5
|
2
|
ADS
|
8
|
2
|
D
|
8
|
2
|
3
|
LD IP
|
2
|
3
|
A
|
…
|
…
|
4
|
HLT
|
F
|
4
|
9
|
|
|
|
|
|
5
|
B
|
F
|
7
|
Келесі бағдарлама жадыға 1…5 адресі арасында орналастырылған деректердің ішінен үшінші разрядында бір тұрған санды (бұл жағдайда адресі 2 ұяшықта орналасқан D санын) тауып береді, ал бұндай сан болмаған жағдайда (мысалы, дерек жадысының 2 ұяшығындағы D орнына 3 енгізілгенде) тексерім соңында бағдарлама жұмысын тоқтатады.
Адрес
|
Командалар
|
Кодтар
|
Адрес
|
Деректер
|
Адрес
|
Деректер
|
0
|
LD B
|
0
|
0
|
6
|
…
|
…
|
1
|
LD C
|
1
|
1
|
8
|
7
|
5
|
2
|
LD A
|
4
|
2
|
D
|
8
|
4
|
3
|
AND
|
A
|
3
|
A
|
9
|
3
|
4
|
LD IP
|
2
|
4
|
9
|
…
|
…
|
5
|
HLT
|
F
|
5
|
B
|
F
|
7
|
Әдебиеттер тізімі
1. Токхейм Р. Основы цифровой электроники: Пер. с. англ. – М.: Мир, 1988.
2. Токхейм Р. Микропроцессоры. Курс и упражнеия: Пер. с. англ. – М.: Мир, 1988.
3. Бураханова З.М., Шанаев О.Т. Аналогты және цифрлы электрондық құрылғылар / Оқу құралы. – Алматы: АЭИ, 1992.
4. Бураханова З.М., Шанаев О.Т. Электрондық тізбектер / Оқу құралы. – Алматы: АЭИ, 1996.
5. Бураханова З.М. Дербес ЭЕМ арқылы схемақұралыстық моделдеу / Оқу құралы. – Алматы: АЭжБИ, 1999.
6. Шанаев У.Т. Основы цифровой техники / Учебное пособие. – Алматы: АГУ, 1999.
7. Уэйкерли Дж. Ф. Проектирование цифровых устройств: Пер. с. англ. – М.: Постмаркет, 2002.
8. Хамахер К. И др. Организация ЭВМ. Пер. с. англ. – СПб.: Питер, 2003.
9. Шанаев О.Т. Electronic Workbench моделдеу жүйесі / казақ және орыс тілдерінде. – Алматы: 2003.
10. Угрюмов Е. П. Цифровая схемотехника. – СПб.: БХВ-Петербург, 2004.
11. Бойко В.И. и др. Схемотехника электронных устройств. Цифровые устройства. – СПб.: БХВ-Петербург, 2004.
12. Бойко В.И. и др. Схемотехника электронных устройств. Микропроцессоры и микроконтроллеры. – СПб.: БХВ-Петербург, 2004.
13. Сугано Т. Дж., Уидмер Н. С. Цифровые системы. Теория и практика: Пер. с англ. – М.: Издательский дом “Вильямс”, 2004.
14. Шанаев О.Т. Цифрлық құрылғылар және микропроцессорлар. Курстық жұмыстарды орындауға арналған әдістемелік нұсқаулар. – Алматы: АИЭС, 2008.
15. Шанаев О.Т. Цифрлық құрылғылар және микропроцессорлар: Оқу құралы / Алматы: АЭжБИ, 2009.
16. Шанаев О.Т. Микропроцессорлық жүйелер: Оқу құралы / Алматы: АЭжБИ, 2009.
17. Шанаев О.Т. Микропроцессорлық жүйелердің құрылғылары. Зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар. – Алматы: АИЭС, 2009.
18. Шанаев О.Т. Цифрлық құрылғылар және микропроцессорлар. Зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар. – Алматы: АЭжБУ, 2011.
19. Шанаев О.Т. Микропроцессорлық техника негіздері. 1-бөлім. Зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар. – Алматы: АЭжБУ, 2011. – 21 б.
20. Шанаев О.Т. Микропроцессорлық техника негіздері. 2-бөлім. Зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар. – Алматы: АЭжБУ, 2011. – 21 б.
21. Шанаев О.Т. Микропроцессорлық техника негіздері. 3-бөлім. Зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар. – Алматы: АЭжБУ, 2011. – 30 б.
22. Шанаев О.Т. Бағдарламалы құрылымдар: Оқу құралы / Алматы: АЭжБУ, 2011. – 80 б.
Мазмұны
Кіріспе
1 Цифрлық құрылғылар
1.1 Цифрлық құрылғылардың математикалық негіздері
1.1.1 Екілік санау жүйесі
1.2.3.1 Сандардың түрлендірілімі
1.1.1.1.1 Ондық санның екілік санға түрлендірілуі
1.1.1.1.2 Екілік санның ондық санға түрлендірілуі
1.1.1.1.3 Санның оналтылық жазылымы
1.1.2 Логикалық функциялар
1.1.2.1 Негізгі функциялар
1.1.2.2 Әмбебап функциялар
1.1.2.3 Теңдік және теңсіздік функциялары
1.1.3 Логика алгебрасының заңдары мен заңдылықтары
1.1.4 Күрделі функциялар
1.2.3.1 Логикалық функцияларды минимизизациялау
1.1.4.1.1 Тікелей түрлендіру тәсілі
1.1.4.1.2 Карно картасы арқылы түрлендіру
1.1.4.1.3 Арнайы түрлендіргішті пайдалану
1.2 Қиыстырма құрылғылар
1.2.1 Логикалық элементтер
1.2.1.1 Логикалық элементтердің тез әрекеттілігі
1.2.2 Қиыстырма құрылғыларды құру тәртібі
1.2.3 Қалыпты қиыстырма құрылғылар
1.2.3.1 Шифраторлар
1.2.3.1.1 Шифратордың өлшемін ұлғайту
1.2.3.2 Дешифраторлар
1.2.3.2.1 Дешифратор негізінде қиыстырма құрылғы құру
1.2.3.3 Мультиплексорлар
1.2.3.3.1 Мультиплексор негізінде қиыстырма құрылғы құру
1.2.3.4 Демультиплексорлар
1.2.3.5 Қосуыштар
1.2.3.5.1 Бірразрядты қосуыштар
1.2.3.5.2 Көпразрядты қосуыштар
1.3 Тізбектеме құрылғылар
1.3.1 Триггерлер
1.3.1.1 Асинхронды RS-триггерлер
1.3.1.1.1 Тура кірісті RS-триггер
1.3.1.1.2 Теріс кірісті RS-триггер
1.3.1.2 Синхронды триггерлер
1.3.1.2.1 Синхронды RS-триггер
1.3.1.2.2 Статикалы басқарылымды D-триггер
1.3.1.2.3 Динамикалы басқарылымды триггерлер
1.3.2 Регистрлер
1.3.3 Санауыштар
1.4 Жадылық құрылғылар
1.4.1 Жадылық құрылғылардың басқару сигналдары
1.4.2 Жадылық құрылғылардың басты параметрлері
1.4.3 Жадылық құрылғылардың негізгі түрлері
1.4.4 Жадылық құрылғылардың негізгі құрылымдары
1.4.4.1 2D құрылымы
1.4.4.2 3D құрылымы
1.4.4.3 2DM құрылымы
1.4.5 Тұрақты жадылық құрылғылардың байланыс элементтері
1.4.5.1 ROM(M) құрылғылары
1.4.5.2 PROM құрылғылары
1.4.5.3 EPROM және EEPROM құрылғылары
2 Микропроцессорлар және микропроцессорлық жүйелер
2.1 Микропроцессорлық жүйелердің құрылым принциптері
2.2 Intel 8085 микропроцессоры
2.2.1 Микропроцессордың құрылымы
2.2.2 Микропроцессордың басқару сигналдары
2.2.3 Микропроцессордың жұмыс тәртібі
2.2.4 Микропроцессордың үзіліс жүйесі
2.2.5 Микропроцессордың тізбекті енгізу/шығару жүйесі
2.2.6 Микропроцессордың командалар жүйесі
2.2.7 Микропроцессорда қолданылатын сілтеу тәсілдері
2.3 Микропроцессорлық жүйенің жұмысын бағдарлау
2.3.1 Дерек таратылымы
2.3.2 Бірбайтты арифметика
2.3.3 Екібайтты арифметика
2.3.4 Көбейту бағдарламасы
2.3.5 Стекпен жұмыс ұйымдастырылуы
3 Микропроцессорлық жүйе моделі
3.1 MP4M моделі
3.2 MP4M моделін бағдарлау
3.2.1 Дерек таратылымы
3.2.2 Арифметикалық және логикалық командалар
3.2.3 Айналымды бағдарламалық құрылымдар
Әдебиеттер тізімі
Достарыңызбен бөлісу: |