Introducere in Microprocesoare_Part23

6
ci;rdbilul opt"estc 0 si o aciresl in spare cindbitul opt este 1. Ad,resareS r:elativi perntite genera.iea unui coci indepeirdent de pozilia instrucfiunil in plogram, adici. o aciresf relati'ii la continutul curlnt aitr pc. I-"a utr 8080. o astfcl dc pi,sibilitate tle gnner-art, a unui cod independent 'Ce pgziiie rezuitl plin foiosirca :irnbrhilui g in gimp,.ri ope?anC (-,-ezi $ 5.3.1). -Adre:3rea relativi,.cai-e prcrduce o adresi reiativi^ia conlinutul curent din PC, poate fi prir-it.i. ca o generare de cod relativ siu cod lelocabil. .. . 9ypl cum s-a r-Izut in S 5.3.1 asamblorui pioduce pentru fiecare linie (instrucfiune) de program, in iirnbaj cle asarnbtrarej o translatare in cod rna;ini. cperatiile necesai:e pentit translatarea mnemonicelor insirucliunilor sau operatiile implicaie c1e o pseudoinstrucfiune pot fi descrise printr-o succesiune de- instrucfiuni, ^definite ca o' m"rrdi*- strucfiune. Rezrdtl c5. tiir program asambior poaie fi conccput pe bazx ile macroinstruct.irrni, pentru fiecare instrucliune si pseucioinstiucfiune iefininclu-se cite o -dacroinstrucqiune; atunci de fiecare datd. cind asambiorul exploreazi o linie in piogramul sursi r-a face referire Ia rnacroinstrucliunea corespunzS.toare. De exemplu, fse presupune ci a.samblorul intilnegte rnnemonicul ECITJ ciluia ii coreipuncie in aSCll codul 45 51 55H; atunci o subrutiniL de clutare va g-Lsi acest cocl in iabeiul- de simboluri pentru mnemonice (deci mnemonic corect) la o adresS. ADRS. Apci, cu aceastb" adresl" se prepa-rx" referir-ea la macroin- sti'uciiunea de tratare a pseudcinstructiunii -ggu. Folosirea macroi;r- strir-cfiunilor poate fi o modalitate de realizare hodulari a unui pro- erarrr agamblor. Lltilizarea rracroinstruciiunilor in programarea in limbaj de asam- biaie duce la o scurtare si o rrodularizare aprogiamului sursi. Avantajele nodularizSrii prin folcsirea macroinstru{iunilor slnt: - se scurteazS. timpul de elaborare aI programului; - se red*ce nrrmirul de erori inf.aza de punere Ia punct a progra* rlrului, daci o rlacroinsiruc,'iune este corectd. toate secvenfele obtinr:te in urma dezr,.oit.ilii I'or {i corecte ; - morlificlrile in programul sursi se fac mai u;or; o modificare intr-o macroins{ruciiune se face doar in forma de de}inire, asamblorul ficind mociificirile in toate dezvoltirile ; un program de , aplicafie bazat pe macroinstrucliuni pcate fi implementat intr-un sistem {b"rb. rnemorie-RAM. Deoarece o macroinstructiune va genera, in piogramul obiect, ori de cite ori se face o referire, aceea;i succesiune delnstruc{iuni apare dezavantajul ocupirii unui spaliu destul de mare in memorie. Acest consum mare de memorio pobte fi e'itat prin utilizarea subru- tinelor. 264 - 5.4.7. Programarea cu subrutine .Subru,tina este o secvenlE de prograrn caxe poate fi apelati. ori ele cite ori este nevoie de;i este piasatl in rnemorie o singurS. dath. Aceastii secven!5. de program, deoarece implementeazi u.n anumit a)"goritm, poate fi privitl ca un program independent. Algoritrnii operafiiior le- petitive pot fi implementali sub formi de su'brutine, de exe:nphi: c'peratiile de intrareiiegire, conversia <iatelor, manipularea unor liste sau a altor structuri de date, operaliile maternatice in binal sau ln tsCD, operalii specifice unui program aplicatir,' etc. / Unei succesiuni de instructiuni ca s5. fie transformati intr-o subrutiui trebuie s[ i se teparlizeze rrrr'rro*. care este de oblcei eticheta primei rnstrucgiuni din secvenld 9i o ultimir instruciiune care este RET(rrrn). FrogramuL princilal (apehrti coniii;.e intotdearirra. in p[rtile in care tste necesarS. actiune:'. subrutinei, er instluctiune de apelare CiiLL ai c5,rei opeiand este nuqele sul,rrutinei. X-a apclarea Eu-brutinei SUB instrucfiunea CALL SUB r-a depune in stiv5" adresa insirucLii:irii umi.- toare (adresa de ler.enire in prograinui apelaret), iar' numirS"torui de adrese va fi incd.rcat cu aCresa de eticireta SUB, adic5. inceputulsubruiinei" .[ter-enirea'din subrutini esie efcctuati de ir-l:tructiunea i?ET care scoa'/e clin stir,5" adre:a de revenire. Insl-rrrcl'ir-'ini1e C,tLL gi RET asigufl ap.e- ll';ea su"brutinei ;i rcinicarctr-ea din s:,'urut:uE in piogra,ilsl apr la:r1 . Subrutinei ii coresp,rnde in U.r':baje de r-iivel supciiir, der"i cu rnici di- terenle, noliunea de p;:ocedu-r5.. Prograrnril pi'incipal poate apeia o subrutin.l ori Ce cite oi'i este ;rer-oie, ca in figura 5.39, a. Lineori, rnformatia proglamului principal existentS" in registlele interne ale micrcprocesorului, la momentul ape- l5rii subrutinei, trebuie depus[ in stiv5.; aceasta poate fi impusi fie de preg5,tirea unei ruidri f5"ri erori a subiu.tinei, fie ctre reluarea coiect'ii a programului principal. Urrnitorul exemplu aratir. douir moduri de :pelare a aceieia;i subrut'ine denr'tmit5 SLTB: EXEMPLT{ 1 : CALI- SUB 1 APELAREA SUBRUTINEI SUB. MVI 8,1'O tsUCLA: CALL SUB DCR B Jliz BUCLA SUB: PUSH PSW SE INCARCA VALOAREA 10 IN REG. B (qONTQBJ. SE APELEAZA SUBRUTiNA DE 10 ORI. SE DECREMENTEAZA CONTORUL. DACA (B) + o SALT LA ADRESA BUCLA. INCEPUTUL SUBRUTINEI. SE SALVEAZA REGISTRELE 265

description

14

Transcript of Introducere in Microprocesoare_Part23

Page 1: Introducere in Microprocesoare_Part23

ci;rdbilul opt"estc 0 si o aciresl in spare cindbitul opt este 1. Ad,resareSr:elativi perntite genera.iea unui coci indepeirdent de pozilia instrucfiunilin plogram, adici. o aciresf relati'ii la continutul curlnt aitr pc. I-"a utr8080. o astfcl dc pi,sibilitate tle gnner-art, a unui cod independent 'Ce

pgziiie rezuitl plin foiosirca :irnbrhilui g in gimp,.ri ope?anC (-,-ezi$ 5.3.1). -Adre:3rea relativi,.cai-e prcrduce o adresi reiativi^ia conlinutulcurent din PC, poate fi prir-it.i. ca o generare de cod relativ siu codlelocabil.

.. . 9ypl cum s-a r-Izut in S 5.3.1 asamblorui pioduce pentru fiecarelinie (instrucfiune) de program, in iirnbaj cle asarnbtrarej o translatarein cod rna;ini. cperatiile necesai:e pentit translatarea mnemonicelorinsirucliunilor sau operatiile implicaie c1e o pseudoinstrucfiune potfi descrise printr-o succesiune de- instrucfiuni, ^definite ca o' m"rrdi*-strucfiune. Rezrdtl c5. tiir program asambior poaie fi conccput pe bazxile macroinstruct.irrni, pentru fiecare instrucliune si pseucioinstiucfiuneiefininclu-se cite o

-dacroinstrucqiune; atunci de fiecare datd. cind

asambiorul exploreazi o linie in piogramul sursi r-a face referire Iarnacroinstrucliunea corespunzS.toare. De exemplu, fse presupune cia.samblorul intilnegte rnnemonicul ECITJ ciluia ii coreipuncie in aSCllcodul 45 51 55H; atunci o subrutiniL de clutare va g-Lsi acest cocl iniabeiul- de simboluri pentru mnemonice (deci mnemonic corect) la oadresS. ADRS. Apci, cu aceastb" adresl" se prepa-rx" referir-ea la macroin-sti'uciiunea de tratare a pseudcinstructiunii

-ggu. Folosirea macroi;r-

strir-cfiunilor poate fi o modalitate de realizare hodulari a unui pro-erarrr agamblor.

Lltilizarea rracroinstruciiunilor in programarea in limbaj de asam-biaie duce la o scurtare si o rrodularizare aprogiamului sursi. AvantajelenodularizSrii prin folcsirea macroinstru{iunilor slnt:

- se scurteazS. timpul de elaborare aI programului;- se red*ce nrrmirul de erori inf.aza de punere Ia punct a progra*

rlrului, daci o rlacroinsiruc,'iune este corectd. toate secvenfele obtinr:tein urma dezr,.oit.ilii I'or {i corecte ;

- morlificlrile in programul sursi se fac mai u;or; o modificareintr-o macroins{ruciiune se face doar in forma de de}inire, asamblorulficind mociificirile in toate dezvoltirile ;

un program de , aplicafie bazat pe macroinstrucliuni pcate fiimplementat intr-un sistem {b"rb. rnemorie-RAM.

Deoarece o macroinstructiune va genera, in piogramul obiect, oride cite ori se face o referire, aceea;i succesiune delnstruc{iuni aparedezavantajul ocupirii unui spaliu destul de mare in memorie. Acestconsum mare de memorio pobte fi e'itat prin utilizarea subru-tinelor.

264

- 5.4.7. Programarea cu subrutine

.Subru,tina este o secvenlE de prograrn caxe poate fi apelati. oriele cite ori este nevoie de;i este piasatl in rnemorie o singurS. dath. Aceastiisecven!5. de program, deoarece implementeazi u.n anumit a)"goritm,poate fi privitl ca un program independent. Algoritrnii operafiiior le-petitive pot fi implementali sub formi de su'brutine, de exe:nphi:c'peratiile de intrareiiegire, conversia <iatelor, manipularea unor listesau a altor structuri de date, operaliile maternatice in binal sau lntsCD, operalii specifice unui program aplicatir,' etc. /

Unei succesiuni de instructiuni ca s5. fie transformati intr-o subrutiuitrebuie s[ i se teparlizeze rrrr'rro*. care este de oblcei eticheta primeirnstrucgiuni din secvenld 9i o ultimir instruciiune care este RET(rrrn).FrogramuL princilal (apehrti coniii;.e intotdearirra. in p[rtile in caretste necesarS. actiune:'. subrutinei, er instluctiune de apelare CiiLL aic5,rei opeiand este nuqele sul,rrutinei. X-a apclarea Eu-brutinei SUBinstrucfiunea CALL SUB r-a depune in stiv5" adresa insirucLii:irii umi.-toare (adresa de ler.enire in prograinui apelaret), iar' numirS"torui deadrese va fi incd.rcat cu aCresa de eticireta SUB, adic5. inceputulsubruiinei".[ter-enirea'din subrutini esie efcctuati de ir-l:tructiunea i?ET care scoa'/eclin stir,5" adre:a de revenire. Insl-rrrcl'ir-'ini1e C,tLL gi RET asigufl ap.e-ll';ea su"brutinei ;i rcinicarctr-ea din s:,'urut:uE in piogra,ilsl apr la:r1 .

Subrutinei ii coresp,rnde in U.r':baje de r-iivel supciiir, der"i cu rnici di-terenle, noliunea de p;:ocedu-r5..

Prograrnril pi'incipal poate apeia o subrutin.l ori Ce cite oi'i este;rer-oie, ca in figura 5.39, a. Lineori, rnformatia proglamului principalexistentS" in registlele interne ale micrcprocesorului, la momentul ape-l5rii subrutinei, trebuie depus[ in stiv5.; aceasta poate fi impusi fiede preg5,tirea unei ruidri f5"ri erori a subiu.tinei, fie ctre reluarea coiect'iia programului principal. Urrnitorul exemplu aratir. douir moduri de:pelare a aceieia;i subrut'ine denr'tmit5 SLTB:

EXEMPLT{ 1

:

CALI- SUB 1 APELAREA SUBRUTINEI SUB.

MVI 8,1'O

tsUCLA: CALL SUB

DCR BJliz BUCLA

SUB: PUSH PSW

SE INCARCA VALOAREA 10 IN REG.B (qONTQBJ.SE APELEAZA SUBRUTiNA DE 10ORI.SE DECREMENTEAZA CONTORUL.DACA (B) + o SALT LA ADRESABUCLA.INCEPUTUL SUBRUTINEI. SESALVEAZA REGISTRELE

265

Page 2: Introducere in Microprocesoare_Part23

PROtRAriur in !ttp^rl

TAL! SUB

PROGNAH PR]NtIPAT

0Pa00t]AITUL 1NFER AL ATRISEI

IA]IUL SUPAL AORESF

i\iSTRUCIURMAiOAR E

PUSH

PUSHPUSH

TA!t SL'/S

POP HPOP D

0Pr00EBA]TI..]L iIIFTR At AORESE

BAIII,'I SUP AL AORIST

INSTRUTT URMtrTOARE

S1,8.8/

RE /ErliRr-

-$t..--{t;-.

'..*'

Sll3R!Iiita A

s, I A FR x a-rs:R-q l;sq J;-l

l'tl

a)

ItALt S'JB A {

I

N'Iodalitifi de apelare a_subrutinelor: e - apelarea repetati a aceleiasisubrutine; b -apelarea inlinfuitii a str-brutinelor-

INTERNEPREGATINDU.LE PENTRIISUBRUTINA.

SUCCESIUNEA DE INSTRUCTIT'\ IALE SUBRUTINE]sn nBl'etCCoNTiNUruLREGI STRELOR PRE GATINDTI-I,E

PENTRU RELUAREA OPERATIiLCR INPROGRAMUL APELANT.

REINTOARCERE IN PROGRA}{ULAPELAJ.{T. ULTINIA INSTRUCTIUNE"

Fig. 5.40. Modalitlfi de salyare si refacere a confinuturilor registrelorinterne ale microprocesorului: a - instrucfiunile PUSH 9i pOp plasatein programul apelant; b - instrucfiunile PUSH gi POP plasate in su6rutinl

Deoarece salvarea si scoaterea din stivE a confinutului intern almicroprocesorului .sau numai a anumitor registre, consume tirnp gifpaliu din memoria RAM, totdeauna se impune a se analiza care^ dininformafiile registrelor se pot pierde si care nu. in cazul cind se impune;aceaste nanipulare a conlinuturilor registrelor interne se pune ;i pro-blema eficienlei plas[rii instructiunilor PUSH ;i POP, ia in'figura5.39. Introducerea in programul apelant a instrucliunilor PUSH ;i POP,pe ling5" apelul subrutinei duce la un consum de memorie pentiu pro-gramul principal, figura 5.40, a, dezavantaj ce este inlb"tuiat cind a-aeaste operafie este efectuatS" de subrutinS", figura 5.40,b.

Lucrul cu subrutine poate duce la o i.nldttlu,ire de apeldr,i, adichprograrnul principal apeleazh o subrutinS., care la rindul ei apeleazd. o,altd. subrutinS", care;i ea_ap_eleaz5. 1a rindul ei o alt5. subrutinl si agamai departe, figura 5.39,b. Fiecare subrutini" din acestea fiind apelat5"prin CALL, iar revenirea se face prin RET. in apelarea inldnfuitS" tiebuiesl se aibl in vedere restrictia ca o subrutinl s5" nu cheme alte subrutinede care, direct sau indirect, este la rindul ei apeiatl. Pentru a se relua€orect programul apelant, la toate aceste subrutine inldnfuite, estenecesar ca ordinea de scoatere din memorie s5. fie inversS. decit ordineade Salvare, adici s5. se p5.streze principiul LIFO. Practic, numirul desubrutine inlS.nt,uite este limitat doar de spaliul de rnemorie ITANI repar-tizat ca stiv[. Mirimea acestui spafiu se alege in funcfie de informaliilenecesare a se salva in stivi. Deoarece la pP 8080 stiva cregte in jos€ste recomandat a se aloca pentru inceputul stivei adresa disponibili

7 3i

I

1-jg.5..r9

l\tAr- ::B 8 il_%ll!il1l=l!3!!lI \:q- L!tf:J!34-1!$!l-Jl r- l;\..;RJ_T URMtrTOARt I

\%L\ \ I IlJ. \ I

---1___ii::il____l

DH

POPRET

266

PSW

267

Page 3: Introducere in Microprocesoare_Part23

aea mai mare din RAII sise poate ertind" siiva.r.irful stivei a coborit suir

EXEMPLUL Z

VSTIV: INCARCA BAITUL INFERIOR AI-ADRESEI Ltr STI\T COMPLEMEN],\Rtr "

TRANSFERA IN REGISTRUI- L.INCARCA BAtrTUL SUPERIOR Ai-ADRESEI LISTII'COMPLtr}{ENTARE.TRAi{SFERA IN REGISTRUI- H.FORNIEAZA COMPLEMENTLTLFATA DE DOI.(HXL) : ({Lrsrrv+1) (Lrsrrv)t-.-(sP) D-\CA (SP) ESTE > DEili'LI\IIT\ I\FERiOAR,\ ATUFiCIREZULTA CY: i, ALTFtrL CY: O"

REi\I'OARCERE.

LDACMAMOl:LDACNI.\

LISTi\-

L,ALISTI\-+ I

a sq fixa adresa iimit6 inferioarS. pini la car,:Urmi.toarea subrutinS. VSTIV verifici driiadresa inferioar5" (inscrisS" in locatia LIST{\'; :

iranrsierului unor blocuri de rJate, ceea ce..se poate tealiza ci1 o sublutililttlenurl:it5" TBD dezvoliatd mai jos. Blocul de date confine un nutnitrNRF baigi, se afliL intr-o zon[ de adrese consecutive din memorie irrcare Xrrirna locafie corespunde etichetei SURSA ;i trebuie transferatintr-o altd. zonl tot la adrese consecutir-e din care prima localie aree'tich,eta DEST. in acest caz nu se transmit subrutinei datele de vehi-c,ulat, ci doar valorile parainetrilor l{RB, SURSA, DEST. Vaioriic-acestor parametrii se tlaiismit ca nigte date prin interrnediul regi*streior.i" H-L, D-E in feiul urmitor':

EXE},IPLUL 4

I'IO1- H,AINX H

D.\D SP

LXI H,SURS-\ ; SE I\CAIiCA I\ I?EG. FI-I-.\DRESA PR] \IL LL'I B C.IT DETR,{\S\{IS.

i-\I S,DFS.| ; 5E INCARCA ADRESA UNDE StrSIOC}IEAZA PRiUUL BAIT.

}'I\-I C,\RB ; CONTORUL Str I\CARCA CUNUMARLiL DE tsAITI DIN BLOC:

