introducere in microprocesoare_part21

6
&xempl,u: CAI-L SUB; SAI.T LA ADitESh SUB(RUTII{A) Se r)fcsupr*rc ra.f"sdl-"r" g204H a pi-ogramului se ghse;fc instruc- grunt.a de rnai sus GALL slJD. Fi;;driro.r,noolizatd dc etichcta SUB egal'" cu t7B2H. i". ]Tll,l _.,i".i ".t."iSe): 832AH. Dupi executarea instructiunii se sare la-rurarca p'ogramuruiit:qrin4 a" t, ia."s^ rig2', iar in sri'i errc denrrs^ r,aiturpiA r?;;a 8328H si baitul 82H ra adresa 83:9H. indicaro.ui ui.rut"i-#iu;i.:;;i;: adi-esa 83z8trt (ca in m'delul *:ri'l;':,:f uurl'r,f ""'" ;"'t"i'ii"'i;;:i"-;;;"',1"'"i,i;,.tix'p, ug,"o,*r Ambele instructirini jMp_a<ldr, CALL aCdr produc saltul la atlresa indicati.de opcrandur "aiat.-n""J"rrii*o".or.st5. i' faptul cd. ra instruc_ flunt cAlL' duni -exccutarea subpiogr"rou-rrii aperat, se rer.ine in prcgramul apclant Ia rnstiuc1i""l"""'iii"aiat urm'd.toaie instrucfiunii .ALL (de aceea acresa.instrucfiunii a*l"r"nir" ;;;;;.;;rin stivn), IsT J.35, i,,n" .r""9_!- t"!il;H;;; i"i,rn ,",,, se mai revine la adresa rrncdiat urmltcar.e, figura 5.34, a. J' 56 Ccondition addr (Cond,ition cait) dacd (CCC), ((sP) - t) <_ lpcrr) ((|f) - zy ,- inc$ (SP) *- (Sp) - 2 ' (PC) *- (bait'3) (beit 2) Daci. conclilia specificatS" este veri{icat5., atunci sait tra instruc- iiunea cu adresa inCicatS" iri baitul 3 ;i 2 al instructiunii Ccondition, aitfel se continuS. cu adresa urmltoare. E>lecutarea. instructiunii Ccondition, cind se real,izeazYa saltul, necesrii urmX.toarele operalii; 1 - se -qa|veaz1. in stivir la adresa (Si') - 1, baitul cel mai semni- ficatrv (PCH) al numS"rS"tcrului de airese si La adresa (SP) - 2, baitul cel mai pulin semnificativ (PCL) ; 2 - se nicsor-eaz5. cu doi conlinutui registruiui SP pentru a indica virfui stirrei; 3 - se inscrie in nurnS.rS.torul dc programe adresa de sait. Iiici un ianion nu este afectat. Adresa salvatl in stivl, de revenire in program, este cea. corespunzitoare instructiunii urm[toare. ritCl('rC,rlolol CPCODE BAITUI- INFERIOR BAITUL I suppnron Cicluri : 315 St1ri :11117 Adresare: imediatlicu registru pereche F'anioane: - Cele doul valori pentlu numirul de cicluri gi num5.rul de stZ.ri coresptrrid cazrilui cind nu se realizeazl saltul, respectiv cazului cind se realizeazl saltui. Exetnplu: iitl orJ^rouru, ALI .( I cALL.SUT i I I ,, ,ru i 'l PRO5FAI.fu L PA JIi I IP;.I CPi0LrE OAITUL INFTR AL ATRS BAITUL SUP AL ADRS TNSTRU(. URiiATca[,i suonurw.i ,Rti\iA tflstR.A :'.rBRUTifiE I 1i CNZ ADRES; ; ; CZ ADRES; ; C}.IC ADRES; CC ADRES CI)O ADRES; DACA REZULTA'TUL NU A FOST ZERO, Z:0" S;\LT LA ADRES, ALTFEL CONTINUA CU I }J STITUCTIUb] EA URI,TATOARE. D,\CA I{EZULTATUL A FOST ZERO, Z:1, SALT LA ADRTiS, ALTFEL CONTI}IUA CU I}i STRUCTIUI.{EA URN,{ATOARE. DACA NU EXISTA I'IIA}{SPORT, CY:0, SAI-T' LA ADRES, ALTF]]T CO TTINUA CU I }i STRUCTIU }.TEA URNTATOAI{tr. DACA EXISTA TRANSPORT, CY:1, SALT LA ADRES, ALTFtrL CONTINUA CU I NSTITUCTIUNEA IIRMATOARE. f ri".tr -: b) DACA REZULTATUL ARtr UN NUMATT IMFAR Dtr BITI i, P:0, SALT LA ADRES, ALTFEL CO}{TINUA CU I}.TSTRUCTIUNEA UIdI\4ATOARE. DACA REZULTATUL AR.E UN NUMAR PAR DE RITI 1, P: 1, SALT LA ADRES, ALTFEL COI{'II}'TUA CU INSTRUCTIUNEA URMATOAR E" Fig' 5'35 Trastu prin memoric deterrninat d.e o ir,str.rrcliur.r, de aperare, cAI.I.: a _ apctare necondiliorra1i, celI- -iij'il, u _ apelarc i.o,,.,i1iinora) numai dac6 CY : l, CC St'B 240 H AITLJL SUi? AL AiJRS CPE ADRES 241

Upload: mesuzana-1

Post on 06-Dec-2015

243 views

Category:

Documents


0 download

DESCRIPTION

13

TRANSCRIPT

&xempl,u:

CAI-L SUB; SAI.T LA ADitESh SUB(RUTII{A)Se r)fcsupr*rc ra.f"sdl-"r" g204H a pi-ogramului se ghse;fc instruc-grunt.a de rnai sus GALL slJD. Fi;;driro.r,noolizatd dc etichcta SUBegal'" cu t7B2H. i".

]Tll,l _.,i".i ".t."iSe): 832AH. Dupi executareainstructiunii se sare la-rurarca p'ogramuruiit:qrin4 a" t, ia."s^ rig2',iar in sri'i errc denrrs^ r,aiturpiA r?;;a 8328H si baitul 82H ra adresa83:9H. indicaro.ui ui.rut"i-#iu;i.:;;i;: adi-esa 83z8trt (ca in m'delul*:ri'l;':,:f

