Introducere in Microprocesoare_Part16

6
tabetr se va introduce"in program codul in binar asociat mnemonicurui respectiv, oPCoDE. In $enJrar, codui asoci"t -""-"nicriiui respectiv se glsegte intr-o localie-de m.moii" a cirei oai"rJr" a.i.i-i"e in functie de adresa la car-c se'afti;";;;;i;iln tabelul ,l" ri,;;;l;;i'l;Hil; ;'ceasta de con'ersic a mn('moniceror s3_.pot d"tccta er-oride sintaxr.; de e>remplu, se scrie- DRC in r". a" o'cri ."* ." ,r.r"^Jo."rp,rrrae nici unui cod din setul de instrucliuni inscris'i" t"firi^i""."ironotori, creci asamblorul genereazi un mesaj de eroare. Prin procesur de asamblare, asamblorul, parcurgind rinie dupi linie, prodr-rce pentt-u ficcare.instrucfiune iinu, aoi sau lrei baiti, in functie <1c lipul insirucfirrnii.. Acesri b;iti l.;b;i"; fi;-";;)"ri ril'-"."iii-il adrcse su.ccesi'r', deci csrc n...iure"o "uacnqi ;';;;;.;i". rocatiilor ocupate de programul obiect. In acest sens, asamrrrorul va ij i;:3;ili cu un numirii"tor de.rocalii nupiL c'm numiirii.torur de adiese dintr_un rnicrop'occsor irrdicd adresa de'ra care sc va rcfcri rnicroprocesorur, tot asa ;i numiLritorul de loca,rii va inaica "dr;r;"i;-;;; r" ,r" depune urmS"toarea instrucfiune sau clatii u=u-bi"t5 ; pG.-;;;iii. N.,-ere_ torui de localii se"iniliarizeazi la inceputur "r""itre?iiiilo"i se incre_ rnenlcazi pcnt'u ficcare nou Lait ,t r'',sr.u.ii;"tbt. piJ;";i';;;"dri;- structiunii ORG fixeaz,i" incepr,rtul la o adresi doriti. sau realizea zd. un salt la o altb. adresL clin memorie. Apqre- o _situatie, .pr-r!in diferitl" cle incrementarea naturali a numi_ ritorului de iocalii, cin<r'se utlrizeazi instrucliuni ;; ;;;ffi o eticheti sau care au operanzi simborici, de excmpru,'ri'iilc d^ii" ii cinci din relafia (5.6). Pentru stabiri'ca i "i".il.i rearc are .tr.rr"t"roi ;i operan_ zilor simbolici asambrorur rearireair'ir, ,o",,'oria sistemuiur, pe ringe tabelul mncmorrict,ror inst.ucf iuniloi sl"o ,one liberi 1""iJ""t in RAI\I) cu un tabct de definirc ar simboruiirbr, rigui" 5.i;.'L;;; asambrorur Sjunse linia a patra tJetccti,rd prezen,ta'ur-rEi "ti.h.i" *'Jro."deazr in fclul urmrtor: r - sc srocr[az; i;"|;;"ilft;;;;;r"iiuJJa"r ASCrr al.etichetei CICLU; 2 - se rtoiii."ra-"iresa atribuitd" etichetei, aceasti adresS" fiind co'tin'tur numl'etoi"iui a" r"""!iit;A;ffi;rul ajunge la linia a trcia. i"";, ii"Ji"-;j;G;. il ii'iu " cincea, se aroci simbolurui CICLU 'aloarea'corespunzitoare" inscrisi anterior in taber. Dar daci. simbolul operanclului 'este a"ri"it-"ri"ri", i;;;;;"e ;;";; se poate substitui cu val,area 'eard. in r"ru-ut, a"o^."..-^.;*b1";; nu poate trata totdeauna simultan la o ringoit irecere mnemonicele, etichetere {u operanzii simbolici 'or fi necesare doui treceri (faze) f"r," prog."- rnul sursi. Schema logici" de principiu pentru un asarnblor in doui treceri este reprezentati in figura 5.19. La prima trecere, asarnblorul converteste mnemonicele in cod masind. gi aranjeazi. etichetele in tabel d" ;i;;"r"rr_ La a doua trecere asamblorul sutstituie operanzii simbolici cu varo- rile alocate la prima trecere. un exemplu concret de asamblare, in doui 180 Y'5A] Di EICAR T Fig. 5.1e. scheml logici, de n:::?t;.":::l:u un prosram asambtor in treceri, pentru programul din (5.5) este reprezentatS. in figura 5.20,* Asarnblorul genereazS. un program obiect ca fi;ier pe diferite supolturF (bandn perforatir, disc,listing). Uneori inf.aza de depanare a unui-sistem cu ajutorul analizorului logic (v. capitolul 7) este necesarS. o translatare, inversi, adic5. din cod ma;inl in limbaj de asamblare, operalie care se realizeazl, cu un program asamblor inrrers (sau dezasamblor). Progr-amul.. obiect verificat din punct de vedere al functionalitlfii,-cu afutorul umri _pr_ogramator va fi inscris intr-o memorie de programe (PROM, EPITOM sau EAROM). Pentru un sistem pe bazf, de microprocesor inainte de a elabora programul obiect pentru aplicafia respectivii. este necesar a se intocmi harta memoriei, adici a se rcpartiza spaliile de memorie rezervate. pentru ROM ;i RAM ;i apoi in interiorul acestora a se specifica segmente. pentru diferite necesit5li. Intr-o organizare tipicS" Ia adresele infirioare se repartizeazd memoriei ROM (instrucliunile), iar la cele superioare- mernoria.de date $AM) care are rezervati" ;i zona de stiv[.- Exist[ doui variante de asambloare, absolute ;i relocabite. Un asanxblor absolut. I '1 I d I1A;REITRT lN ri I AL r ZAREA NUr'IARAT0FULU aE ,.0fATil clliREA UriEl ir.lsT RULTtui.il iI I,cD ASall TICHiTA? ar iiRtA ur.lut ilNEt'1cNic iAstlli IEAZA (-C0U: ASaii At iiXtl{0liLtU:Ul ;ll TABi! .XISTA TCDUi ? rf.rDttATA ct IUMARAioRU. 181

description

18

Transcript of Introducere in Microprocesoare_Part16

Page 1: Introducere in Microprocesoare_Part16

tabetr se va introduce"in program codul in binar asociat mnemonicuruirespectiv, oPCoDE. In $enJrar, codui asoci"t -""-"nicriiui respectivse glsegte intr-o localie-de m.moii" a cirei oai"rJr" a.i.i-i"e in functiede adresa la car-c se'afti;";;;;i;iln tabelul ,l" ri,;;;l;;i'l;Hil;;'ceasta de con'ersic a mn('moniceror s3_.pot d"tccta er-oride sintaxr.;de e>remplu, se scrie- DRC in r". a" o'cri ."* ." ,r.r"^Jo."rp,rrrae niciunui cod din setul de instrucliuni inscris'i" t"firi^i""."ironotori, creciasamblorul genereazi un mesaj de eroare.Prin procesur de asamblare, asamblorul, parcurgind rinie dupi linie,prodr-rce pentt-u ficcare.instrucfiune iinu, aoi sau lrei baiti, in functie<1c lipul insirucfirrnii.. Acesri b;iti l.;b;i"; fi;-";;)"ri ril'-"."iii-iladrcse su.ccesi'r', deci csrc n...iure"o

"uacnqi ;';;;;.;i". rocatiilorocupate de programul obiect. In acest sens, asamrrrorul va ij i;:3;ilicu un numirii"tor de.rocalii nupiL c'm numiirii.torur de adiese dintr_unrnicrop'occsor irrdicd adresa de'ra care sc va rcfcri rnicroprocesorur,tot asa ;i numiLritorul de loca,rii va inaica "dr;r;"i;-;;; r" ,r" depuneurmS"toarea instrucfiune sau clatii u=u-bi"t5 ; pG.-;;;iii. N.,-ere_torui de localii se"iniliarizeazi la inceputur "r""itre?iiiilo"i se incre_rnenlcazi pcnt'u ficcare nou Lait ,t r'',sr.u.ii;"tbt. piJ;";i';;;"dri;-

structiunii ORG fixeaz,i" incepr,rtul la o adresi doriti. sau realizea zd. unsalt la o altb. adresL clin memorie.Apqre- o _situatie, .pr-r!in diferitl" cle incrementarea naturali a numi_ritorului de iocalii, cin<r'se utlrizeazi instrucliuni ;; ;;;ffi o etichetisau care au operanzi simborici, de excmpru,'ri'iilc d^ii" ii cinci dinrelafia (5.6). Pentru stabiri'ca i "i".il.i rearc are .tr.rr"t"roi ;i operan_zilor simbolici asambrorur rearireair'ir, ,o",,'oria sistemuiur, pe ringetabelul mncmorrict,ror inst.ucf iuniloi sl"o ,one liberi 1""iJ""t in RAI\I)cu un tabct de definirc ar simboruiirbr, rigui" 5.i;.'L;;; asambrorur

Sjunse linia a patra tJetccti,rd prezen,ta'ur-rEi "ti.h.i" *'Jro."deazr infclul urmrtor: r - sc srocr[az; i;"|;;"ilft;;;;;r"iiuJJa"r ASCrral.etichetei CICLU; 2 - se rtoiii."ra-"iresa atribuitd" etichetei, aceastiadresS" fiind co'tin'tur numl'etoi"iui a" r"""!iit;A;ffi;rul ajungela linia a trcia. i"";, ii"Ji"-;j;G;. il ii'iu

" cincea, se aroci simboluruiCICLU

'aloarea'corespunzitoare" inscrisi anterior in taber. Dar daci.simbolul operanclului 'este a"ri"it-"ri"ri", i;;;;;"e ;;";; se poatesubstitui cu val,area 'eard.

in r"ru-ut, a"o^."..-^.;*b1";; nu poatetrata totdeauna simultan la o ringoit irecere mnemonicele, etichetere{u operanzii simbolici 'or fi necesare doui treceri (faze) f"r," prog."-rnul sursi.

Schema logici" de principiu pentru un asarnblor in doui treceri estereprezentati in figura 5.19. La prima trecere, asarnblorul convertestemnemonicele in cod masind. gi aranjeazi. etichetele in tabel d" ;i;;"r"rr_La a doua trecere asamblorul sutstituie operanzii simbolici cu varo-rile alocate la prima trecere. un exemplu concret de asamblare, in doui180

Y'5A] Di EICAR T

Fig. 5.1e. scheml logici, de n:::?t;.":::l:u un prosram asambtor in

treceri, pentru programul din (5.5) este reprezentatS. in figura 5.20,*Asarnblorul genereazS. un program obiect ca fi;ier pe diferite supolturF(bandn perforatir, disc,listing). Uneori inf.aza de depanare a unui-sistemcu ajutorul analizorului logic (v. capitolul 7) este necesarS. o translatare,inversi, adic5. din cod ma;inl in limbaj de asamblare, operalie care serealizeazl, cu un program asamblor inrrers (sau dezasamblor). Progr-amul..obiect verificat din punct de vedere al functionalitlfii,-cu afutorulumri _pr_ogramator va fi inscris intr-o memorie de programe (PROM,EPITOM sau EAROM).

Pentru un sistem pe bazf, de microprocesor inainte de a elaboraprogramul obiect pentru aplicafia respectivii. este necesar a se intocmiharta memoriei, adici a se rcpartiza spaliile de memorie rezervate.pentru ROM ;i RAM ;i apoi in interiorul acestora a se specifica segmente.pentru diferite necesit5li. Intr-o organizare tipicS" Ia adresele infirioarese repartizeazd memoriei ROM (instrucliunile), iar la cele superioare-mernoria.de date $AM) care are rezervati" ;i zona de stiv[.- Exist[doui variante de asambloare, absolute ;i relocabite. Un asanxblor absolut.

I

'1I

d

I1A;REITRT

lN ri I AL r ZAREA NUr'IARAT0FULU

aE ,.0fATil

clliREA UriEl ir.lsT RULTtui.iliI I,cD ASall

TICHiTA?

ar iiRtA ur.lut ilNEt'1cNiciAstlli

IEAZA (-C0U: ASaii AtiiXtl{0liLtU:Ul ;ll TABi!

.XISTATCDUi ?

rf.rDttATA ct IUMARAioRU.

181

Page 2: Introducere in Microprocesoare_Part16

. -t,i!d,;. i:a. a,1-:

-d L t':!S 5,1,i.t.".i. t, at,L. ai t-

-r::: lttLU

iirliA_i 0t AsAt'lBLAF;

INSTR. OPERAI'iD

0R6 3C10i]MCV A,C

JZ NIXT

r'40v A,B --JN Z S'iART

o)Iii)iT: Cl{A

0R6

START: M0V

tMA

)7

,/,/

,t I !{Bt J lf /' fiA"lAIAI,IFLART NI,I i IZ:E Sti;'ri8A /

I-_J-,

nl 'NEXT:) rilAul

Fig. 5.21. Utilizarea etichetelor pentru r.nodificarea programului surs5, fdrio rescriere completS: zr - prograrn inifial; b - program modi{icat.

Utilizarea adreselor simbolice in locu1 celor absolute este de impor*'fan![ majori pentru tlexibiiitatea progiamelor surs5.. Adresele simbolice-permit stabiiirea legS"tulilor de ramificalie -in program indicindu-s"nu adresa a.bsolutl, ci eticheta acelei adrese. In plus, etichctelc permit:nodificarea programului prin introducerea sau eliminarea de instruc-iiuni firi a fi necesarl rescrierea programului cum ar fi cazul daciradresele sint absolute. De exemplu, prograrnul din figura 5.21, a ritili-zeaziL doui. instructiuni ai ci,ror operanzi simbolici STAITT ;i NfiXl's?nt etichete ale altor doui instructirini. Introduccrea Llnei instnrc-lirrni, figura 5.21 , b nu necesitS. rescrierea in limtraj de asamblarer aprogramului anterior, etichetele rS.minind aceleir;i. [,a asamL>lilrc, asarjr..trl,onitr automat aloc5. alte va-lori etichetelor proclucincl moclificirtilede adrese numai in plogramul otriect.

Majori'tatea asambloareior reaiizeazl tabele dc simboluri (mnen.rci-r-iice, etichete, operanzi simboiici) si pe baza acestorai Slerercazit cttr.inlctrinaie ce sint compatibile peniru furrc{ionarca- unui iu'ttitrit tip d"'microprocesor, deci asambloaiele sint dependentc clc- rrricroproecsur. (J

c1as5. superioari <ie prograne sint meta-asarlbloarcle care gcneri'eaz!asambloare, adici produc programe obiect pentru or-icc tip'cie micro.-procesor deci sint independente de marsinl. Pentru asarnblatea tu]uiprograln sursi scris pentru un anumit tip de microprocesor de cirtrr: un

ccn ltl:iltiACF'SA I\SIRUCTIUNEA!IiC}JETA

SiAPT,

an..i.' A I-r!!l\ mEL€REsa s!islrf-ia ape.0l: r

sir i:l :i- st atr:'re ftttrcr:j1 a:;a:':

3[10HAD _-'-

i

I1

l,rl

t

{i

tl

li

il

ll

I

ii

l1

J1

11

t,,lL

ri- .,-t"l ir l-4.'^-.,'I :i r'.'

I r- !1

i1_,1J

:

;llLXl .'-I

;;;l ) ii* TNSTRUCTTuNt eoiucnrA3ti2 I ,o311i Ir19*5E scHtMBA ADRESA oF

lcr,. ft ic REFERTRE

:c,s li ra

rcro ll ce

rc'r i[J''o3c1a I l3ctctgl zF

START --_ I

I

C:.:tlJc 13:n

a 133lJ

!i ,:4 tl0 r_151]

i 1361-l

0 r3:r i

ir : - " -' t''., r,1ii,',tul:, J]:'.';,i.i:"i;"o i rni.u".",.x'iiulu

i obie c r

'3cncreaz."i pi.r.:l' rnr]l obicci ciir',.iia i s-ai-r reparLizat ni5te valori absoi",.r,.::re a{lrt'lt' in sp.l;i111 cie mt:inorie, de exemplu, prin inter-irecliul psr.udir)iii-strrictiunii oP't'. ,lsainblorir,r vdccaltil 1tr'a'it.ltalia p""t. iftcorsitler..-.iun asarnblor ab,col.Lrt a ciLrui ecli-csr"L cLe incepr-rt este'obcoH.

.{i'.rrtai, l' irLIr'orlus,- rlc ,rrr .rslmr,lor r.clocabi] sl'irr gesrirrne. i:.ntorici ";i eiirbo'area moCr-r.la.,: . ir;;g;unr-rlui. Un program comptr::;.

l^"-1,..ji.i*p:'r.tit i*tr-'' n,'ri-r mare"cle Drogramc fiici" lmocluie) fr.-,carc dintrc dct'''i:, rrroriLri', iii't[ irrtrt ca un progrrrir inrlepcndcn,. r.

lt:,f:19: Toll'l loarc.fi esernL.,t.rr inccpind,ic ti aa?sr'f.liri"rr; u00 iltar cind toetc nroJrriele si'c rsrmbleLe trebuie rerrnite in piograur. .

*l:^.rll" f,ac parte. Deci,'n asamblor reiocabii trebuie ue f,orJa*, i,-.ptu.s 1a-!* de asemblonrl abs.olut. si rLn progr'rftr c?rc, s,r nn,'asc.i prog: -mele obiect ele rnoclulelor di'du-i,.rtircse abscrrrIc si car.., .i ri:].. ,-..r::-de harta rnernoriei. - r- ----- "-' !

182I

i

183

Page 3: Introducere in Microprocesoare_Part16

rneta-asamblor acestLi.r trebuie si i se introducd. tabelul cu codul rnne;rnonicelor instructiuniior, formatul instrucfiunil;, ;i;;;;;riicete pseu_'doinstrucfiunilor-iorosite pentru "..i-iip,i" .i.iop.;;;;;;.'b., un ase_rnenea program de generaie de asamblaie se poate'elabora un asamblorpentru un microprocesor care nu exist[ f.izic'.

., ., r"jr:,manre,e r:"1,:, ::il:"::":i;il",.rnic arectate de rno-oul cum reu$este s6 atruci" .(citeasci) ;i si duc-d. (inscric) datere in rne_morie. De. f1pf, -oricare proiectant de structuri de microprocesoare cu-noa;te princ_ipiul - comir.nicafia informaqiei esie mai-.o".iir"it"ore decitprocesarea. Microprocesorul gbg0 trebuie si genereze un cuvint de i6bili pentru adresairea unei locafii au"ttt"rnori" in care este stocati datace urmeazi a fi nrocesatd.. Felul cum se constr.uieste (se compune)adresa loca{iei cIL mcmorie este denumit ntod de adresire. r\Iodur dcadresare afecteaz,i;;rffi ;d;;"::,idi:#:i1fl:,1#,ry:"1."T..T,uilTffi'3r.."J,?TiXl1tul ci microprocesoarele sint inzesti;i;.r tot mai rnurte posibiliti"ti ccimplem entare a modurilot a"--"ar!."i" i{i*"p,".;:;il: fi-d;;:lt;ri:ase moduri de adresare: impliciti, a registr"tdf, ai*"te-, ii*tiiu,^ii;:directS.), cu registre^ ry-re9he, .o-Li"nte. L1 3ft-q tipuri d.e mrcropro_cesoare se mai not iniilni adresare indexatl, inclirecia, r"I"tir,.i. .t..ADRESAR\* iai;ricifn: fr.]'ta unere initiut4luii care prin{ns5;i formatul binar (opcoDEj i";il i-piirrt^i.J.trli'i" i" p"rt":ia ope-rafie. De exempiu, instruc,ti"*; d. 4,tir"r.-i..i*"ra a acumu-tratorului DAA, implicit ic t"fe.r.'aouii" acumulator ; instrLrcti**ea dcinscriere a fanionului de conditil Sib-"t".

ADRESAREA REcrsriELoR. Acest mod de arrresare a r.e-gistrului (r1g ]" regis{ru) se foloseqte .1nd op"rrna"i i*pii."t i' ope-ralia respec.tivii sc alti in unul din registrcie dt_;;;, -

Eie , n, E. H siz- Instrucfiunilc care forosesc "dr"r""rea

t" registro i",rti^"ir"r"rir"'tiiibinar.(oPCoDE) cte un.byre ;i .oaiirii" ,*gi;ti"to, l;;ii;";". Ulrimiitrei biti mai putin semnifiiari,ii ,ro, .odifi.o';;;i;i;"i';ffr"a i"r op"r",,_dului), urmxforii trei bif i.registruf d..ti";tj;;i;";'pii*ii ?Ji bifi maisemnificativi codul operiliei," figura s.Zz. todarile'impuse pentru re-gistrele microprocesorurui iini da"te io t"u.rJl.l. F;";IJA;, in accasti.form5" de instructiuni cu adrcsarc ra registru, "n"i-

ai" ,.gi.d" ;.i.;acumulatorut (al c6rui "oa

.ii"-ir ii. c"r" ,irli -i,ri"'""#"t")Lt. ".".t.,iDIDIDISISIS

CODUL CODU]L@ERATIEI REOISTRULUI. IIE ,DESIINATIE

x84

CODULREGISTRi.JLUI

sunsA

F.ie. 5.22. Reprezentarea bililor pentru cctli.ficarea registrelor surs5, 9i destinaf-ie in cadml

instrucfiunilor cu adresare la registru.

liP de adresare, se re{eri.la registrele simple de g bifi, dar existd. citevar:;rrc SC_ref€r5". 1a registre pereche, adicd. iroceseaz5.'cuvinte de l6 biti.ADRESAREA DIRECT,{. Adresar6a directd. ".t" ili*"i ;l-pi;

rrrod de adresare a memoriei. Fiecare instrucliune cu adresare directi.'online adresa. loca-tiei de memorie in care se afld. op"r"rrdol necesarI)rocesarrl. lnstrucfrunea .ocup5. trei locatii succesive in memoria del'.?F.,uo,g: ln.prima locafie. e.te codul opera-tiei, in a doua localie estel,a-rtul cel mai pufin semnificatir- al adreiei, iar in a treia locatie baitulccl mai sernnificativ al adresei. Rezurti cL o astfel de instruciiune ne:c,'site. cel.pufin trei citiri la memorie (cicluri magin[)

-gi eventual al

patrulea ciclu p:ntru esecrrfia instrucfiuirii. In consbcinla, b instructiunecu adresarc directi consurni. multe stdri ale microprocesoruiui. un:::i+l dc. ir:st.rc!iune dc lcest tip. este LDA 8F6A^H, care expriml9!_eratla de rncirclrr- a acumulatorului cu conlinutul locafiei de la a^dresa8F'6AH.

LIA4BAJ DE .\SAItrBLARtr LII,rBAJ niASINA}JNEMONIC OI)ERAND

I_DA 61i5-{HSA I}ISTRUCTIUNE3A ; CODUL II'TSTRUCTIUI{II.0-\;l8F;I ADRESA LOCATIEI.

ILDA SFC,AHr l 1 E Mo R i L

---itat_A co\lNUTuLLOCAT I EI

(.ADRESA 'e r sa IL'CAT I E I

cofrllN ir\ D D'sA

.\DREAFOlAFO2AFO3

I'Iodul de e{ccluare a instiuctiunii de cltre microprocesorul g0g0 esteindicat in figura 5.23.Adresarea in irectl se dedrice din extinderea moduiui de adresare

{irect5.. Byte-ul aI doilea si al treilea al instrucfi""iilnaiJ o adresidrn memorle, dar ln aceastd. locatie 'u se afl5", ca la adresarea directi,operandul, in aceast5. loca{ie se afie adresa a:tei tocafii ;i;;;i continuieste.operandul.necesar procesi.r.ii.. Adresarea inclirectf, este r"comaria"lidacl mai rnuii;i utilizat'lri a' acces simultan 1a aceia;i i"iior"io, (mutu-acces).

,--59DATA CERU'IAI\I PR.]iEsARE

Fig. 5.23. Explicativ5 pentru nodul de a<iresaredirecti

185

Page 4: Introducere in Microprocesoare_Part16

Fig. 5"24, Explicativd i rrrij !r edrej:,i.er.*imediatd lpentru un cu.rir,1 ir lin baiir

pi de doi bai.ir)IMVI A O',H I

INSTRJCT !

L:l!:i!1Exl

jl.|,l RUcTIu

"t !A

OA32 H

Ii 0A.l.l Hl

O P CCDE

OPERANI-]

AaJNrJLATi,rl

;5A.i tl

-5 Ai g

,r5A5 H

0P coDII

I rPtPANl

RiGts-iRliL t,irRi::t rE rl

ct4,&-s,4ft8 IfuIEDIAf a. Tn adresarea imecliati, operardul ,,_e-cesar in. procesare. este situat imediilt dupi baitut ." t.po'rrllltit cod-ir-1,opt'rafit i. Tnslruciiunea crr adr,.sare imediaii cristr .u ,r!,.-,,,r1 dr. r:r,lrart sru de tloi 1rail i; cr id.rr1, cr instrucfiunc" . r o.up, :.r

'rerrr._,.,,doui. r-espectiv trei ioia{ii, fi[ura s t; ];rito;ti"",r"l;;;at.: sint uti-lizate ptirtru. irtroclucerca co'stantelor (simpie ;;; ;rri,l;l"nn calcu-lrn cazuI crnd constanta. esle duLli (16 biti) instrucfiunca'.e folos:?irpentru introducerea unei aclrcse intr-un regiitru, care apoi se va s111i2,pent-ru adresarea memoriei (aclresare cu reg"istru perechej. Inrtrucfirinikrimediate, in raport cu ccic de acrresarre diricte,-<jcu;i;,"rir" in rnr:-morie mai redus (corrsidclind si locatia unde se "ril artoi. ji necesitiirun rrurrrir tl,'cicluri nr.ai mic- Dc crcrnpirr, instt,ictiunil",iii'::g-lra 5.Ziau in linrl,lj de a,aml,lalc forma;

I_Ii\rIlAJ ASAMBLARE LIMBAJ MASrli-{l,{NEn{On- IC 0PltR ANI)

it\/I A,05HADII]JSA I N SI'I{UCTIUNE0A32IJ -1Ii ; SE IITICARCA ACIt_rlfUI_1i"

]-ORUL CU; DATA 05H.

0,13-1ll 05i xI FI,4183FI 4-5A3ir 21 ; sli INCARCA REGTSTRLI-45,\4Fl 83; PEIiECHIi H CT_r 4.{93H.45A)II 44;

sc: ubser",iL l:L 'r-i) c1{)80 nl,:dr-rl tle asamblare in rnemorie ::l uliiLicuviul- dc rloi l;aiii;'baituj cr.I inai ir.itiri r.n,r-rificativ ll- adrr:s;i inrctiiairlLipir ccilr-i in-'tr:rrctiunii, ial liaitrri ci:l mai semnificativ ja a,dresa rrr,rI-i irtos.l'r.

,1 D li It's'1 ]i I: A L Lr 1i/:tGl,s?'R rr i' E Irll.c tIE. Adr-esa unei Locatii:clc memorie in carc sr'. aflil riata necesarii poatc fi specificatr"u prin coiu

186

t! r u"iJ -lT: a

i.l;i. Erplicati-z;i pen:ru aciresarea cu i eEi:-itrrt] peiectl.:

1.::Lutrii.unui registru pcrechc ca in fiqura 5.2-i. prin utilizare;r a,jl.es:,:crir rc-gisrrul percche, instructiunea nrimai necesiil- doi baiti in plurs i.."r,'-:. indlce adresal ca 1a cea cu adrcsare directir. Llu accst mocl'de u'd.."an..,:n r-cgistlu _pereche, spafiui in rnemoria de programe se micsoreazi sii'itrrza rie aducere a datelor cre;te, deoarece siaci' numiirul ciiluriloi .i-<:1t-ire a rueinoriei. o utilizare'obisnLritiL pentrLl aclresarea cu. regi-.trul.lr:rt.cche estc in manipul;i.rca tal-,ellclor c1e date in memorie. --\ceasrjmanipntrare a tabelcloi' se 1;azeazi.pe iaplul cir aclresa de inceput esi,.:ircir.rcatl..intr-un registru pereche, iar dqpi fiecare citir.e (sau inscriere)e. menoiiei conlinutul reg'istrului perech-e este incrcmentat sau clecr:-;-r--iitrI, deci- est_c' posibilS" adiesarea localit-i urnrtoar-e. De obicei, r..-' ,';r,:. rrer-cch,. ,? ,'itc ccl rn.ri Lrtilizat I-.c:r1r.ll lrr .:i rriur-l J,, xdi.r,:.,.:.,-rrr\.r iir.irrrctir,rni pcrmit;i aclrcsarea cir-r'cgistr-.rl" B;;7i. pri,. uri-)-'z:1.r.',,'. '.inur registru perccirc irL'ntLu ildrcsare s-ar. putcl pr-ivi loclir:.r-: inclnclic adresatl"L ca un re3isli"u al. ilicroproces.rlulr-r.i. '

-'iD1les.'4RE cu ilYDICATotluL Df. s'TIl'-i. L)e.>i roirrtr.;-r:i.,,. i _ lolo:.est" pcnLt.u utl r.r,:;rr.,,d rn..rnu!.ici. ,rtn:r.t.L L,-.,r.r''r,] rtii s.. ,r_'.i c,. tut mo,l inrir'.pr.nrlerti rlt. lti r,...lLl-- l:r ,r;).:,tSU. l'ulLr.i. r_.1 i.r:.. _

tl'rs si :..cest:r, ca un. moci cle adresare , ptnirn a exirlica it-.rncrionar,-..sii'ei. Registrui inclicator :Ll r-irfului siir-ei Sp - fiointcr-u1 stir-ti -(:izick.tsointcr). pcate fi utilizat pentr-,,r adresarea i douir locatii r.il:mcL;e -.uccesive, lii transferui rlc in{ormalie intre acestea ;i oiicalec--,1

. relistlele. pereche . ale microprocesorului. Explicalia fuirc!ionirii

iilci sti','r- s-a dat in s,.:ctiuirea 1.3, d,:Lr.s-a considerat ce stiia era compus:Lci:r registre inrerne (special clesl.inate pentru acest scop). Teoieti,c"si.:a construiti in rnemoria RAi{ pc;are avea o capaciti-fe oricit der.rr-. Sir.t po:ribiJe d.ou-i scnsuri de transfer de infbrmatie intre 'on:.;-j:'i.o perc'chc li.menoi-ie: depu'erea coniinutului unui'registru ne--r-' ire i:r Joui locarii succcsive diri.rir; {pt-sH) si scoaterca coif inrrtul":ir. dcui localii succcsii'c di' stiii qi incirca/ei unui registru'perechg(PoP). Registrui indicatoi

-de .iiril toi.1.".',.r" indici adresa u]tina.-[

iccalii ocupate- din stiv5, - indici. rrirful stir"ei. Stiva poate''fi constru.it;_?n sns, adic5" depunerile (PUSH) in memorie se fac li adrese succesi.-,',.ciescL''oare ;i respectiv scoaterea {PoP) continutu.lu.i din stir'i. se face

,ifir

Page 5: Introducere in Microprocesoare_Part16

PUSH

FDOO H

F301 H

FDO2 H

FDO3 H

]NAINTE DE DEPUNEREA(PUSH)REGISIRULUI PERiCHE B JN STIV'i

FDOO H

FDO,] H

FD02 H

FDO3 H

l'.{ ,sll.ll confinutur Tgistrului indicator de stivd. Sp era egal cu ad.resar irt*lui siivci FD01 piin instruigio""" eu"siiil;'r""rrd'azil: | _con_I irrrrtul rcgistrutui B. este.dcpu. i" ro""1i, J;;r;;iisi,1rj : FD02H ;2 - continutul rcqistrului c'este depud in tocolia aJ "a#i (sp_z) :. i'D' r H ; 3 - .31ti,"i"r;.il;;jdj;;i;;;;t" .,r#'"',,e mic;orat;rursmat cu doi Sp-Z, deci iiaice "i.t"f rii".i.-i" iiilr; s.z6,b ester-uprczcntati operatia.(instrucfiunea) pop o, a"-.."il"i oi' stivi acorrfinu_tului registrului'n, .r"h-""li,rio, virful stivei era ra adresaH".?*ft;^tstruiliunea

pOp O-se ,"ili"""rain fetut urmi.tor: 1 _ con_rlrutrlr rocatrer de adresl" i'dicatd. de virfur stivei sp es1" a"pr.-inr., ristrul E ; Z - continutui locafiei d". "dr"re iSp +ll

""1t" a"p,r, i'r'' -istrul D: s - conlinutul regisiruruii.dicator de stivd. este automatrrr;rrit cu 2, deci indice virfui ,ti""i.

. Piogramatorul poate :ezerva, in memorie , o zon6. pentru stivi deorice iungime. virfuf stivei se inifiaIi;;;ir;-i;;;;;"r "|i.#ioi progr.-printi-o instrucliune care. prescrie. conlinut;i ,"gilt rl;t

-i;; operafiilecu stiva sint utiliza_te totde'auna cind este ,r.."r"?d t"li.";;""r registre

:lt^Ti: (inclusiv pC),.pentru . ft lJorit" i,. ,ut"i"?-"iilr]rogr"_" ;iaDol se impune revenirea ra starea inifiali, situafii ilp;r; a? ffird_i:ti ntare a subrutinelor si servirea intrerupeillor.' ADRESAREA coMBINATA. unele instrucliuni au un mod dea.tlrcsare compus din moduriG pr.r"rt"i" anterior. De exemplu, instruc-

{runc;L_de ap.lare a unci subrutine cnri "..".ite "-"irtiare directiurrnati de o adresare cu registru perecrre 1"*i """.i .,i ,""girtro irrai_aa"tor de stiv5").

Alte tipuri de microprocesoare prezinti. ;i aite moduri de adresarecurrr ar fi: indexat[, relativb. etc. ($ 3.+.01.Nlodul de adresare aI unei i'strucfiuni afecteaz|" direct timpurr.i'rosar pentru executarca acesteia, cit si numir"ra" io.utiii" m"*ori"

rtifill; De exemplu, instruc-tiunil" .,i mod de "ar"r"i"-l-plicit sauIa regrstru necesitd,lo::,11

:i,1gur_bait ir, *emoiie;-;;.i' 6 singurald,:::"t" (F ETCH) s,-i- apoi proces6azi cu operanzi aej a

"xisierrli in hardulmlcropr-ocesorului. Numirul de adresiri'"t" *.-.iri"i;];1;'_" instruc_tiune, determinS. ."1 :a ^p--i9"""1"t-

ti*pul unui ci.i" i"rtr".fiune Eii),i9?rll spaliul

. de memorie consumat. Rezultd. ;e- ;i;' justificatlatlrmafra c5. pentru un microplocesor perfor-"rr,t"i" ."r. ,i"t mai multinfluc nf a tc db comunicalia iirform"liii" a".il l;;.;;;" ilopriu-zisa.

5.4. Setul de instrucfiuni la pp g0g0

- l'ainte de-a expune setul de instrucliuni ai microprocesorurui8080 este necesar a ei<plica simboturiio+ "ili""i"tiii.'i,ii"r#" l28l [36]:- registrul r.,i-rrl"iort ---- 'roLr*v rvav'L(

addr - cuvintul de adresd. cu lungimea de 16 bifi;

J_/-Ei-lo_g!E

AnREsA Si';+i,'#,DIN (irv^

CONTINUTULUIRE6ISTRULUI

b)

Fig. 5.26. L.ucrul(PUSH

DUPA DEPUN€REA(PUSH B) i]EOISTRULUI

CDI]IINUIUL REGIJ;RPiRECHE B8nrG-r;-]