.ALL rBD ' +il1ktTB* iYBt';i.'"lif

MbV A,]I ; SE INCARCA BAITL,L IN ACU}ILT_I--4.TOR.

; Str OBIINE ADRESA BAI'|L'fLUILrR}iATOIt.

; SE STQCIfEAZA BAITUL DIN,\CL}fL-LATOR.

; URMATOAREA ADRESA DtrSTOCARE.

: DECRE&IENTtrAZA COI{TORUL., I}AC,4. II.i S_.\. TF.A\SFEI?.AT TOT

BLOCL I- SALT LA TBD.; DACA S--_\ TRANSFERAT TOT

IILOCI-IL REVE-'iIRE IN; PRCGI{AIIUL AP]ILANT.

La reintoarcere i' program*l principal Cy:1 va inclica ci. maiexistS. fpafiu disponibiiln -.ri'a egil cu'continutul registrurr:Li H-[-"

Prin-legarea,su-brutinei se infelege apelarea, r"t'errlreu, preciLm sitransferul, in ambele sensuri, a datelor necesare procesirii intle sr-rb-rutini ;i programul apelant. Transferul se poate teatlira prin inte::inediulregistrelor, memoriei sau stivei.

Pentru. transferul unui nurnS.r restrins de date se pot utiiiza rc:gis-trele inteine. ln ce1 mai simpLu caz se transmite o siigur:1 dati frir:,interrnediul registrului acurnilator, ca in exemplul urriitor:

