introducere in microprocesoare_part22
DESCRIPTION
16TRANSCRIPT
7/17/2019 Introducere in Microprocesoare_Part22
http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 1/6
(sP)
:
47831r,
(ot
:.1]f:,
>)
:
AsH,.
(rl
.
4784H
>)
:
r5H.
A_
eastr
instructiune
pcrrniic
.,'"a..*-inifiari
de
rcintoalcere
3gB4H
;tff
il'lf,eiiru$:i:;i;;,;"i;:{:#,
iu,
uai..n
*iiiir;e
rie
pds-
Exew,t'Ilt.:
IN
38;
SE
GITESTE
poRTuL
DE
INTRARE
I.{UMARI]L
38.
,
Presupunind
ci
portul
de
intrare
nr.3.s
confinc
in registrul
siu
"aloarea
R4FI
dupi
executarea
jnstrucrirrnii
Il
s'a'in-'".,rilotuto,
."
'a
gdsi
r,'aloarea
B+H.
Aceasti.
instructiune
poate
ri
i"r*llJ
numai
in
cazul.cind
po'turile
sint
adresate. prin'modaiitate
^
t
1o'
iiilitri
sau
I/o
cu
adresare
combinati
;i
nu printr-o
adresar"
i;- ;",ti;f
mem.riei
/E 5
? r\
66
SFIIL
(sP)
-_
(H)(r,)
Conlinutid
registr-elor
Fl
si
dc
strvi"
Sp.
Contini_rtur.ilc
t_1l @
(J{oae
FIL
to
Sp)
L
:1:i
trans{erate_in
registrut
indicator
reglstrelor
H
gi
L
nu
se
modifici..
i-l
I
1
I
l-L _{I_qI_Ll
cpcoDll
Cicluri:
q+.:-;.
Adresare:
Fanioane:
registru
68
OUT
*ddr.
port
(data)
<-
(A)
Se.iucarch.porlui,
a
al tnstruct
[un11,
cu
(Ou,tpwt)
c5"rui
adresS.
este
inciicatir
in
baitul
al
cioiiea
continutul
acumulatoruiui.
1
.
s
la
Exemplw:
SPHL
;
SE
INCARCA
\rrRFUL
STTVEI
CU
(H)(L).
Daci
(Fi):
BTFI Fi
(L):96H
dupi.
executarca
instrucfiunii
Spl-{L
::'#i
.J
r
l,Tn
;i,
rJr,
i""
*
Ff"."J
s
s
if
T;,
r t o
",
*i *-
l o
u
i.
j
i
i
i
o.
i
;
u,-,i
ri
_
LXI
H,4753H
j
*p_r{q4RCA
REGisr*uL
PERECHE
cuADriES.a
sPHL
:
liLT
IHHS'ft
,*orr.r
srr'Ei
.
.
"Qa
;i
instruc,iiy::1
iXI
"Sp,
.<lata1u.
instrucliunea
SpHL
poate
i:IH:'i?,,
i:ff
;i:l
iijl
:1":
:;"
:
f
:
jl
#;*r;*1,
fff
t"#l:
inigiaiizrre
cu
"i;."
.-i"i"",""".11'.1,",a
iir_
rc5iisrrul
ncicclrcH"
6?
IN
addr.
port
{A)
+_
(tiata)
Qn'pttt)
Se
incarc'
in
acumuiator
bcitul
py.,
q"_
magistr.ala
de
datc
de
:iiTrLnilt
,i,ft'"t
na..'l
"'t""."i1i",iti
in
S"i
a"
,r
toiiea
bait
OPCCDE
ADRESA
PORTULUI
Cicluri:
3
St5,ri:
10
Adresare:
directS.
Fanioane:
-
Exemplu,:
our
75
;
sE trNSCRItr
Itd
potirul
DE iESiRE
lduMAriul-
?$
CONTII{UTUL
ACUIIIULATCRUI_UI
Fresupunind-.cL
_qg'nfinutul
acuraulato.ului.
este
47H,
clup5
execu-
tarea instruc'giunij
9ur
7:.
in
r"egistrul"
portului
T5
se
va'ailu^
,raloarea
47H. r'a
fel
ca
si instruc,fiunea
de
citire
a
-portului,
poate
fi "pli;;i;
ioar
cird
p9^rtg{19.
sint
ad'resat"
u"r"i iae
di
memoii"'."o
"o
adresare
combinatS.
(S
5.2.1).
69
DI
(D
i,s abl,
e i,nter r
u
pt)
Executarea.
instruc{iunii
de
dezactivare (interzicere)
are
ca
efect
t'g:*.'
"^u
in stare
ldgic
n
r"1
o-
i i"r, *i-
ixTij'
;';
1.1";;J."'s?r,rr,ri,
asllei
incit
microprocesorul
nrr
va'iua
in
consiclerare
i-,i.i
o cerer€
cre
rntrerupere
care
ar surveni
ulterior
executi.rii.
acestei
instruc-
iuni.
I
rl
1
|
rl
rl
0l
ol
i1
r
1
opcore
Stiri:
4
Farnioane:
-
iirm
Cicluri:
3
Stiri:
10
Adresare:
directl
Fanioane: *
OPCODtr
ADRESA
PORTULUi
452
253
7/17/2019 Introducere in Microprocesoare_Part22
http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 2/6
Exemplu:
DI
;
DIJPA
ACEASTA
I}iSTRUCTIUNE
PROGRAI,IUL
NU
MAT
;
POATE
FI
INTRERUPT
PRINTR-O
CERERE
DE
;
INTRERUPERE.
Dezactivarea
intreruperii este
necesari. cind
microprocesorul
este
impiicat
intr-o
bucli
de
ieniporizare,
un
calcul
care
nu
poate
fi
intre-
rupt,
sau
este
necesar
s5. se
ignore
perifericele.
De
exemplu,
nu
poate
fi
intrerupt
segmentul
din
programul
principal
prin
."i"
."
schimbi.
argumentele
(parametrii)
cu
o
subrutind.
Dicd-
intreruperca
ar inter-
veni
in
iimpul
accstui
schimb
s-a.r
putea
casubrutina
sx
utilizeze
o
parte
drn-parametri
c'.r
valorile
actualizate,
iar
rpsful
parametrilor
cu
vaiorile
vechi,
ceea
ce
ar duce
probabil
la
rezultate
iircorecte.
in
afar5.
de
instrucfiunea
DI',
efectul
de dezactivare
al intrerupe-
rilor,
INTE
:
0,
r"ezult5.
automat
in
urrna iniliarizSrii
microprocesoroloi
.cu
semnalul
RESET
si in
urma
acceptarn
uner cererl
prrn
fgenerarea
semnaiului
TNTA
:
0.
,
Cindg
intrerupe-re
este
a-cceptati
de
ci.tre
microprocesor,
INfT
-
0,
automat intreruperile
sint
dezactivate
IhITE
:
0.
^Aceastf
clezactivare
este
necesarS,
iu
primrl.
rind,
deo-arece
p.erifericu-l
care
a cerut intreruperea
isi
intrerupe
propia
lui rutini.
de
seriire.
in
al
doilea
rind.,
nu este
de
{orjt
ga'n
'periferic,sS.
intre.rup5
subrutina
de
servire
a
aliui
periferii.
Existi.;i
c.azul
cind
un
per-ifeiic
poate
intrerupe
subrulina
db servire.
a..altui
pe5ifgric,.
dar
a-tunci
se imbune
o
funclionare
corectd"
prin sta-
bilirea
prioritllii
perifericelor
la
^intrerupere.
Prin
urmare,
dac5
dup5. acestc
doui
semnalc
RESET
si INTA
:
O,
sau
dup5.
o
instructiune
-DI
este
necesar5
functionut""
rirt.*ului cu
intreruperi,
bistabilul
INTE
trebuie
adus in
,i"r""
logicd. l,
adicl
funcfionare.a
intreruperilor
trebuie
autorizati.
ceea
ce
se"poate
realiza
cu
instrucfiunea
urmltoare,
EI.
70
EI
(Ettttblc
ittlc;.ritpt)
Instrucfiunea.
cie autorizare
a
intreruperilor
are ca
efect
acceptarea
eventualelor intreruperi
ce
intervin
dupi
executarea
instruiliunii
care
urmeazS.
lui EI.
.E
xenrplot,:
EI
;
INTRERUPERILE
CAIIts
INTERVIT-{
I\
PROGRAA{
DUPA
EXECUTAREA
II{STRUCTIUNII
DCR
If
VOR FI
D
CR
UI
ACCJ]PTATE.
.
Acceptarea
intreruperilor
are
loc
insJ"
nu imediat
dupi
executarea
instrucfiunii
EI
ci
abia
dup5.
terminarea
cxecutirii instructiunii
urmd.-
toare
(plasati
in program-imediat
dupn EI).
f,inind
.ooi
d"
aceasti
restrictie,
a
autorizirii
intreruperilorf
instruciiunea
EI
este
uitiina
instrucfiune
dintr-o
subrutini
firainte
de P.ET.
:
;
INSTRUCTIUNILE
SUBTTUTINEI
itl
;
AUTORIZAREA
INTRERUPERILOI{.
IIET
;
REINTOARCERE
IN
PROGRAULIL
APELA}iT,
,
Prin
aceast5.
pia:are
a ins_trucliunii
EI
se asigurl
ca
o
intrerupere
s5"
nu
poatl fi activat[.
pinil
dupi
ce
adresa
de
re'enire
lin
programul
ipciant
a
{ost
scoasa
din
stivi
$i
introdusi
i:r
rrumird"torirt
de
i,1.".".
Intrcruperile
pot.[i
dezactivate
dc
multe
ori in
cadrul
subprogramelor
qle
servire
a
pcriicricelor,
dar
sint
autorizalc
ia
termina-rea acestor
subprograme
ca
in
subrutina
urmS"toare:
.PRIN
URMATORL.L
PROGRATN
TIICROPROCESORUL
ASTEAPTA
PII{A
CIIVD
ESTE
II{TRERUPT
(PRIIV
ACTTVAREA
SETIINALULUr
rr{T
:7
)
DE
/0
ORi
DE
CATRE
PERIFERICUL
CARE
RASPUI{DE
LA COT,'FII?X,TAREA
trI'{TRERUPERII
.NTA
:
O
C(T R"ST'
3.
LA
ADRESA
78 I
5E
.AFLA
1t/.SrRr_rcTrur{EA
DE
SAL.t-
L.4
SUt3(RU-fInA)
DE
SERVIRE
A PE{<IFETIICULU
I.
jtlrlririilojiirl
Cicluri:
Stiri:
Fanitrane:
I
4
ORG
OH
JMP
START
ORG
18H
JlrP
sLrB
ORG
4OOH
IVIVI
A,1O
STA
CONTOR
LXI
SP,\iIRF
EI
PRIMA
INISIRUCIIUNE
LA
OH.
PRIMA
IhISTfIUCTIUNE
LA
CONECTAREA
TEI{SIUi\II.
RST O11B
PR.ODUCE
SALT LA
ADRESA 18H.
ACEASTA
ESTE
PRI\{A
INSTRUCTIUI{E
CU
CARE INCEPE
SERVIREA
PERIFERiCULUI
CARE
GENEREAZA
RST3
.IT{TRERUPEREA
ESTE
AUTO},{AT
DEZACTiVATA
iNTE:
O
ETICI]ETA
START
LAADRESA4OOH.
I
NITIALIZE
AZ t\
CONTOIiU
L.
STOCHEAZA
CONTORUL
INITIALIZEAZA
VIRFUL
STIVEI.
AUTOITiZAREA
INTREITUPERILOR
254
OPCODE
START:
255
7/17/2019 Introducere in Microprocesoare_Part22
http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 3/6
ASTEPT:
LDA
ORA
JNZ
DI
:
CO}iTOR
A
ASTEPT
;
I}.tr
ACEASTA
BUCLA
SE
ASTEAPTA
;PINA
CINDSEREALIZEAZ
lOCERER{
DE
INTRERUPERE.
SE
DEZACTIVEAZA
INTRERUPERILtr
FtrNTRU RESTUL
PROGRAMULUI.
ADITESELE
DINTRE
18I{
SI
2OH
}JU
SII'IT
SUFICItrNTE
PE},]TRU
NUI\IARUI,
DE
IbISTRUCTIUNI
AL
E
SUB(RUTiNEI)
DE
SERVIRE
A
PERIFERICULUI.
SAI-VEAZA
PSW.
SAL\I-EAZA
REGISTI?UL
PERECHE
B.
SAI-VEAZA
RE
GISTRUL
Ptr}itrCI{E
D.
SALVtrAZA
REGISTRUL
PERECHE
I].
SE
DECREMENTEAZA
CONTORUT
CU
UNU
PROGRAMUL
DE
SERVIRE
AL
PERIFERtrCULUI.
REFACE
REGISTRUL
PERECHE
REFACE
RtrGISTRUL
PER]]CHE
REFACE
REGISTRUL
PERECHE
REFACE
PSW.
AUTORIZAREA
INTRERUPERILOR.
REVENIRE
IN
PROGRAMUL
APELA}1T.
(Halt)
instrucliuni
are
ca
efect oprirea
executdrii
teptare pinh.
cind
apare
o
intrerupere.
Dupd.
reintoarcerea
din subru-
tina
de
servile
a
intreruperii,
prin
care s-a
forfat
iesirea
din
starea
I{ALT, se
reia
execri.tarea
proppamului'de
1a
instrucfiunea imediat
urmX,toare
instrucliunii
HLT.
DaciL
intreruperile
nu
sint
autorizate,
prin instrucliunea EI,
inainte
de
a
surr.-eni
HLT,
microprocesorul 8080
n'n
va
mai putea
iesi
din stalea
Halt
decit
printr-o
reiniqializare
hard-
r\''are
a
sistem,.rlLri
(semna1u1
RESEI')
c'-r
pornire
de
la
adresa
0000H.
La
ccnectaiea
tensiunii adresa,
de
la
care
incepe microprocesorui
e-'rplorarea
prograinului
esie nede{iri.itiL.
Piin aplicarea semnalului
RtrSET
se
forleaziL
adresa 0000Fi
:
in
3cneial,
acest sennal
de
inifia-
lizare
se
forrneazi autornat
(cu ajutoi:-il
r-rnui circuit
cie
integrare
la
intrarea
unui tligg.'r
Schmit, ligur-a
5.{.
lr)
dupi
un
anumit
interval
de timp.
O
seci-en{ir
obignuiti
d'.:
instr-ucfiuni 1a
iniliaiizare ar
puiea
fi:
ADRESA
SUE:
PUSH
PSW
PUSH
B
PUSH
D
PUSH
FI
LDA
CONTOIT
"DCR
A
STA
CONTOR
:
{
I
J
I
$r
d
i
I
H.
D.
B.
H
D
B
PSW
0{i00H
EI
OOOiH HLT
Si-] .\UTORTZEAZ.\ I\TRFRUPFR{LE
i\TERZISE
DE RESET.
rN
ACEASTA
S]'ARE
(i{.\r-T)
SE
ASTEAPTA
IsDEF'I\IT.
SE PO.\TIJ
IESI D{.\
ST.{.REA
HALT
I)OAR
PiRIN"IR-O
CER]IRE
IIE
trl,iT'iiERUPE|{E
API-ICATA
}TA\UAL SAL ALTOIIAT.
OP
POP
POP
POP
EI
RET
Uneori,
la
adrescle
0000H
gi
0001H
este
inscrisi
o
altd.
adresS.
{,vector")
cai{l
este
inceputul
ulr,ri
prograin
de
initiaiizare
(bootstrap)
rezident in.t{OlI.
-\cest
i;rogi'arn,
relatii,
scur't.
incarcl
cli:
pe
r,rn
suport
{disc,
banriS-)
pio-<rain'r1
principal
in
mcrnoria
RA}I.
72 NOp
(J:o
o
f
erati.oit)
VI
X{LT
Executarea
acestei
programului.
I
ol
tl
r
I
r
lol
1l
1
loi
opcoDE
Cicluri:
I
St[ri:
7
Fanioane:
-
Exernplu:
:
I{LT
;
SE
OPRESTE
EXECIi-TAREA
PITOGRAMUTUI
(STAREA
;
;
HALT).
Reluarea
execut5"rii
programului,
dupd.
ce
s-a intilnit
instruciiunea
HLT, poate
fi f5.cut5"
doar
de citre
o cer6re
cie intrerupere
INT:I
sau
o
reini{ia-lizare
a
micrcprocesorultii
comandat
cu
senriralutr
de
initiali-
zare
RESET. Instrucliunea
III-T
poate
fi
privitd. ca
o
opera{ie
de
ag-
256
Executarea
instrr,rci.iunii \OP nli
are nici
un
efect
asupra
regis-
tlelor
micrcrprocesoruJ.ui,
cu
e:rceplia nurniirltorului
de
adrese
PC,
care este
incremeniat
in
veclerr-a
aclresirrji
mernoriei
de
prograrne
pentru
u.rmirtoarea
instrucfirinr'.
lo
olo o
l_q_
o1o
o i
opcoDE
Cicluri:
1
St5.ri:
-1
Fanioane:
-
E:ientpl'u.:
:
xop
lroP
iioP
"\ioP
CU ,\CESIE
PAT{IU
I\SI-RUCTIL'){I
\OP \t
Str
OPEREAZA
\Illtc
I-\
rDItOi,i)..\U
i
i
DOIR
cE
COlisl,-U'{
3X{-_1-0.
SiARi.
At,Ei-.\:.I 11'IlCl'
SE
OR-|I\E
CU
INSTRL'|CX-IL,\F:A
li0\'
-\,,\.
?,:ti
7/17/2019 Introducere in Microprocesoare_Part22
http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 4/6
Instrucfiune.a
Noj
poate
avea
dgu'.
ut'iziri:
1
-
consumarea
numitor
stiri
in
rearizaiea
"n"*ito.
intirzieri
;
2
-pS.strarea
alru_
itor
spalii
in
progra-;i"
'-,r;j;;initi'ut.
ince,
pentrurca
ulterior
se
e
rntroduci
in
aceite
spalii
iniiru.liurif"-
,".;#;J_".
*
Grupwr
instrwcriwn,or
cre
htcrw
cct,
stiua,
de
intrarefie;ire;i
d,e
contror,
PUSH
rp
-
inscrierea
in
virful
stivei
'a ..orrli.rototoi
registrului
pusH
psw
_:U:iil:{i,;:fi"
stivei
a coniinururui
cu'intuiui
pop
rp
-
{dl}:?:1.'l1i'xiliJn{,",:n*i.,ffi,trrt?[d_;
pop
psw
-
fi::Tl:"{
ffi?;rul.srir.er
a
corrtinururrri
cuvinrului
.\fHL
_
^Si,:ffi:,,,^lJJ;;iiT;,il,iflm;i%*:,#,'tri'?:
l
celor
doud
rocati;
ai,,
,.iriri';ii;::
(i*rt,ong,
,tark
spHL
-'i:,{,}t':i ::#""Ji:li'
conrinuiur
regisrrurui
pereche
H
tN
addr.
pori-
Vf:it'ri'",t"|Ji",
dintr_un
porr
de inrr.are
(rnfti).
U'f
addr.
u"l
;,i::,._i"r""'i"ii',I"
p"rr
de.
i.sire
1o'rtprt1.
Di
_
r\urorlzarea jntreruneriior
(l:.nahic
iniiriu,pt|.,
HLT
_
Dezacti'area
intrerirperilor.,lpl;qu;,,1"*irrrpt1.
ii6i
:
*lji'"'1T3."1X:",#.,?ji;;;",'1y-i,i'''|f"c
5.4.6.
programarea
cu
macroinstruc{iuni
Analizind
un
observa
.,,..*riurfr,"fJln...::
t:1,:0":.
dc
asambtare,
uncori,
se pot
#il:1,:o1f
":il*::*,:li'1" :":1:^#lif
,Xti:"1
jl,.i#:"#I,#SiTT;
ti""'a"ili#t',";l'i,",1,"1X:o;:,f:J$L.,:i;'i"i;i,f
"ti;r#:;T,r"",fi
seudo-insrructiunii
altul-,iia"iiatr
i'fOi,;r,rrr;runri',.silflorur
pentru
uP
8080
pot"di
aceastd
r..iiit-i-^
i"'""
r.i.u,,o";t"
-"..oinstructiunire
ntr--un
program
in"lirn
baj
J"'.tl*
ui"rl.
progr"*
area
cu
macroinstruc_
'il,',r',7,fii',]n,','."'
faze
distinc
l"
i
i'1''i;'i',-i;k';;;;;'i",)lro,,o,ro
n,o-
,"t^3tr:yro*ru^*
/'.
urmitoarea
secveni-a
ae
instrucfiuni
este
ne-
bitul
2:
ori
de cite
ori
in
portul
a"."a."ra-irri,*"r.h""ra
ANI
111r
110-IB
OUT
5
srruri?)
ESTE
MAScAT,
RAMIN
NEMODIFICATI.
BITUL
2
DIN PORTUL
5
VALOAREA ZERO.
RESTUL
BITILOR
ESTE
INSCRIS
CU
Definirea.
AceastS"
secven 5. de
mascare
poate
fi
substituiti:
a.
-
ctr
o
pseudoinstrucfiune
MACRO, cu
numele
MASK,
de
parametrii
ADPORT,
MASCA
care
sint adresa portului
intrare/ie;ire,
r'espectiv
cuvintul
de
firascare
;
b
-
cu
succesiunea instructiunilor
care
f.ormeazl,
corpul
macroinstrucliunii;_
c
-
cu
pseudoinstrucfiunea
ENDM
."t".p".Ul.a
sfir;itul
secvenlei
de
instrucfiuni.
,
Ilefer,irea.
in
cadrul
programului,
in
timbaj
de
asamblare,
ori
cle
cite
ori
este nevoie
de
secventa anterioard.
pentru
mascare se poate
face
o re{erire
la
aceastS. MACRO instrucliuire
in
felul
urm1tor:^
Eticheta
Cod
Operand
MASK
MACRO
ADPORT,
MASCA;
INP
ADPORT
ANI
MASCA
OUT
ADPRT
ENDM
;
MASK
2,tt1t
1101B
NIASK
23,1111 i
i01B
Comentariu
DEFINIREA
MACROINSTRUCTIUNII
X,IACRO
DENUMITA
MASK,
,
CU
PARAMETRII
ADPORT
SI MASCA
SITUATI
IN
CIMPUL
OPERAND
SEPARATI
PR]N VIRGULA.
ACESTE
INSTRUCTIUNI
FORMEAZA
CORPUL
MACROINSTRUCTIUNII
MACI{O
PSELTDOINSTRI
ICTI{
INEA ENDM
INDICA
SFIRSITUL
SUCCESIUNII
CAIiE
}-ORMEAZA
O
MACROINSTRUCTIUNE.
ALTE
INSTRUCTIUNI
ALE
PROGRAMULUI
SE FACE
PRIMA
REFERIRE
LA
MACROINSTRUCTIUNEA
MASK
IN
CARE
SE
VOR
FACE SUBSTITUIREA
PARAMETRILOR
CU
VALORII-E
ADPORT:z,
MASCA:1111
11OIB.
ALTE INSTRUCTIUNI
ALE
PROGRAMULUI.
A DOUA
REFERIRE LA
NIACROINSTRUCTIUNEA
MACRO
CU
VALORILE 23,1].11
11018 PENTRI,
PARAIIIETRI
I. ALTE I NSTRUCTIUNI
ALE
PROGRAMULUI.
IN5
258
;
CONTINUTUL
REGISTRULUI
DE
LA
PORTUL
;
5
ESrE
TRANSMTs
N
Atir\fCii?on
Dezaoltarea.
Unei
referir-i
in
programul
surs[
ii
corespunde, in
urma
asambl5rii,
in
prograrnul
obiect
o
dezvoltare
ca
cea
din
corpul
macroinstrucfiunii
de definifie,
evident
cu
valorile parametrilor indicate
255
7/17/2019 Introducere in Microprocesoare_Part22
http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 5/6
;a
referirea
'cspectir-i..-De
excr'plu,.pertru
cele
doud.
referiri
anterioare
.rramblorul
r
a
pt.ocluce
dezr.oltdrile
urmi-toarc:
,
IN
z
.c-rTpsTE
poRTUj_
DE
ADRESA
2.
1ry
1111
11018
;
IfASCHEAZA
BrTUL
1.
IIJT
z
;
rrscnrn
FonTLir
DE'ADRESA
2.
;
CITESTE PORTUL
DE
ADRESA
23.
;
I{ASCHEAZA
BITtiL
i.
;
I\SCRIE
pORTt-L
DE
ADRES-{
23
LOC.\I-
TR.{)iSF
T"R-\NSF
LHLD
-\Ilit
1
NIO\r
-\,lI
LHLDI, ,\DTi:
Ifo\: B,],I
LHI-D
.\DR3
MO\r
(t,tI
END}I
;
ETICHETA
TR-\NSF \-.{ ,{\-E,1,
O
;
SENINIFICATIE
DO.\R.
IN
;
1\IACROINSTRUCTIL'NE-\
I\C-\R.
;
(H
-
L)
<-
(ADRI).
;
(A)<-
((H)(L)).
;
(H
-
L) <- (-\DR2).
;
(B)<-
((H)(L)).
;
(H
-
L)
<--
{^\DR3).
;
(C)* ((I{)(L)).
;
f.ERMINAREA NIACROINSTRUCTIUNII
;
I\C-\Ii.
I\STRL]Cf'IT'NE
A PIIOGIT.\MT'LT:
I,
PRIMA
REFI'RIRE
LA
I,I.\CROINSTRUCTIT'\E.\
INC.{R-
(.\DR
.t-
2)
+
(ADR).
(H-L)
+-\DRf1.
(ADR
+
1)
<_
(ADR
;
1).
(H
-L)
<-,
-\DR.
(ADR)<-
(ADR
+
2).
INSTRUCTIUNI
ALE
PROGRAIIT'I-I]I
IN
23
Ai{I
i11111018
our
23
Iiticheta
Cod
Operancl
LOC,\L
sir
de
etichete;
ciqgirl
operand
al
pscudoinstrucliunii
MACRO
cuprinde
o listi
de
aramelrii
care
respecti
regulilc
ce
'qerinrre
^;^;;ri#i;iir
(varorilor)
sinrbolice.
Ciud
sc
iece
o referli"-ilA?'nb
ordinea
in
succesiunea
valorilor
ciin
cimpul
operand
trebuie
rt ;;;;r;;"d[
cu
ordinea
in
succesiune
a
aramerrilor
din cimpul
ope.iand
de'ra
defiui'"
;
;;;;;;;;iarea
acestei
,
o'di'i
va
duce
ra
'arori
gti;it"
in
a"ri.ri".-.'ri;.t'i""51i.'t"rir.
a
unei
acroinstructiuni
sint
,m"ai.
pulin9
-il"to.i
a.iti
""tli
'ae
p"ram"t.ii
din'lista
de
definitie
atu'ci
.i-tro*i
u.ig,reuJ'i,Jol.*i"rr.o
pentru
alorile
lipsi,.
iar
in
.n""i-.iriJ^..'lriroo,-
mai
multe
'alori
ultimite
.
care
sint
i'plus
r.or.fi
negiijate.
uoei"
etichete
"r.
*.tr*r]iunilor
di'
orpul
macroinstrucliunii
ioi-
fi
s"rse-de
erori,
dac'
exist'
mai
multe
eferiri
la
l{ACRo
in
cah^rl
piogi"-"r"i,
sau
daci
aceste
etichete
sint
folosite
gi
in
alta
par.te.
i,,
i...'t.'."ro.i
"sarnbloiut
,r"
"urigna
cile
adresi
or-i
c'l'e
cite.ori
intilne;te
aceste
etiche[.
-i;-.;-"or
produce
crori
dacL
eticrreta
'u
este
fotosite
r'
J"ru
macroinstructiunii
sau
daci
ceasta
este
numai
.o
singrirS.
datS
referitt
r";;;;;;.
d;;r"
a fi
p*_
sibili
asignarea
rnai
mulTor
";il
^.-l.i"qi
"dJ#;;-;;;il
va
ciprta
semnificalie
localir,
doar
in
cadrur
a."'''oitariir";;;ri;;,
;;in
introdu_
;
till',_b3:fi
ni'ea
ma
croi
trsr
ru c
t
i u' i
i
J
upi
-uAa
do';'
pr"*,raoinrtru.-
RePrirtz.
in
prog.arnul
urmitor
cu
prima
iefer-ire
la
macroin-struc-
tiunea
INCAT{ se
preglte;te
per-itlr-r
trei-cu'inte,
afla-ie
in
locatiiie
cle
adrese
succesir-e
ADR, ADR+1,
ADR-|2,
inr-ersarea
ordinii
de
sto-
care,
iar cu
a
doira
referire
se pregS"te;te
adunarea continuturiior
ciin
lccatiile
dc
adr:ese
3EOH
rci
BYTi',,
apoi
comparaica
acestei
sume crr
conlinutul
loca iei
de
atiresS.
IrERIF:
Jl\iz
INC.\R
AD}?
}XOV
II,A
DCX H
MCV M,B
DCX H
lIlF l-
,l
.\l-)P L
;
;
;
;
T::
il:
r
INCAR
3EOH,
BAIT,
I'ER]F
ADD B
CbIZ
START
A
DOUA
REFERIRE
L.\
il{ACiTOINSTRUCTITTNE.\
I}iCAR
(A)
<-
(A)
-i- (B).
(A)
-(c)
:?
DACA
(A)
+
(C)
SAr_T
LA
ADRESA
START.
Dezaoltarea.
ln urrna
substituirii
macroinstructiunii
de
cltre
asam-
bior
programul
de mai
sus
va
fi:
Cod
Opeiand
EXETIPLCL
2.
Succesiunea
de
instrucfiuni
care
incarcd.
confi-
'riturile
dir
trei
locafii"
d9
memorie
de
_adres
eoni,
ebnz,
ADR3,
:-:ryrli"
i'
registre-ie
-4 B,
c
poate
fi-aetidte
intr-o
r{ACRoinstruc-
truue
cu
numele
,INCAR
in
felul
urrnitor:
Definirea
lric'+n{''
rr-A'cRo
{DR
1,-{DR2,-{DR.I
;
T,IACRoINSTRUCTT'NEA
INCAR
cu
i
|
;
FAi{-{METRII
ADR1,,qU-nZ,
,{nnt.
zou
Comentariu
ETICHETELE
DIN
CI\IPUL
OPERAND
AU
O
SEI{I,IIFICATIE
DOAR
LOCALA
IN
DEZVOLTARILtr
DI}I
PROGRAUUL
C.\RE
UR},TEAZA.
Cod
Operand
JNZ
ACOLO
LHLD
ADR
NIOV
A,M
LHLD
ADR+1
NIOV
B,M
LHLD
ADR+2
N,IOV
C,NI
MOV
},i,A
DCX
H
MOV
M,B
DCX
H
MOV
U,C
LHLD
MOV
LHLD
MOV
LHLD
MOV
ADD
CMP
CNZ
3EOH
A,M
BAIT
B,M
VERIF'
C,M
B
C
START
261
7/17/2019 Introducere in Microprocesoare_Part22
http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 6/6
EXEIUIPLUL
3
Ad,resarea
ind,irectd.
La
adresarea
indirecti
operandul
instrucfiunii
indicS.
o-adresd.,
ca
Ia
adresarea
directi",-Jar
in
ro.i1i-.,i
".""rta
adresi
nu se
afl5.
operandul
ci"utat,
ci
adresa-
""ei
"tt"
ir]..1ii
r"
."re
se
afli
operandul.
Succesiunea
de
instrucliuni
care
rearizeazl
transferur
intre
rin
registru
RI
si
o
locafie_de
memorie
a ci.rei
"ar"re-i"-"rri
in
locatia
de memorie
cu eticheta
ADIND
(adres.are
ilaili;j-.;"#;"';";rtt[i
in
urmS.toarele
doui.
macroinstru'ctiu"i.-
pot
adresa
dou6localii
distanlate cu cel
mult
256
de adrese
(o
paginl),
pe
.cin^d
aceea;i
.adresare
cu
registru
pereche
necesitd.
doua
rbgiitie
p6-
reche
incS.rcate fie
de
la
alte
registre,
iie
de
la
patru
locatii
de memoiie.
o
situalie
tipici
de utilizare
a
adresirii
indexate
o
bonstituie
ciu-
tarea
intr-un
tabel.
ln
acest
caz,
registrul
index
va
confine
adresa
de
inceput
a
tabelului-
din
memorie,
iai
deplasamentul
va
ionline
adresa
de
intrare
relativS"
la
inceputul tabelului.
De
exemplu, pentru
a
ajunge
Ia
adresa
67
relativS.
la
adresa
de
inceput
a
tabeluiui
(iare
s-a iniarcit
in
index)
se
adund
depiasamentul
67.
'
La
microprocesorul
8080
adresarea
indexati
se
poate
realiza
cu o
macroinstrucliune
care
.genereazS"
succesiunea
de instrucfiuni
pentru
transferul
dintre un registru
RI si
o
localie
de memorie
a'ci.rei ldresi.
se
obline
prin
adunarea
deplasamentului,
RP, la
adresa
debazd,,
ADRB,
conlinutl
in registrul
(index),
H-L,
CADIND
MACRO
RI,ADIND
LHLD
ADIND
MOV
RI,M
;-L\IDM
,
IADIND
}XACRO
RI,ADiND;
LHLD
ADIND
LIOV
,\,{,RI
ENDM
MACROINSTRUCTIUNEA
PEI{TRU
CITIRE
FOLOSIND
ADRESAREi
INDIRECTA.
SE
INCARCA
REGISTRUL
PERECHE
I1
DE
LA
ADRESA
AD]ND.
CONTINUTI,IL
LOCATIEI
ADRtrSa
INDICATA
IN
REGISTRUL
PERECHE
DEPLASAT
IN
RI.
SFIRSITUL
DE
H
ESTE
CAINDX
MACRO
RI,IIP,ADRB
LXI
H,ADRB
MACROINSTRUCTIUNEA
PENTRU
CITIRE FOLOSIND
ADRESAREA
INDEXATA.
REGISTRUL
H-L
FOLOSIT
CA
INDEX
SE
INCARCA
CU
ADRESA
DE
ETICHETA
ADRB.
CALCULUL
ADRESEI
INDEXATE.
(Rr):((H)(L)).
SFIRSITUL
1VIACROINSTRUCTIUNII
CAINDX.
NTACROINSTRUCTIUNEA
PENTRU
INSCRIERE
FOLOSIND
ADRESAREA
INDEXATA.
REGISTRUL
H-L
FOLOSIT
CA
INDEX SE
INCARCA
CU
ADRESA DE ETICHETA
ADRB.
CALCULUL
ADRESEI
INDEXATE.
((H)(L))
:
(Rr)
SFIRSITUL
MACROINSTRUCTIUNII
IAINDX.
MACROINSTRUCTIUNII
CADIND.
N,[ACROINSTRUCTIUNEA
PENTRU
INSCRIERE
FOLOSII{D
ADRESAREA
INDIRECTA.
SE
INCARCA
REGISTRUL
PERECHE
H
DE
LA
ADRESA
ADIND.
CONTINUTUL
LUI
RI
ESTE
INSCRIS
IN
LOCATIA
DE
ADRESA
INDICATA
DE REGISTRUL
PER.H.
SFIRSITUL
MACROINSTRUCTIUNII
IADIND.
DAD
MOV
ENDM
IAINDX
MACRO
RP
RI,M
Ri,RP,ADRB
EXEMPLUL
4
Adresarea
indexatd.
Microprocesoarere
care
au
aceasti
facilitate
de adresare
indexati,
posedi
printre
r"girtr"r""
ili"r;;';i
"in
registru
T:::11 i",liri,
registrw
ind_ex'cu
lungim"ea
de
r6'biii.-.q[r" "
efectir.i
penrru.o
rnstructrune
cu
adresare
indexatd
se
formeazi prin
adunarea
la
continutul
registrului
index
a nnui
,uuinr
qs
;;i
;tlt
a",,"-i,
depra_
sare.
Dacl.
in
registrul
index
exist5
o valoare
fixl'cll"Ji.i^,
"aresb.,
de
la
aceasta
in
bontinuare,
pot
rezurta,
in ordinea
numerelor
naturale
inc1'
256
de
adrese
prin
adunat"u
d"pt"sumentuiui,
00H
+
FFH.
Adresarea
indexatr
se
aseami.nd-
iu
adresa."u
.u"r"giriro
pereche,
9ar
spre
de-osebire
de.
aceadta
din
urml,
o
i;.;;;ti";;
;;?;.tte
numai
2
baili
-
codul
operaliei
qi
deplasarea.
i"
aoox
il;t;;.ii;;ii,rd.""t"
,"
262
LXI
RP
DAD'
RP
MOV
M,RI
ENDh{
Adresarea
yelatiad
este
de^stul de apropiati
de
adresarea
indexatii,
totu;i
existi
unele
diferenle. In
primul
rind
deplasamentul
este
adunat
tot
la index insl
egal
cu
valoarea curentS.
a numiiritorului
de adrese,
PC.
ln
ai
doilea
rind,
deplasamentul
este
considerat
in
complement
fa i.
de
doi,
deci
rezult|
o
adresS.
inainte
(in
sensul
de
crestere
a
adleselor)
263