I os 1., l{sr)rxuL pERtChl dJJBfQ PEi.TRU A.:i

UII: ':.ARI

a Irv srlva

II

I

I

tIUp

-rtEr1s8G-CONTi NUTUL

ADRESA LOCATILORDIN STIVA

CFOg H

CFOA H

CFOA H

CFOC H

irarNru oE sc';rirnEr,rpcp)0,,'., ,r,uo i ,0,u,,*rr,uft_rrTRU ReGrsrRu p[RECi1! :,

CFO9 H

CFOA H

CFOB H.

CFOC H

DupAscoATEREAipop;)DNsrrvi | -------EA CONTINUIUL PE$TRU REGISTRU PERECHE Dcu stivd rcalizatd in RAM: c _ operafiunea cle clepunereB); u - operaf iurre, d. ,"oat"rJ",l_''"'irl 1i,,inu;j*.

in sti'r5,

de la adrese succesive descrescl.toare. DacL stiva cre;te in jos, pri*opera!ia de pUSH ,adle1c.!c ro."1iiili'ii";;;; ri,u !tl)"r" succesir.,iar p_rin operatia de pop ;;;;i;'Jrt crescure succcsiv.Pentru microprocesorur E0g0 stir-a cre;te in jos. in figura 5.26, aestc reprezentaid opcratia (iustrucriun"rj',i""ir'ui'H"h:'r rnaintc rre