RET

EXEMPL(IL 3

,],IVI A, ,A: ; INCARCA IN ACUNTULATORCODUL ASCII AL CARACTERUL.L]trA CE TREBLIIE AFISAT PtrDISPLAY.

CALI- DISPLY ; ESTE APELATA SUBRUTINA DETRANSFER A CARACTERELORSPRE DISPLAY.

Pentru un numir extins de date transferul se face prin internlediuiunor localii din memorie. Dac[ datele se citesc ;i se inicriu, totdeaunacind este apelatS. subrutina, de la acelea;i adrese, atunci nu este nece-sar un transfer deoarece insl-;i subrutina i;i genereazi. adresele respec-tive (fixe). Dac5. zonele de date pentru tianifer nu au adrese fixi inmemorie atunci se vor caracteriza aceste zone prin nigte mirimi carese vor transmite subrutinei ca pararnetrii. Se

-presupune necesitatee

268

TtsL:

IsX H

ST.{X D

INX D

DCR C

J\z TBn

i?trT

Foarte frecr.ent clatele ce trebuie pr-ocesate nu forneazl un bloc,a.'jjca nu sint sitnate la adrese succesive ci au o rdspindire in tot spa-tiutr memoriei. in acest caz. se {ormeaz5, o iisti" care in iocalii de adresesuccesive cuprinde'adresele tutriror ciatclor din memorie in ordinea inoare ueJ-)uie transferaie, ligura 5.41. Subrutina care va procesa dateierdspindite in memorie r.a pri.ni doar valorile celor doi parametrii:

trSTg-eticheta adresei cle inctput ciin 1isi6; NRB-numfu'ul total de,date. Apoi cu instrucliuni de {orria LXI rp, LiSTA, LDAX rp, STAXrp poate fi accesibill oricare ciati. Se i-a exempli{ica cu o subrutini(ihl.StsYT) care insumeaz5" un nurnlr \ltB de date djsp,ersate la dife-: ite actrrese in memorie ; adresa de inceput a listei este LIST-{.

269

Page 4: Introducere in Microprocesoare_Part23

H EMORI E

AOR{SA I,

AORTSA 1

. AORESA ]

ADRTSA N

ADRESA 2

EXEM PL UL5:

LKI

},IVI