uurl'r,f ""'"

;"'t"i'ii"'i;;:i"-;;;"',1"'"i,i;,.tix'p, ug,"o,*rAmbele instructirini jMp_a<ldr, CALL aCdr produc saltul la atlresaindicati.de opcrandur

"aiat.-n""J"rrii*o".or.st5. i' faptul cd. ra instruc_flunt cAlL' duni -exccutarea subpiogr"rou-rrii aperat, se rer.ine inprcgramul apclant Ia rnstiuc1i""l"""'iii"aiat urm'd.toaie instrucfiunii.ALL (de aceea acresa.instrucfiunii a*l"r"nir" ;;;;;.;;rin stivn),IsT J.35, i,,n" .r""9_!- t"!il;H;;; i"i,rn ,",,, se mai revine la adresarrncdiat urmltcar.e, figura 5.34, a. J'56 Ccondition addr (Cond,ition cait)dacd (CCC),((sP) - t) <_ lpcrr)((|f) - zy ,- inc$(SP) *- (Sp) - 2 '

(PC) *- (bait'3) (beit 2)

Daci. conclilia specificatS" este veri{icat5., atunci sait tra instruc-iiunea cu adresa inCicatS" iri baitul 3 ;i 2 al instructiunii Ccondition,aitfel se continuS. cu adresa urmltoare. E>lecutarea. instructiuniiCcondition, cind se real,izeazYa saltul, necesrii urmX.toarele operalii;1 - se -qa|veaz1. in stivir la adresa (Si') - 1, baitul cel mai semni-ficatrv (PCH) al numS"rS"tcrului de airese si La adresa (SP) - 2,baitul cel mai pulin semnificativ (PCL) ; 2 - se nicsor-eaz5. cu doiconlinutui registruiui SP pentru a indica virfui stirrei; 3 - se inscriein nurnS.rS.torul dc programe adresa de sait. Iiici un ianion nu esteafectat. Adresa salvatl in stivl, de revenire in program, este cea.corespunzitoare instructiunii urm[toare.

ritCl('rC,rlolol CPCODEBAITUI-INFERIORBAITUL

I suppnronCicluri : 315St1ri :11117Adresare: imediatlicu registru perecheF'anioane: -Cele doul valori pentlu numirul de cicluri gi num5.rul de stZ.ri

coresptrrid cazrilui cind nu se realizeazl saltul, respectiv cazului cindse realizeazl saltui.

Exetnplu:

iitl orJ^rouru,

ALI

.(I

cALL.SUT iI

I,, ,ru i'l

PRO5FAI.fu L PA JIi I IP;.I

CPi0LrEOAITUL INFTR AL ATRS

BAITUL SUP AL ADRS

TNSTRU(. URiiATca[,i

suonurw.i,Rti\iA tflstR.A :'.rBRUTifiE I

1i

CNZ ADRES;;

;

CZ ADRES;;

C}.IC ADRES;

CC ADRES

CI)O ADRES;

DACA REZULTA'TUL NU A FOST ZERO, Z:0"S;\LT LA ADRES, ALTFEL CONTINUA CUI }J STITUCTIUb] EA URI,TATOARE.D,\CA I{EZULTATUL A FOST ZERO, Z:1, SALTLA ADRTiS, ALTFEL CONTI}IUA CUI}i STRUCTIUI.{EA URN,{ATOARE.DACA NU EXISTA I'IIA}{SPORT, CY:0, SAI-T'LA ADRES, ALTF]]T CO TTINUA CUI }i STRUCTIU }.TEA URNTATOAI{tr.DACA EXISTA TRANSPORT, CY:1, SALT LAADRES, ALTFtrL CONTINUA CUI NSTITUCTIUNEA IIRMATOARE.

f ri".tr -:b)

DACA REZULTATUL ARtr UN NUMATT IMFARDtr BITI i, P:0, SALT LA ADRES, ALTFELCO}{TINUA CU I}.TSTRUCTIUNEA UIdI\4ATOARE.DACA REZULTATUL AR.E UN NUMAR PAR DERITI 1, P: 1, SALT LA ADRES, ALTFELCOI{'II}'TUA CU INSTRUCTIUNEA URMATOAR E"

Fig' 5'35 Trastu prin memoric deterrninat d.e o ir,str.rrcliur.r, de aperare, cAI.I.:a _ apctare necondiliorra1i, celI- -iij'il, u _ apelarc i.o,,.,i1iinora) numai dac6CY : l, CC St'B

240

H

AITLJL SUi? AL AiJRS

CPE ADRES

241

'CP ADI*ES ; DACA q,ryZL,_L1.ATUL-ESTE L,i\_NUIIAR .OZIf{1.,; S :_e, SALT re-nnnEs,. -arrr.bt*bo-rUl,un: cr:^1)SIII cil["NL:e uRrl.rAT.'cM ADREs i o.rca ne2r;iiiifii

; \EG Arr i - i: i . :.Lri:il l4I*T.l'i*.rFEL; co.r*TINLA cu rr_Jinucr. t n,iiaroairt.

'n figura 5'35' &

-este reprglentat trasertl pri, nremoria de progrartte

,fI" :1ilii,3#'$"i;J I i[ : t ?Jfl,iu. ",,i ai,, t,;," i "1

t'i,,; ti u ne ceinstructiun" ciI condiqionat ." ,"rri,-l.oli,: YLq."_,i" faprut te, i"lSPeiant, dcci irebuie sal,-ari-in.l"i','i?"1tn.,lo.bt-:li1" in prograrnuitnstrucf iune salt condili;;i ;; ;;.;l,il:,ri.: ,i:#i::;

t:.,,1"1iX;decr nu se ur'izcaza st;;i.'n*rrte".i tb apticafiiti;;r*-;" e.xistamemorie RAM (deci :jl: ll rrli;l;:;_*t .1" tli.ti"iii.,*."".c.rit- (up"-lare de subrutine) trcbuie iop;"d.nt"t cu instrucliunca J\Ip.57 RET

(PCL) - {Sp)(PCH) *- ((spt * rr(sP) -- 4qsPl i )1 '

ii,,l.'.T*,"X"1 "::T

": il:::', # l:.,:*:: rr e ( S pl,in numrrit";ia ;dU iirJi":ilTiJ,oTiup:l,,1tu a. ind.ica virful srir.ci.'"i".tr"?ijlir,*",.,,,ranron al microproccsorului. -""" u!(aur

Fip. 5.36. Traseul in nlcnroric d( scris dc'instnrctiuttea de re l rtire corrditionatd-.

RC(C: 1)

Daci" concli{ia specificatS. este adevirratl se realizeazi o operafie'ca in instrucliunea anterioarl RET, iar dacl condilia specificat*nu este adevlrati, se continui" cu urmitoarea instrucliune dir:'

subrutinl, figura 5.36.

( lleturiz. )

(SP) -r- 1), cei doicaxe se introduce

este m5.rit cu doiaf.ecteazE, nici un

t-tl 1i--clciopl ol opcoDE

Cicluri: 113Stiri: 5iI1Adresare: cu registru perecheFanioale: -cele doul valori, pentru numirul de cicluri 9i -de st5ri, corespund.r

cazuhli cind nu se exicutl revenirea in programul apelant ;i cazului'cind se executE- revenirea in programui apelant.

E xentpl w:Il"i I

iillNrgARcERE r\* prioGRA}{uL APELANT.Dac5. inainte de rce (sp) : 48A.5Fr ,";1!":j.,-^^^lTt*ttj3"]i RET, pointerul siiveiilHt( ::1; j: i:;, r

^i i iiffi #[l'",,'rltlrrrciicr (sp) : 4I.45 H, i;;r;"i-;";;i;:'"-r#t[" ',1?,i; .l:'J,'""#tl,il;li]

fiTf T,::li3lli:1i1.:, au, OsH' .t" ieii,' ""pi cxecu rarea i ncrrrrer i r, -i ;

58li:::-,::::i;;",.'i"h."i.""1'.":liif#fi l:J,.iBFi=i",t.*ii";t;Rcondition(Cond'ition, return )

iijltoTti llLr rt / opconnCicluri:St5ri:Adresare:Fanioane:

Exem.fh.t,:

3i0eu registru pereche

Dacd (CCC)(PCL) <_ (sP)(PCH) *- ({sp) + r I(,sP) ..- 11st'; i z1 '

RNZ

RZ

TTNC

DACA REZULTATUL ]{U A }^OST ZEP"O, Z: O,

RtrV]]NIRE IN PROGRAI{UL APEI-ANT, ALTFEL SE

CONTINUA CU INSTRLCTtrUNEA URMATOARE.DACA REZULTATUL A FOST ZEI{"O, Z: I,REVEI\IRE IN] PROGRAMUL AI'trLANT, ALTFEI, Sh:

CCNTIi{UA CU INSTRUCTIU}{EA URMATOARE.,DACA NU EXISTA TRANSPOITT, CY: CI, REVE}TIRETN PROGITAMUL AIEI-ANT, ALTtsET- SE CONTINUACU INSTRUCTIUNEA UR\TATOAITE.

PFOGRAI{UL PRINCIPAL

243"

RC ; DA('A EXi.Sl^,r -r.r? A nrcnz,.

_,lffi{'& *fir, L ; DACA RDZIJLTATUL ARtr i]; P:1, Rtr

; n kTil?bfhi-5fr"i,ifl fi{r*w#+ii*B r r r

E xernpltt,:

RST lOi ; SALT I-A SUBRUTINA

Celelalte varianie ale instructiunii de

DE ADRESA 101y $:28FI-salt RSTn sint:

00H.08H.10H.1 BItr.20}l.28H.30I{.38H.

RST OOOR

RST OO1BRST O1OBRST 011BRST 1OOBRST TO18-r,tsT 1108itsT 1118

RSTORSTlRST2,RST3F{ST4t/L. I -)

RST'6RSTT

SAI-T LA ADRtrSASAI-T LA ADRESASALT LA ADRESASALT LA ADRESAS,{LT LA ADRESASAI-T LA /rDRl-S.tr.SALT LA ADRESASALT I-A ADRESARP

i F^fit$,?,."'a^FH3"Tf,l,v.n fyr^R pozrrrv, S : 1r

Rili j S?ilf$;"*, S,- ;yii$i:3'T",ti^#:f ,tr il f"'ffi"Ptl"-""-

., i 5$ffi*:ff pg!**g$,qffiffih= r

tt:f) _ t),_ (pctt) (Restort)

l!'Ji)*..il; g'"!iPC *- s(,rnrufl -tConlinutul numir5.torului de adrese fi99p*t'u "'"'"i."'la?;:;:[";:",X:'i::^J^l9J t," sarvat in stivi,

i,::!i3i:r':':"iffi ;i1rxilx#Ti["":i?FFI=si"f t'*esie plasat in r"#atur ti"",. "ri".i.lli,,lu9t,

00i, 0l c, .... i ro,.tn,13, 4, 5, deci o *uiriprt.ure cu opt .

";*11;1:T in poziiiiie billoi

ir Itto,@l opcoon

-,*; toq,'o

esie introdus. de ci.tied'(NN-\), tun formu .rrndtoare: adresa instrucliunii -a"-l"ii

fentru apelarea srrbrutinelor de la aceste 8 aclrese fixe, instruc-tiunea RSTn introd,usi in prograrn, este mai convenabill decit instruc-liunea CAI-L (care necesiti trei baifi). Dacir intervalul de B bi!i, intredou5. adrese consecutive apelate de RSTn, nu este suficient pentruinstrucliunile necesare unei subrutine, atunci la adresa de apelare (cunSf; va fi o instrucliune JMP. La adresa de salt, deteirninatl de in-strucliunea. JMP, va fi atunci plasatl prima instrucliune a subrutinei.

Instrucliunea RST se folosqte, foarte des, in tratarea intrerupe-rilor. Cind un periferic necesitS" intervenlia microprocesorului activeazl"semnalul de cerere de tnireru,.pere INT : 1 dupl care microprocesorul.poate confirrrra acceptarea intreruperii prin activarea semnalului deacceptare INTA : 0" Semnalul de con;t'i,rmare a intrerwpert'i va fi ac-tir.at numai dripi terminarea executirii instrucfiunii curente 9i dacSsernnalul ie -ialidare al intr.^ruperii, este activat, INTE : 1 ; daciT\TE : 0 atur"ici cererca de intrerupere estc ignorati, : 'lTA : I "

Sernnalui cle autorizare a intreruperii INTE este dezactivat (:0) d11p5inilializarea sistemului prin comanda RESET sau dup[ instrucliuncaDI 69 9i va fi activat (:1) dup:r instructiunea EI 70. Dup5" apariliasemnaluiui de control I-NTA : 0 (in timpul cichilui ma;inl iNTllE-RUPERE figura 5.6, relalia 5.7., e) perifericul care a cerut intrerupereatrebuie si depuni pe bilii DBDgDy ai magistralei de date codul binar'al numi.rului z (vectorul de intr-erupere), adic5" RSfn, figura 5.37,a.Rezultd c5. instrucliunea RSTn nu apare nici unde in memorie, deciprogramatorul nu are control asupra ei. Procesorul recunoscind prinace;ti trei bili o instrucliune de tip CALL executl propriu-zis sarcinainstrucliunii R.ST; adicl depune in stivi registrul PC ;i asambleazS.bitii Nl/l/ intr-o adresi de ialt De care o iniroduce in PC. ln conse-bilii Nl/l/ intr-o adresl de salt pe care o introduce in PC.pe

in

" Stiri: 1 1Adresare: cu registru perecheFanioane: _

-,_ _ D., fapt, instructiunea -RST anarsingur nuii, .onc"puta sd fie utiliirtle :a c ,instluciiune 9ALt, pe undepunerea in stivd, a. ";;;il i;TililiL:il

";i"fi:i"g:lU:;lf X:crrn cere 8 adrcsc .cb-rirute di,r;/- :_N'Nr/, ril;jft"'.li s 1a*pt"rur*rn pozifiile 3, 4 ;i s' "i"-.,i'i"i,jifli,r.rrucfiune).

244

H

cin!5", microprocesorul va iduce in registrul de instrucliuni primastrucliune piasatS. in una din cele opt adrese fixe specificate de ccitre.la, instrucliune ce aparline subrutinei de servire a perifericului caie alansat cererea de intrerupere. AceastS. subrutini trebuie s[ se termine

245

50 PCHL (Jun'''!

(PCH\ -- (H)tPcL) * (t)Cont inutui rcgistruiuiliLtor de aCrcsc ['C'

5.4.5. Grupul instrucgiunilor de control'lucru cu stiva

II and, L ,iti,dit'eci-riic",:e II and L to PC)

pereche H este tlansferat in registrul numS'*

1 I ii- I 0 0 I CPCOl-.tli

I.IAGISiRA] A D! DAl I

o)

b)

Fi-q' 5'37. Instrucliune R.Sf : a - succesiulca sem.alelor inprocesul de generare a codrlui instructiurrii; 6 - structuri.posibild penti.u generarea cu.rtintuhii c1e cccl RST5

cu RET. TotodatS., la activarea sernnalului de confirmare a i'treruperii{-NTi\,:0, automat intrmuperiJc sint dezactivate prin inscrierea sem-nalului de autorizare IN.i'jj'ia. r-aloarea zerci.cu acest sistem cle i'trerupere se pot triinite spre procesor optvectori de intrerunere, .i,'ci -e pot.des,'r ui s ."..'li J,..-ii*r"i,p"r" 1p"ri-:[crice). Pentru fi6care cerei-e irc intr-erupere trebuie ca periferic*l s:iy:"d? un.circuit (sau rirai inulre) ."r" r. g,.ncrcze'ccr.rril cl,, irlrerir-

lJei('. LA slstemcle srmple, care ncct,siti doar scr,,rir.ca unr.i sir)eur.e ce_reri de i'trerupere,. 1e.-poate folo,si controlerul cle sistem Bizl; pentru

'Seneralea vectorului 1i 1, adici" rtsr7. pcntru generarea uirui alt iectorse poate utiliza o struc,turi simpll, ca in figura\11, tr, ior*nll din pc,tiTSL. Aceste porfi sint permanent in staica TLZ, dai 'o.li autr;rizatepcrrtru frinclionarc .":r,i:J,] ,

prin b( nrnrl,,I L\ li, =: 0 , r ri figr_:rh se{;ene.reaz5" RST5, adic5. i 1i01 it1. corespondenla dintre'coJul instruc-liunii z si cuvintul fortat pe rnagirir:rl.i- cle date este clati," in tabeiuiurm5"tor.

Cicluri: Istarr: JAdresare: }a registruFanioane: -

ExenoPl,n':

PCHL ; CONTiNUTUL REGISTEU_LUI I'trRECHE H ESTEr vlrv

; inexseER"Al rx -xulraRAToRUL DE ADRESE'

Dac[ (HL) : 7388H instrucliunea PCI{L va avea ca efect saitul

tra instruc!runea oe "At"te'liSgFi' lirstrucliunea PCHL poate fi con-

sideratl ca un ="1t ;;;;;;iii"^ti' -dfcl' apar multiple posinititeli ae

Li;'t,-,;;;g**l "iiit)t"a'lp.'^iiir" aritmctice, lg*ice sau de deplasare

iir preparar"" .o,-,1,,,liiutit;-i"gittttrlrri,perechc fI' care apoi este tran-

sterat cu instrucfr";l'cHi"it' pC' clic{ noua adresi de salt'

I itstruc!ittnilc dc sall :

lllP addr - Salt neco-ntJilionat la adresi ("[tttttp\'

i.r"OiriJ" acldr - s"ii t"ttaifional. ].a aclresl Gattdi'tio;tal I unt p)

t'\I-[- addr - -iicl;;"t'"t"taitl"nati. a ibrutinci^ (Cnll'1'

t r.onrlitron ad6r- - liill;;;; .""4;i"".1..i a subrutinei (Cattdil;ot; cail)"

li;'i'"""" *--

- Rivcnire clin sulrruiini (/ic!u;'ri)

Itconcition - ;il;;;;;; -to"Ai1io"uti 'din subrutill (Conditiotu

-'t#:l:. :ul1'J'(ii;,r ic ar va i n re gi strui p ereci:e H

(i;;; i;r; L inrttYeci-mote H &nd L to PC)'I

Lfnstrucfiunea Cuvintul ioi'fat pe magislrala cle clate Adresa inj meniorie

0000

b; l-

RSTnPCHL

61 PUSH rP

((sP) - i1 *QltJiispt - z) +- (vt)(sr; -- ((sP) - 2)

de intrareiie;ire;i deOH3H

10rl18H20}f28H30H38H

II]STRL]iTIUNEA RSic

246,

(Pusk )

z+t

t r irl-nlprltTtolrt opcoDrl

Continutul r-egistr.ulirl, pj::.h* rp.cste. salvat in stivit :.n felul ur_mitor:. I - baitul cer mar semnificativ2 * baitul .Jr-'.ioi'Dutin s"*-irin.+i*" ,lh J1 adresa ((Spl _ ii;2 - Laitur cer m: i p,jt,.n..;;;iil;;;;' ,:" j:.llJ"ill5ttrf.'];ac{uatizcaza a<lrcsa ,i.tutui ;i;;t'('(Sii _ z), ca in figui-a s.26, a.

punzltor baitului din registrul de condi{ie (deoarece bitul dintre Z gi,\C este intotdea.una O, cel dintre AC ;i P este de asemenea 0 ;i celtlintre P ;i CY este intotdeauna 1).

Urririrtoarea secven!5. de program, reprezentati ;i in figura 5.38, a,;aLveazir in siiv5" lntregril conlinut a1 rnicroprocesorului (operafie nece-';ar5. 'uneori inaintea rulSrii unei subrutirie) :

PUSH B

F33il P,])UStr{ PS\A'

" ll figura 5.38, c plin M(5F-1), respecti-r N{(SF-2), se infelege lo-,calia din r"riei-aorie a c5.rei adrc:s5. este specificatS. prin registrul indicatcrrle stivi, din care s-a scS.zut o unitate, respectiv din care s-au sc5-zutrlour-L unitdj i.

63 FOF rp(rt) *- ((sP))(r/o) *- ((sP) + 1)

(s-P) -- ((sP) + 2)

Confinut'crl localiei de memorie, a cdrei adresS" este sp.ecificatS. deregistrul indicaior de stir'5" SP, se deolaseazS. ca baitul cel maipulin semnificativ al registrului pereche rp; con{inutul ad::eseiurml"toare din stivi se deplaseazi. ca baitu.l cel mai semnificati.vin registrul pereche rp. Se actualizeazS" ac1resa virfului stivei prinmd.rirea cu Z a conlinutului registiului SP, ca in figura 5.38, b.

Cicluri: 3Stiri: tlAdre-sare: cu rcgistrir pcreche-tr anloane: _

Exemplu:

USH BPUSI{ DPUSIJ HPLTSH SP

SALVEAZA trN STTVA. R-1,GISTI{UT- PERtrCiJE B.SALVEAZA IN .sTtVA -rtr-;crsrji.iL. i,fRBCFIE D.sA LVEAZA r N sr r v r ni n _J'si :i u-li e,:nec F{ E r i.ACEASTA Foiin[A n*U-E-S]E abw6n.

FUSH PSw (P'us/i, l.trocessor status zgord)((sP)-r)*(A\{(9i) - z) o * (c},), ((sp) _ 2), <_ i

it:il _ z), <__ (P),'((s'p) _ zl, i o '

ll:'O - !)a* U'c1,"i1si1 -'i), *l o1!X) -,?i,: q:(rip) - zl,''l $1(5r') +- ((SP) _ z)

Con{inulul registr.ului d"--.1-3r" al.i:roccior.uiui (p:i\V), cc;rnpus diu

f :!!!,i11!: ;i if |,:i:;' ;- i: lffi i; n lr r: ri'ri " i. .n",' oi r ;.cste s;ilvat in stivr. Se actualize"rJririrrlel inet puirl :cj-rlnificaiiv,(fig. 5.26, nl .---'*'

vL (rvLqdr!Lr:dLa vlr!ul stttcl cu arl','ca ((SP) - 2);

(PoP)6Z

I t J t I rl-fT,j-f L, ;-r,rr/triOPCODFICicluri: 3Srari: 1 iAdresare: cu registru perecheFanioane: --

Exern.pl,u:

PUSH PSW ; SE 'A^LV€AZA

C'NTII,IUTUL REGISTRULUI; FSW IhI ST.IVADacd (A) :sslr.;i (s) : r, (z):qi (Ag) :,9,(f)_= l, (cy) :0gi (SP) : t3'07H ca urrnare a exeiutdrii instrucliurrii.pUSU pSW laadresa 1306H se inscrie ts',l"; i;]hl-::r i30sH se inscrie B6H .or"r_

248

o) b)Fig. 5.38. Succesiunea adrcselor localiilor din stivb folosite la, salvarea confinutulul

microprocesorului (a) ;i la refacerea conlinutului microprocesorului (b)

249

Cicluri: 3Steri: 10Adresare: cu registrr: perecheFanioane: -

'Exemplu:

PoP B ; SE I]XT}TAG DIli srlvA cordTI\.uruRII-E PEI{TRUITEGISTITELE B SI C.PoP D ; sE EXTITAG DL\tr s-flvA CONTINUTURILE PENTRUtr.EGISTRELE D SI E.POP H ; SE EXTRAG DIN S-IVA COI{TINUTURII-E PENTRUREGISTRELE H SI L.POP SP ; NU SE ADMITE ACiESTE FORMA.

Dac[ (SP) : T.IAOH ;i ciacl ]a aclresa 73AOH este inscris g4H, iarla adresa 73AiH estc insclis FtH,';;;;mare a. executiei instrucfiuniifqP B in registrur R se. inscrie rin i* i! ;.gir;;;i3'r. i"."ri" saH"Adresa virfului stivei din Sp va ti ISIZH

I 1i i lRtFlllo k-trl OPCODE

(Pop processor status uord.)

,tixemplu:

POP PSW ; SE READUCE DiN STIVA CONTINUTUL; REGiSTRULUI DE F.ANIOANE SI AL; ACUI{ULATORULUI.

UrmS.toarea secvenll din program, reprezentatS. ;i in figura 5.38,bnelace intregul conlinut al microprocesorului (operafie necesarS. uneoriLa terminarea subrutinei ;i revenirea in programul principal)

POP PSWPOP HPOP DPOP B

In figura 5.38, b X'I(SP) este adresa din memorie indicati de iegistrul5P, iai'M(SP + 1) adresa din sti-,'d. specificatS" de SP la care s-a adiugato unitate. Deoarece, in operalia cu stivl, se plstreazi principiul LIFO{Last-in-First-Out) se observS. din exemplele de la insiructiuniLe6Z;i 6a si din figuriie 5.38, a;i 5.38, &, c5": succesiunea instrucfiunilorla salvarea continutului intern (cind se apeleazi' o subrutinS") este in-vers5. fai5. cie succesiunea instrucfiunilor de refacere a confinutuluiintern (Ia revenirea din subrutinS.).

65 XTIIL (Exchange stack tolt with H and L)

(r) -- ((sP))(I{) <- ((sP) + 1)

Confinutul registrului L este schimbat cu conlinutul localiei demeinorie a cii,rei adresS" este indicatS. in SP (virful stivei).Continutul registruiui H este schimbat cr,r continutul locai:iei dememoric a ciirei adresir este i:rai 1na'.'c crt unu CLecit r.irfu1 stivei.

Cicluri: 5Stiiri: I BAdresare: cu regis'ilu perecheFanioane: -

Exernplu:

XTFIL ; SCIJIIfB INTRE REGIS[R,UL irERIiCt{E ii SI VIRFUL; STIVEI.

Dqcl (H) : 15H, (L) : A5FI, (SP) : t783tl, (h,I < 4783H >) :: B4H Fi (M < 1184H >) : 3SH, dup5. executarea instrucliunii XTALregistrele vor avea urrnitoarele coniinuturi (H) : 38H, (L) : B4H,

64 POP PSW

(cY) -- ((sP))o(P) - ((sP)),(AC) -- ((S,o))o(Z) * ((sP)).(s) - ((.sP)),(A)*((.sP) +l)(s'P) -((sP) +2)con[inutul ]ccatici cre .rncmorie, a cirei adrc:a este specificatide registrul indicator de stiva sp esie translcrat i;r reelislrul defanioane cu asarnblarea

,ca in figura s.lo.-c""fi""i"i il?Tti"r "r_m5'toare clin stiv; este transfet"i ir, ".;"1;il;.'3J'#t"?rir""raadresa

'irfului stivei prin mi'ire cu z a confinutului* ,"!rt..rruiSP, ca in figura 5.3S, 6.

i 1 | 1 I 1 | 0i 0l 0l 1 I 1 i clrcojlF

lllllliliololol I opconpCicluri: 3St5.ri: i0Adresaie: crr registr-u p{'i.eche-ti antoane: -

250

H

251