lBB

-:,_

PERECHE

CONII NUTULRE6ISTRULUI SP

i89

Page 6: Introducere in Microprocesoare_Part16

da.ia - crllintu.I cje clata cu lungimea .le g biii:r/a/,a tr6- cuLr-intu] tle ciata cr"r..lungimea ele j6 bili;hail 2 - al doilea bair al instiuctiunii;: ,a.l 3 - al trcilca Lair al iusrructiurrii :

r'""i -- cu'i'L cu-_1'rigir*ea dc g rriti care estc J,--:..:c ull,,:, 1..rr.:'lltrale;ie;rre :

/ t '.,1- r.rrrr:l din :.cgisti.cle .1 , B, C, ll, E, H, L;xr'jl,.Ss-9 -crir-int formar din trei biti .^t"'reprezinti. codul un.,ria clira:egistrele 4.8.C.D, E,Il, L tDDDi coUuf r- ,i.rr*ul,ri . - dc-,_ti na{ie,. s'.ss.- c.odul- registr uiui sursiL). c"aiil ii.-*rcs :-r LLrz i: -

toal'e sint cele clin tabeiLrl :.1 "

- ,r:rrrl ,iirt rc.*i.r.r-ele pn6,6j1* (R _ I] . f It _ L li,trI -, l-{ - 1., sF - strrck poirrtc,r;;-_ cu-r-.iut form;rt tiin d_cr l.,iqir r::-r.c rcfrezinti. corlul unr-_1.i tli:;',registr eIc' .ircl'e.irc. co,iurilc curespunz:lto:Lre sint c..1,, din.tairelul 5. i ;

- rcgistrul ccl l'a i se ninificatii- :,ri urei pe r,,cJri <re r.i,iist; ,,:i,:llL-ot'd. r :

- ,egis'Lrul cti mai p'"itin semnificati'al urei pricciri cb i.:.l.istret.[or',--or.r.1erj j

- cr-lf iiltril cii'i(' Liti corilinut in registrul num:ir::toi- cL. r,-ires.,:ilq$ - i,,aj1-Lrt ci.t mai'semnificaiir.) ;PCL - I'aitrrl trl nrai putin sr_.mnii'icatir,) ;

- .ui'iiitul cie i6 l-'i i cortin.t in regist.rl inclicator ci,,, sti'a.isPFI - baitul cel*raiscmnificativ il adresei t-irr"r,.,i strr,.i,sPL - baitr-rl ce'i nai pntin scmnificati'l tr "ai.r.'r'rii,-rr,,i,stir-ei) ;

- lritul .ria a1 crr.intulLri ciintr_In l9,S]s_try,Qn: A,1,2,.^..,7i:.i', C)-. -JC - farioarr.le.ct^c c_ondiii*, ZiZnnO),:1.e.rtXl.'i i,t_SI!,\Ttr), Lt{ fRA\SpORT1, b.;' qrn,o,ispOli-i.'-i.*_'_ur,llln,'.

- -co:r{inututr jccaiiei de rnemorie, sau al unui re::jstru, :_;. c;liLri:i

adresa sau simbcl este cr-rprins in parantezi;-,:_:".^1.,.: esic in partea dreapti a sAgelii se rrar_i;t{:re i,n;r;.r.te;:

:II1]Sa;

- iI lo.ti" :

- SAU EXCI-LISI\-:- :.1\LI ]osic (:-\L I \CLL >I\'7 i

- adur:ale:- scidere. in corlplernent fa{i rie cioi ;- lllulttp.licat-(:

- cele douir valori sint schimba_te intre ele;

-1"-^-'; - crir int for"nrrf Jirr trei bi!i ce poar-e coclifica i:: ..j:rar sirrri,. ,l.r:ilc zecirr:,tlc 0. I , Z, ...', j.

i90

rp

,li'

'r /t.

".t

t,

7r-

o

Avv+

.s-

Iir crr,:itirluare se \-or descrie cele 7Z de instructiuni recunoscutel, . lr)l'of)rou!-trorul 8080, foiosinrl pentrri fiecare instrucliune urmltoarearr, ,.rr siunc in forma de prezentare [28]:

- in.rl-rr-icliunca in lirnbaj de asamblare, cu denumirea (in iirnba:r;1l,.:ir) in partea dreaptS" i

clc.r:nerea sirnboXici a operatiei realizatl de instrucfiune;-- f.rrmat',rl in limbai icod) magini a instrucliunii;- explicalii rcfcritoar*: tra numlrul de cicluri 9i de st5"ri necesare,

,n(){lri: dr: irjre sare si. fanio;rnelc afectate in urrna exe'cutlrii instruc,liunii.r Ii );rt i exista iiouiL variantc dr: execulie a instruc{iunii atunci valorile

lrir cloul-t nrirncie, alc st'J"ri1or consurnate, sint despS"rlite prin linie:

" ,lir i-i - -.ia:ir.) j

- exr;i.nirk' de scricre in lirnba"j c1e asamblare a ciiferitelor varianteir ir'stLur-tinni si eventuan prolrarnc.

5"4..1. Grupul instrilitiur'rilor de transfer

Accst ELLUI de inrir,lcli'.rni este utilizat pentru transferuL infor"ma-r,lrri, ::irb forma 'le cuvintc, intre rcgistr:e, sau intre registre gi mernorie,{lr:;i;:,rctiuail: rli: trans{cr nu afecteazS. {anioanele de conditie,

\ HSl- rtr, r?{r," 1 + ii21

( llor:e /egiste;' )

i,ler;rii,rr.rtul r,-.jistrului 12 r:i',. r1,-,ptr;l.at iil L',3i.ii'ul ; I

:sr..trL,iui rZ n't se modilici..['ic,r,rr:itul 1n limbaj maqin;i.:

contr.nutril re-

OPCODE

.D;stina!ieI

5i;,1 rrgistiu

I{l\" B,A

I,I0\" ,\,8

l,ii)\"T-,H.

:1,I{)\- C,C

S.\L \-8.\ZA CO]\ T. A{: LTbTULATORU [-LIN I :].it.)

I\C,\IiC,\ AC{-I,ILTLATORLIL CLI COi\l'{-),u.t'uL Iiiic. B.INCARCA REt;{,i fi"-L:n- L C{- CONT{i^i{- { LrLREG. H.II{C;\RCA C CL: C, NICI O OirilRAtrf[,COS.qLr-1'{A }'IAI },[L.tr-TE ST-\IiI ir]ii-i'f'I\ STR{-TC'|IUstr,\ }iOP.

r-1.--r--.-;.

l':L c.i er:t are :

.Iia-rtioane:j-' :':u \ltr.':r n'AR-f :

ti{ {-11_.:lP:

1 {-,} 1