CALL

INSBYT: XiiACiCLU: IIOV

MOV

INX[TOV

LDAX

ADD

H,LiSTA

C,NRB

I}iSBYT

AB,A

E,}I

HD,M

D

B

Fig. 5,4l. Modalitate de transfer a datelor lasubrutini cind acestea sint dispersate in totspafiul memoriei

; SE T'RANSFERA SUBRUTINEIADRESA DE II{CEPI]T.SE TRANSFEITA SUBRUTINTIVALOAREA DE CCNTOR.

APELAREA SLIBRUTINEI ]]EINSLI}{ARE.STERGE ACLI},IULATORUL.NIEMOTTEA Z A RE ZI] LTATU LPARTIAL IN REGISTRUI- B.BAITUL INFERIOR. AL ADRESEIIN REGISTRUL E.INCREMENTEAZA H.BAITUL SUPERIOR AL ADREStrIIN REGISTRUL D.INCARCA BAITUL INACUMULATOR.ADUNA BAITLiL LA ST]UAPARTIALA"ADRESA UR}{ATOARE DIN LISTA"DECREMtr}iTEAZA CONTORL]L.]{U S-AU ADTI]{AT TOATEDATELE, SA]-T I-A CICLLT.REVENIRE iN PROGRAMULPRINCIPAL.

Acelea;i metode de transfer a datelorse pot aplica si la intoarccre.a,din subrutinl in programul principai.

Dintre dezavantajele lucrului cu subrutine se pot menliona:

- mS"rirea timpului de execulie al programului; fiecare apelarenecesitS. cel pufin execulia unei instruc{iuni CALL gi a unei instrucfiuniRET;

- i.rnpune existenla stivei, deci a memoriei RANI.I)ar le impune pcnderea avantajelor:

- subrutinele se pot constitui intr-o bibliotecS. care ofer5. solutiitesiate pentru problemele intilnite fi-ecvent;

- sc:rierea si testarea unui prograln se scurteaze;

- se scurteazS" lungimea programului surs5. si a programului obiect;

- se face- econornie de memorie;

- modul acesta cle lucru cu subrutint (rnodular) rcduce mult posi-bilitatca gre;elilor.

Comparativ, avantajele si dezavantajele in folosirea macroinstruc-{iunilor sau subrutinelor nu duc la o recomandare a uneia in favoarea'celeilalte. Este posibii sf, se obtinir acelea;i rezultate in ambele variante..nn unele cazlrri, utilizarra unei singure subrutine, in locul a mai multormacroinstructiuni, poate duce la o reducere a programului. in alte \ /

'cazuri, cind sint implica'ii mulli parametrii, utilizarea unei macroinstruc-{iuni pcate fi mai eficientir decit a unei subrutine. I)e asemenea, se'evidenliaz5. faptul c5. o macroinstructiune poate apela subrutine ;i o,subrutinS. poate face refcriri la rnacroinstrucfiuni.

PIiOBLEIIE

P.5.1. Se se scrie urr progiarn peltm tleplasarea unei liste cle 10 baifi. Prirnalocalie a listei are adresa ,IICI, iar adresa dc transler este ACOLO.

P.5.2. Sir sc scrie un progf:un perrtlu testarea l-ritr-,lui de rang zero din acumu-.lator. DacI lritul zero cste I sJr, s3 sL'teze ('raloare: 1) bitul 3 din locafia de memoricFLAGI. Dacd bitul zeio esi.0, sA se scteze bitul 4 din localia de memorie FLAGI.

P.5.3. Care este singura instructiune care ;telge acunulatolul 9i pune CY: 0,AC:0?

P.5.4. S: se scrie ulr prograrn de citire a datelor de la portul 10. Dacir cuvintul.citit de la portul 10 ale o valoare impari, si se inscric acest cuvint complcmentat inportul 1. Daci:, cu-zintul citit cste un num5,r par', si se inscrie acest cuvint, cu bitul derang 3 egal cu zero, il portul 2.

P.5.5. Si se scrie ur) program cale s5. inscrie intii cuvintul FFH in portul de ie;ire2 ;i a.poi s5, se inscrie. in acela;i port cu-rintul 00H. Aceasti operafie s5 se repete de 450,de ori,

P.5.6. Si se scrie un progranl cale s5, exarnineze cuvintul din acumulator. Dacdacest cuzint are valoare diferiti de zero, 'zaloare par5, pozitiv gi paritate imparl, si secontinue procesarea la localia de memorie CONT, Altfel sd, se continue procesarea lalocafia de memorie ACOLO.

P.5.7. SA se scrie un program de deplasare cu un bit spre dreapta a unui cuvintcp lungimea de 16 bifi, situat in dou5. locafii de memorie succesive.

INX I{DCR C

JNZ CICLU

RET

270271

Page 5: Introducere in Microprocesoare_Part23

P.5.8. Care esrre cu.rintuX drn locatiapiasfarn; \1I\rIoR.4.LDAjN[INR\i\T: ST.i

-rnR, {liFttsDR: il0E{

dup& rularea urnd.r,rrrrlui

de 1 sec i p:F 8d8t),

progian.irri uinri.tlr I

d,- mer:rorie tsDR

..LDA COU:\iT 1 ; X\LtRtr.\trEi.iTE-\2.\ COU\T 1..\DI 1

ST.\ COL"\T 1 :

C.ALL ST'RR .

I-DA COUNT :, ; tSCnntrE\TE-dZ-\ COL..\IT 2.SL'I I

ST.\ COUNT 2 ;

IIiTR: PUSI{ PS$r ; SLtsRLiflN-{ DE IliTfiERUpERE.LD-\ COU\T 2 ; XNCRENIENTE,\Z-\ Cr_- t COl,*i_:..\DI iSTA COUNT 2 ;

POP FS\\'RE'f l

P'5'11' Se se scrie un prcgfanr care:zerificd c*',.irrt'l crin acum.latoi. F:r_.granr'rtrebuie sir apeleze subrutineG cillcrm uirndtonririi tabel:Cuvintul din regishul -\ Subrutina apelat;

CAPiTOLL,IL 6

LUCRUI- CU PER,IFERICELE iTqTN-UNrI SISTEMPE BAZA DE MFCROPROCESOR

Unul din avariiajeJ.e majore ai.e electronicii progiarnate, in ineple-mentarea sistemelor pe baze de microprocesor, conste in faptul c5. ingenel'al structura pe partea de hardrvare, dupl curn s-a aritat ;i in$ 5.2, figura 5.9 este standarcl, diferenlele de la un sistem la altul fiinddoar natura perifericelor ;i el'entual interfafarea. Dar, pe partea desoftware, diferenfe existS. de Xa sistem la sistem, depinzind de naturaaplicaliei respective. Garna procesetror comandate, cu un sistem pe bazi.<ie microprocesor, fiind foarte 1arg5., rezultS" c5" si perifericele utilizatesint extrem de nurneroase si l-ariate. S-ar putea, si nu ln exclusivitaie,impirli perifericele dupi tunc,tionaiitatea lor in : perifer.ice de stocaye'tnes'iad (cu capacitate mare de mernorarc), periJerice conteysalionala(in limbaj uman) ;i peri,ferice in titn.p real.

Uneori, cerinleie de memorie a1e unui mini sau microsistem, potfi destui de extinse. Deoarece o capacitate de memorie RAI\{ semicon*ductoare de ordinul milioanelor sau zeci de milioane de baifi ar der.eni,din punct de vedere al costului, prohibitir'l, s-au dez\roltat sisteme dEmemorie de capacitate mare, dar cu tirnp de acces rnai lung cum ar {i:sisteme cu discuri, benzi sau casete magnetice, sisteme cu band5" pe1-forat6, sisteme cu bule magnetice, cu dispozitir-e cuplat-e prin sariind-{CCD, Charge Coupied Devi-es), sisteme holografice eic. inti-un sistemeiigital mai compiex memoria este structuratS. ierarhic. Memorla pri-mard (saa operativS") este constituiti in RAII ;i are timpul de acces

- cel mai scurt. Memol.ia secund.ard este constituiti de unitatea de discurisau de floppy-disk, avind un timp de acces mai .lung decit memoriaprimari, dar in care se stocheazd. informatia adilionald" (programe de.

sistem), informatia, intre memsria operativi ;i cea secundari, putlndu-setransfera in ambele sensul-i. Ultimul tip de memorie, din aceastLierarhie, fiind cea care ar constiiui. o aylt,iati de dgte in sensul c5. infor-rnalia stocati, aici ar fi necesarS. o 'iatd. pe sirpt[minir, pe |-rni sau 1a unan, reprezentativ pentrr-r acest tip iilnttr banda rnagnetici,L .cau perforat;...

.d,FFFIA-\DRNXT,{tsDR

t'.J.). 5d 5c scl . Lill lro{rJil.t _JI-Xsj,zJ:: : 0,5 g.sj.

P..5. 10. Ar trebui ca intrerupei.ea s:i[ -ni]c trebuie antorizat5, lnirertro'eie:r r.

S1: ET

rtalizeazi" o ilitirziere

iie r:piicit r,lezacti.zatd il

ZeroNegati-z

SZtrROSMINIT-S

F ecare subruti'i. tretr'ie sir -car'zeze ;i .-.i refaci .o,'tinr*1 l**.,loto*i*---..,-_li 1l^,9 se utilizeze alte.insrrucgiuni, cunr ar fi: pUSH, pdp, pCmlDentru a realiza apelarea unei subrutine gi respecti-r re-renirrea; sii se scrie, .ii:

eta.a. e,S I:-1. rrrr ex,.nrpirr cle apclare ;i de rc rerrirr

P.5. Ii. Se se realizeze urmitoareletransport CY: ?

aduniri. Care este :zaloarea {anioltilni r1,:

l

0010 1101 1100 1001 010i 1100+1011100X r1i1001111 f,1110000trP.5. 11. care este -raloarea iur.iol*rcl in ,,"rrr" "f".,ili *rre*relor scj,j:ri

1101 0110 0it1 10lx i001 1000__q119_109 _ 10,0 r 1000 _ 1100 i00 r

P'i.15. care este coniinutul registr,r*i dupi ce se esecuti. *rniitorun pro_qia:ir.

LDA DNTI},f^{D{ gqT{])-{AFiI-T

DSLiII:.\:T{

? l.)zt,_)-

Page 6: Introducere in Microprocesoare_Part23

.P.erifericel,e conaersalionare sint cere ra care intrarea gi ie;irea inf-or_maliei ar fi similari. conversa.tiei intre A;"i G;;;.. 6i"ia cu rearili3I_.1 dlt"zei si recu*oa;tcrii vorbirii au apirut te.-ir,"t"t" la care11111."1/iulirea se face pri' voce, deci ra aceitea

"trir"ii"r- de conver_satronal este qi mai-.potri'it..Dar cele mai ri.spindite, actual, sint-tei_minalele care'posedi o.claviature pcntru intr.oducerea datelor si u'ecran pentru afisarea ,da^teror,. dcnumitc simplu tti;iiy .".,^i.r-i""i

9T:Ja.i].1'"u-Ray-1u5";. in.ujiimuiiimp s_a raspindii.Ji ," tip cle ter_mrnar \rdeo cu cc'an sensibil prin atingere p"nt.r, modifi."r*. in{or-:lii:l t':il: ,,jo'.ile de rerminale viaeS qcrtr, r_bo, *irialc lichide,plasma' polarizare-dcplasare-dielectricd) intrd in cai"goiia celor cuinscrie'e voia"tili". (sofi-copy). Term inalerc ;"; ;rJ;."1'inr"girtr"r"permanentS" (hard-copy) a informafiei pe hirtie ui" p" fit-

-ri"i i"pi"-zentate i* primrrl rinci $e imprimaniele cu inrpa.,', t".-i"", crectro-statice, cy je! de cerneala r", c,, peni{i" rprrliii)-"t..-'ur"i'p".if".i.conversafional i se adaugi, pe lingi. simpll {acitiiatc-de"int.a'rc7ie;rre

1 ilf91maiilj,-Rosibititatda proccsa"rii infdrmati;i-i;';.*'i'ver caiitativli_p^-lllr:,j1:e^^1: anurnir grad de inreligenfi. peri{ericui inteligenteste un sistem complex care posed5. in struJtura,sa microprocesoare sauYLSI-uri dedicatc.^

,,__- Lu sistemele pe bazi de microprocesor ce comandi procese in

'mp reat pot tr conectate periferice di.ti-e cele mai diverse'.orn uo ti,panouri de comandi, c-chipamente mecani.", hidiuJi."]"rrrr".u.rr"tic"'electrice (relee, tiristoare, senzori, .o"r'".to".", ;;itf;ilui, motou.",'convertoare A/N sau N/A, semnalizi.ri etc.) ,u" f.nipi-"hie de alti:1r:1 i^L:rir", apiicalie cu microprocesor,_pehtro

" .t*orrica cu ope_l'atorur, este necesa' un paqou de control. pentru sisteme simple (ciml:j,].$_:^"L:lpl.; vottmietru electronic, sist"me aiiir".ii"", roboli deDucatarre.e:o:) Y' panou trebuie si. contini. un minim de comutatoarest semnalrzd'. Pentr' sisteme mai complexe (cum ar fi de exempru:l:Tf"l: logice, ma;ini_ unelte, uzine i-utomite etc.) panout devineloarte complex, incluzinc in structura sa terminale foaite sofisticate.cu toat[

''rarea varietate. a perifericeror atasate la un sistem pe bazd,,de,rnicroproc_esor, din fericire, conectarea lor se,"aoll l.-*"rrr."."",

f"1t_1,:,til,,lli de semnale:..intr*.i anatogice, iegiri "*ogi*, '.;l.i

discrete,rntran drscrete (termenii de intrarc si iesire si nt co[siderati relativ lauuxur dc lntormatrc 1a{i de rnicroprocesor).Modalitatea de conectare a u'ui sistem cu rnicroprocesor ra peri-feric.(sau, maj general, la un proces) pentru a rearizaceea ce se numesteun sistem

-pe bazd de microproirtor,'"si" reprezentate in figura 611.-i;d;:3::..y*:,ti",T".i la obiect se consideri cd periferic"f iprt".r"f) esteo rmprrmanti. La funcliona'ca pirtii mecanic-e a impriniantei concurd.o"anumitSoparte electrici" de actionaie ;i circuite -l;il;i;;'de comandaalerente. rn plus, este necesard o parte electronici de contror care, de'exemplu, si fixeze momentul cind se tipire;te un caracter, sd. determine

274 t

I

---t--/Lui:illiii

[*,,]PE R iF

\;:,

UI]iTATE DEc o lrA l.tOA

lC0r.JTttai.ER

(;.,TA,i ;li.iii :l rT':1.1.1 il

Fig' 6'1' structur'l de principiu "",'ii.:1"j"rX":larea

(interfatarea) unui periferic

corectitudinea caracterului primit, si deplaseze carul mobii dupi fie-care caracter tiplrit, si constate dac5" este hirtie, s5. comande inceputulde rind etc. Pentru toate aceste circuite de control se utilizeazS" ter-.menul de un'itate d,e comand,d (sau controler). Dar acest controler trebuiesi comunice cu microprocesorul. Conectarea controlerului Ia microsistemse face prin intermediul unor circuite denumite interfafi. Aceasti deli-mitare neti, in controler ;i interfa!5., poate fi in realitate destul de voa-.latl gi are mai mult o nuan]l didacticS.. Daci inter{afa ;i controlerulsint construite fizic (ca volum) in aceeasi cutie, foarte des se denumegteinter{a!5.. Sau, dacf controleiul si interfala sint realizate integrat,'inacela;i chip, se denume;te circwit ded,icat (sau controler, ;i poate uneoridep5.;i in complexitate structura unui microprocesor). Indiferent de.aceste denumiri, in principiu, pentru conectarea unui periferic coles-punde structura din figura 6.1.

Conectarea proceselor cu sistemul se poate realiza prin elemen{.ede interfalare standard sau prin interfele proiectate special (nestan-dard). Odatl reafizatd. partea de interfalare fizici (hardware) sistemultrebuie inzestrat cu programe (subrutine) pentru lucul cu aceste peri-ferice.i

6.1. lnterfefe nestandard

. Interfafarea nestandard poarti pecetea experientei, fanteziei pro-iectantului ;i disponibilitllii de componente. De aceea, indicafiile datereferitor Ia implementarea unei interfele nestandard nu pot fi consi-derate ca fiind exclusive.

Din. punct de vedere al funcfioni.rii microprocesorului o interfatirse,reduce 1a unul sau mai multe porturi. In acest sens un port este unpugct prin care se face schimb de informaiie drnspre/inspre erteiior.

, Comunicalia cu portul necesitS, selectarea acestuia ;i apoi inscriereasau citirea. Adresarea porturilor se poate face in spaliul rnemoriei,izolat sau combinat (r.ezi Q 5.2.1), deci selectarea practic rezulti. din:

27s,