introducere in microprocesoare_part32

Upload: mesuzana-1

Post on 07-Jan-2016

232 views

Category:

Documents


0 download

DESCRIPTION

1

TRANSCRIPT

  • T^-b-oi: d'e da!).ra o proce.s.are irtterigcntd a cuiro;tinfelor (constituite inlezc de cunost,inle ).^:il:9111, e11e illfoprli" i"'rl-i"ti, ailptate, inter_p'etat5, serectatd ;.i transfoimati. o u"# a. ?"dJ'".t"-" colecfie de:Lf_":l-."tji ;i,relaliile-intre_"."rt"", i"r prin generalizare , o bazd, d.ecuno;trnfe este o baz.6' de date plus o .oiec1i""d;raffi;" care printnJerenld, se obfin, din aceastd.'colectie d; ;";ii"t";^""irii"i#",iigi reguli nespecificate :ltr:ll, b. $nt i] I ;";;;i' il;;"";;;;";';H:blemelor reaie co care se confrunti^actrvitatea umarr' esfe de naturd.nematematicd', ci doar fragmente limitat" ut"- proui"-J* pot fi expri*mate prin numir. Majoriiatea ralion,nentcrJr ;;";';;.'prin calcull:,1ri prin inferenle laaica

    "*ttnpb1"i"u togice-r-;rr"i """"1 din altul,prin care se admite o judecatd in virtuteJ """i i;;id;i*" "i cu altej'dec5"!i considerate c.'ud"rrirot*j.-ero."r"rea actuirl se face cu pro_grame algoritrnice care trateazt iiforiali" riirt*ti., l"".irra procesa_r ea viitoare bazat|,pe i,tttetigel,li qriill;iit;-;; #;i""!i"semantic in_formaIia. No!iunea de intetige"nft147] a",iva*a*-rjifi';..,ii1

    ,,itttet!egere,,,care insearnnj. a alege clintie, iailiLl"t.t"g",-. p"i;.ir*,;;ti (a co.rela). Proprietatea de,interige'ti 1"riiii.i"raj "p"i" i"

    t#I* progro-"care ele insele isi construi"r.-progrlrn" p.!1trg gi..ir"u'nei solulii. Sau":"g$i 19!iune'cum este

    ""Ei."?n ir. p+s1 ,,Interigenfa artificiall estestudiul ideiior care permit '."t."t.toni"to, si" efectueze acele lucruri'care fac pe oameni ;I" parn interigenli.pur .t"".i"..t tJ'irrt"tig"rr1,umand? Estc abilitatea^de.a raqiJn"i'prt" abiiitatea de a dobindi si1p_1T" cunoa;tere? Este abilitatea de a mernora si comrrnica ij"ii'cijsrguran!'i toate acestc abilititi formeazL ..". ..'"rt"'^i^i.iig""1a, darnu tot ce poate fi spus clespre e-a,.. Este

    .f;;.i; ;;;; ;;";pus din cerezulti" inteligenla unui sistc^m din cu'o;ti't" -+ ;;;i'j; de repre_zentare sau din rnod.ur rezorutiv procedulal (i"r"i.""1-ipi"rrr";;#;;inteligentd" artificiarx se dezvoltd" i" ;;; rnult! fr";i;;i; ,^ou"oti.a; in!e_legerea limbajului nut.1.u|, "

    "il'"sr;ii"r, a vorbirii; demonstrare deteoreme; sisteme expert,etc. (Un ;rj;;; ext'ert este un fel de ,,asistentinteligent" al unui eipert

    "*"';, p;";u"un anumit clomeniu, sau uneorichiar poate sl-l subsfituie pe acesta).Performanta ulel-mas,rli cu inierenle cste misuratd. in inferctt!etogice pe serwndd, Lrps 1r'rrns:i^iogri'.r.-r"t;.;;;; il;second). unLIPS raportat la ma;iniic. clasice d; t:p von Neumann ar fi echiva-lent cu 100-1000 insirucliuni p" ."*#e 1r"r.i""1"^B"'s"l""aa, rcs).Fentru ca o masini actuaii si aibi acel";;i E;i;;;;";;." cele alernasinilor din eeierafiu r .i"*" "r ?rJr"i sb" rearizeze r01r-r0rz Ips !Totodati, o de"osebire a acestor maqini in raport ct, cere actuare, apareprin utilizarea limbajelor declaiati""^tu ."r" ordinea de executare ainstrucfiunilor nu are sens (evident-.e-"rgo-"ntele pentru procesaretrebuie s5. fi fost deja gefinite) Fioblema ce se ridici c' aceste rim_baje, care nu ,,simt" nici sensul'ti-p"f"i-gi

    "i"i;;.;i;;* "r," legarealor de lumea reali in care tempo""iit-t., ;i ,.."""p"1ii""ti""rirrt dorni_nante.372

    -

    Interfatarea calculatorului cu mediul exterior ;i in special cuoperatorul uman se va deosebi mult fa![ de stadiui actual. Deja inter-falirile actuale de tip non-tastaturrT (creion luminos, tableti grafic5.,digitizor, baghetl pentru codificare cu bare, ,,;oarece", ecrane sensibileprin atingere, dispozitive optice pentru recunoa;terea caracterelor, dis-pozitive pentru introducerea imaginiior, dispozitive pentru recunoas-terea vorbirii etc.) tind sl deplaseze introducerea datelor de la opera-tor spre dispozitive. Cercetiriie in domeniul prelucrlrii limbajului natu-raX, al inlelegerii vorbirii, imaginilor ;i graficelor vor duce la reaLizarea.de interfele inteligente, adic5" va lnzestra calculatorul cu abilitateade a asculta, a vedea, a inlelege gi a rlspunde prietenos operatoruluiurrlan.

    Conform teoriei ciclicitS"fii istorice in desf5.;urarea valurilor revolu-lionare in;tiin!l, tehnologie ;i industrie cel de al doilea ciclu s-ar situade la inceputul secolului actual pinl spre jumitatea celui viitor. Atreia und5. din acest ciclu ar corespunde revoluliei industriale (a douadin istoria omenirii) bazatd" pe microelectronicS" ;i informaticS,, supor*tul fizic fiind rnicroprocesorul sau mai general circuitul integrat (ciput).Urmltorul vaI, al patrulea, ar corespunde unei revolulii tehnologicebazate pe biologie ;i biochirnie. Poate, ca o uvertur[ la acest viitor'r.al, au ap5"rut deja pentru domenii speciaie interfa!5,ri de nuanli teh-nico-bioiogici precum: 'intrare prin conectare directii creier-calcu,lator,bi,oci,pul. Ca un scenariu posibil initiat in aceastS. a patra undl cit5.mdin la7] exprimarea Pro{esorului i\{ihai Dr5"g5"nescu ,,... Astfel, el.ectro-nica funclionali (programatl

    -

    n.a.) aplrutS. odat5. cu microprocesorulconsiderS"m c5. va trece la o noui etapi care va rez;.tlta din cuplajuldintre electronicS" si biologie, de pitrundele in universul informaliona}al ornului, de un nou cuplaj informalional cu creierul uman, cu dis-pozitive ;i metode care pot fi indrumate si evolueze in acest scop. Oaltl cale va fi aceea a realizi"rii unui cornputer biologic, respectiv a uneiinteligenle artificiale vii (IAV) ;i desigur vor fi examina.te diverse po-sibilitnli in atingerea acestui obiectiv. In fine este de prev[zut formareaunei inteligenle sociale care va juca un ro1 important in constituireaunei societlti orientate informalional".

    ;

    i

  • CAPITOTUL 8

    ANEXE

    41. lrnplenlentarea subrutimelonlntreruper!lor [{gJ

    .1,:tT 4

    H

    Aceste anexe T..i?:l introduse pentru a coirstitui o culegcre deprograme' ut'e cititorr-lui ca model, io" 93 erercifiu, ra eraborarea inlimbaj de asamblarc a prograrneror proprii .;;;i;;'a"

    "ii preiuatesau adaptate, in anurnitc aif icatii. Sj. .a"t"t, prir-..".it" !rog,.orr1., .ise acopere o garnd de rtpliirtii cit rnai to.gi,,t^i,,_,',;;'r";; introci'ssubprogramelC pentru opira^1iil,' "iit"i.ii.., id"".,,, =.i,;"1.i jnrnultir..,;fTtiti;i l[,t't"n,l"""te de 8 sau r6 niti 'rlo..ef;,;.:;:; i", ri g;,i1"

    RET

    AIC-},IELE SUBRUTII{EI LUI|GI EST-E DAFDAF: PUSH B SALVEAZA IN STIVA REGiSTRELE.

    PERE('HE B, D, H.

    I}ISTRUCTIUNII-E DE SER\,IiRE APERIFERICULL'i1.REFACE REGISTR]]LE H, D, B.

    REINTOi\RCERE IN SLiBRUTIIiA tr\T6,EXEhtPLUtr- A1.1 . Trataveatrttrtt,ttrberii ra o m'sind de scvislliicrosistemul accepti o intre^ipcre de la o masiniL cre scris sltransmite p.ortului fUl-(:,

    _reprezi'ri pentr' sisteni d;;1";;" .;;dicalecterul din locaiia lJt'FnlS.|;UTIELE SLIBRLTTII{EI PENTRLi SERI/IREA )TASI!{IIDE SCliIS ESTE ly?'MS

    ,iiINTI{S: I-DA BUFI,{S

    OUT P}{SEtr

    RtrT

    REGISTRULUI DE CONDITIIREINTOARCERE IN PROGRAI\{UI-trNTRERIIPT

    IT\CARCA ACUMULATORLiL CU TJJ'ICARACTERUL CE TREBTIIE TIPARiT.TRANSMITE CAtr.ACTERUL LAMASINA DE SCRIS.AUTORIZEAZA SISTES{UL PENTRLIINTRERT]PERILE VIITOAITE.REINTOARCERE IN PITOGITA}IULI}JTRERUPT.

    intreruperilor, pre-tr lost necesar nu-

    de 71 ps. La aceste.

    PUSHPUSH

    POPPOPPOPRE i'

    DH

    HD;B

    pentru ts"atarea

    O subrutin[ de intrerupere estc dati in.cele ce unneaz5. De iapt,sint doui subrutinc it1i4,ii", "r".i"r* de opt baiii care,,ste a.pc-lati cu o instructiunc RST" ;i'r;;;ii"ngi ce tratcaz' cie*ii. i:rrrc-'ruperea' Utirizarea a doui-."br;iin;;=ie necesore ori tle citc o:.i rra_tarea inrreruperii nec*ita o-r**;;;ir';" io.t",r.tiurri' Jr"' o.uprL rnai

    ilJi:"ohtfairi, citi ,;';,; ;"';;:;i; Jrbrutineror apelate cu insrruc_ Subrutina INTxts nu utilizeazL sti'a pentru salvarea continutului,registlelor-;i a.PS\,lr. Nu a fost necesard" iceasti. transferare deour"c.laceastS" subrutini nu poate. fi intrerupti. Autoriz"."" ir.lr"ru.perilor1,ltr^.,.:: :t lace-prin inslrucliunea EI fiind efectiva

    "o-ui-aupiL^REf,adrca d*pi ce s-a revenit.in programutr intrerupt. S-a ares aceasti rno-dalitate de neautoritlrl *intreruperii deoarece subrutina rmrMS, pii"cele douS- instructirrni LD+ li oiT, consumr un timp aoai d" ii,s'rr;.

    l.l.^1.:: ,11.1:q:,ti limpul d.e _tratare a intrerupedlor necesar pentruexecutra rnstruc!-iuni!1 _de apelare, de autorizar6 si de re'enire'63 r,Ef, RET) se obline 24,5 ,p.s.-

    ATUMEI,E SI]tsRUTIT{EI SCURTE ESTE 1-\ 7'd]{NT6: PUSH PSw ; SALVEAZA IN STIVAEr i *,c,Yxy,Lj1lojqu!_sr FAliroANELE.+uToRrzEAZA SisTEn{uLFE-NTRU INTRERUPERILEYIITOARE.LI.\LL DAF , :p l-pe^inezA SUBRUTTNALUNGA, DAFI'Ci ps\\r ; S4 nEpaIp^COXTTXUTUT_ACI-IXTUI-A.TORULUI SI ii

    Revenind la subrutina generali de tratare azentat1. inaintea acestui exemplu, se observi cb. armai pentru salr.area ;i refacerei registrelor un timp

    375'

  • 71 ps mai trebuie adS.ugat timpul necesar pentrugi timpui pentru executia instrucfiunilor. TimpuJstrucliunilor este variabil depinzind de aplicalie.

    tratarer lntreruperiipentru execufia in- EXEMPLUL Ceas de ti,mp real

    Conectarea Ia un sistem pentru o transmisie/receplie seriali seface printr-un circuit USART (eventual un modem cind.se :utilizeazd.o linie telefonicS.). Circuitul USART prime;te de la TTY un caracter,ii verificS. paritatea, il incadreazd cu bilii de stop si start ;i emite cere-rea de intrerupere c5"tre microprocesor.

    Sistemui trebuie s5- citeascS, iesirea circuitului USART si s5" me-rnor:eze caracterul la adresa BUTRf'; aceasta se realizeazl cu iubrutinaITRTT.

    NUMELE SUBRUTINEI DE RECEPTIE A IJNUI CARACTERDE LA TTY ESTE ITRTT.

    EXEMPI-UL A Tratarea |ntrentperilor de la wn, teletype ( T f y )Se va implementa un program care va- line evidenla,^timpului in

    cinci localii sr]ccesive din niemorie, incepind cu adresa CTR.CTR

    -sutimi de secundlCTR+1-secundeCTRa2-minuteCTRa3-oreCTR+4-z1le.Ccle 5 localii pot fi inilializate prin program. |n cele ce urrneazl

    se dir subrutina dd intrerupere care acttalizeaz\ conlinutul la fiecaresemnal a.l generatorului de iact. Generatorul de tact extern ftrnizeazS"semlale de intrerupere cu frecvenla de 100 Hz.

    Tratarea intreruperii se face cu doul sutrrutine. una mai scurtinurnitS" INTCR apelaie cu instrucliunea RSTn ;i una mai lungl TCTRapelati de subrutina IN fCR.{TITTT: IN USART

    STA BUFRTEiRET

    OUT USARTEIRET

    CiTESTE CARACTERUL.STOCHEAZA CARA.CTERUL.AUTORIZEAZA I NTITERUPERILE.ITEINTOARCERE IN PROGRAMULiNTRERUPT.

    INCARCA IN ACUI\{ULATORCARACTERUL.TRAhISMITE CARACTERUL.VALIDEAZA INTRERUPERI LE.REINTOARCERE IN PROGRAMUI-INTRERUPT.

    Subrutina de transmitere a unui caracter cd.tre teleimprimatorprin USART este similard. cu cea de la exemplut A1.1 cu deosebireac5. intreruperea este cerutS" de semnalul ,,DATA VALIDA" (vezi $ 6.2.?).

    NUMELE SUBRUTINEI DE TRANSMITERE A UNUICARACTER CATRE TTY ESTE ITTTT

    ITTTT: LDA BUFRT

    INTCR: PUSH PSWPIISH HCALL TCTRPOP HPOP PSWRET

    TCTR: LXI H,CTR

    SALVEAZA PSW.SALVEAZA H-L.APELEAZA SUBRUTINA TCTR.REFACE H-L.REFACE PSW.REINTOARCEREA ININTRERUPT.ADRESA LOCATIEISECUNDA.SE ADUNA O SUTINTE DE SECUNDA.INCARCA ACUMULATORUL CU 1OO.EXISTA TRANSFER LA StrCUNDE?NU. GATA !DA. NUMARUL DE SUT'IMI : O.ADRESA LOCATIEI PENTRU SECUNDE.ADUNA O SECUNDA.INCARCA ACUMULATORUL CU 60.EXISTA TRANSFER LA MINUTE ?NU. GATA !DA. NUMARUL DE SECUNDtr:0.ADRESA LOCATIEI PENTRU MINUTE.ADUNA CU MINUT.INCARCA ACUMULATORUL CU 60.EXISTA TRANSFER LA ORE?NU. GATA !DA. NUNTARUL DE MINUTE : O.ADRESA LOCATIEI PENTRU ORE.ADUNA O ORA.

    PROGRAMUL

    SUTIXII DE

    LegS.tura intre teleiinprimator si microprocesor poate fi realizatigi direct prin magistrala de date, fir5" utilizarea unui circuit USART.In acest caz, microprocesorul preia qi sarcina de a recepliona semnalulserie primit de ia TTY, verificarea paritnlii si a incadririi semnailuluicu bilii de stop. Subrutinele de receptie si de emisie sint muit rnai com-plexe in acest caz ;i incarcS. serios sistemul. Aceastl solutie (firl utili-Zarea circuitului USART) se foiose;te in aplicalii foarte'simple, ca inexemplul sistemului prezentat in $ 7.2. O subrutinl, ce poate fi utili-eatd" in aces'L caz, pentru serializa.rea unui caracter este prezentat5 infigura 5.33.

    376

    INRMVICMPJNZMVIINRINRMVICPIJNZMVIINXINR},{VICMPJNZMVIINRINR

    MA,100MGATAM,OHMA,60MGATAM,OHMA,60MGATAM,OHM

    377

  • MYIC},TPJNZ}I\rIINXINRGATA: EIRET

    A ?JliGATATI,OYYf1u

    INCARCA ACU}{ULATORUL CIi 24.EXISTA TRANSF'ER LA ZILE?NU. GATA:DA. NU}{ARLIL DE ORE: O.ADRESA LOCATIEI PENTRU zfi:[..ADUNA O Zi.AIITORI ZEAZA INTRERUPERILERETNTOARCETiEA IN SUBRUilxaINTRC.

    ; ADRESA LOCATItrI PENTRU SECUNDE.; .qE OBTINtr TIMPUL PREZENT; (SECL,)iDE;.

    ; ADLirrl{ 15 SECUNDE., ESTE }{Ai ]{IC SALi EGAL CU 60 ?; DA. I\ ACU,\{LTLATOR SE afte l]lltpuI-; DORIT.; ,t'U. SCADE 60. OBTINE TIlIptiL DORtrT.; ,\STEAPTA PINA CIND IN CT'R+ i SL]; ,\FLA TI\lPL L DOITI-|.

    A2.1. Metoda

    Impiementare:r f unc!iilorlfolosirea instiuc(iunilor logicecdrui micropl occsor.EXEIt PLUL A2.1. Sitnu,larca i,tr:ersoarelor CDB 40414A514061407

    Programul carc urmeazS. este scris pentru simularea unui chip dintipurilc enumerate. Se consideri c[ cele gase valiabile de intrare se.aplic5. ta bitii 0,1,2,3,4 ;i 5 ai poltrilui de intrare PI. Variabiiele deie.,sire se oblin la aceia;i bi!i, dar ai portului de ie;ire PE. Bilii 6 ;i 7 aiporturilor PI ;i PE nu sint utilizali.

    logice prince existiL

    Subrutina de intrerupere a ceaslll*i de timp real trebuie si. aibro prioritatc foa'fe marc, d"o"r"." p.,iiri" euicien't,i ii,',;;i"i este afec_tati de orice inrirzicrc in rr-atar.ci t'i. p;.,;ii;;^';;in""'iir'i,,aici a seacorda ceasrilui de timp re.al cea 'rai 'ar.e pri";l;;;- dri:. sistemuxde d.etectare a ci.derii iensiunii de- .ii,r."rra"r".

    .

    Esle de menlion?l fulL"1 ci, acc.asi:L subru.tini nu afecteazi. clecit::gl:lt"/S 4, 11,+,;i bistatilet" a. .ir,i"'; din acest motiv cetelaite re_Brsrre. \-IJ,.L, D, L) nu au fost salr,ate in stivi,.

    -t'oiosrnd rezultatere din cere ci'ci rocatii ale programurui anteriorse pot reahza diferite intirzieri. De txempl", pJ"t.i, -r^"Jirnr"" or,"iintirzieri de i 5 secunde in.p.ograrnJprir.ipi r"'p5ri" "iii)i,r.-ato"."osecr-cn!5" dc iilsrrrrclmnr:

    cornbinaf !onale

    IN PIChfAOUT PE

    IN PICMAANI 001111118}TOV B,AT-DA PEI{ANI 110000008ORA B

    OUT PESI'A PENI

    2. Portul decu instrucliuneaIN PI.CMAANtr 001111118

    IIOV B,AIN PEANI 110000008

    metoda directl se bazeazi pein setul de instrucfiuni al ori-

    VARIABILELT DE INTRARE SiNT INTRODUSE INACIIIi{]LATOR.COX'TPLEI'IENTEAZA VALORILE DE INTRARE.RF]ZI]I-TATUL ESTE INSCRIS iN PORTUL DEIESIRE.

    CITESTE INTRAREA.CONIPLEMENTEAZA.BITII 6 SI 7 SINT PUSI PE ZEFTO.I,IEI,IOREA.ZA COIIPLtrI,iENTUI- INREGXSTRUL B.CITESTE DUBLUIIA.PASTREAZA DIN DUBLURADOAR BITII6 SI7.SAU LOGIC INTRE DUBLURA SI

    LXI H,CTR+ 1MO\I A,]I

    In cazul ciird bilii 6 Ei 7 ai portului PE sint utilizali in aLte scopuri,,este necesar ca programul de simulale sl nu-i afecteze. Se poate realizaacea-st1 proteclie in douii modalitlli:

    1. Portul PE are o dubiur[ in memorie, PE]t.ADICPX-JC

    SLiIET: CI{P

    156r)E-rL-t

    60]IJI{Z ET

    A2. Sli"r'lularea funcflonirii circq.rite!or[3] trel

    CONTPLEMENT.INSCRIE REZULTATUL LA ItrSiRE.1,i]]X{OREAZA iN DUBLURA.

    ie;ire PE poate {i utilizat ;i ca port de intrare gi cititIN.; CITESTE PORTUL DE INTRARE.; COMPLE},IENTEAZA.; BITII 6 SI 7 DIN ACUIIULATOR SINT PUSI; PE ZERO.; TRANSFERA IN REGISTRUL B.; CITESTE PORTUL DE IESIREIINTRARE PE.; BIIII 6 SI 7 DIN P RA} IN NEN{ODIFICATI.

    Implcmeutarea uzuard.(paral"li) a. .{ u'ctiiror iogicc cu aj utorrriporlilor simplr, circuire rISI "seu rsi ri*pi"rir""i^* "rr.raware, logicicabtrat5") poate {i substituitl foarte ai'antaj6s, a;;;;; ;iJn a" proce_sare mai redusl (deoarece se realizeazl secvenliar). pri"tr*" progra,,lrulat pe un sistem c* microprocesor (d,,numiti ii'i.igi;""pr"gramata).Duph- cum se 'a r-edea crin eiemprel. irrniitoare, se pot distingc urnii-toarele posibiliti!.i de rearizare i Iogicii frogramare: metoda dirccti,metoda cornparirii, metoda dt'finirir "pLin iab;re ;i ;;toia "aigoritmici.

    378379

  • BrTrr 0-s DIN pq*(coMpLEMENTATT) srg{_rl 6. sr 7 DrN FE'srili A"sf,nibr_,qrr r_i.ACELASI CUVINT.iNSCRIE IN PORTUL PE.

    trn acest caz nu este ne-voie de dubluri..Drept urmare, instrucliuneaLo,* "

    fost inrocuite ." o i"rtt".rii#ix iar instrucfiunea srA erimi_EXEM?LUL A2. z. sincurarea *rcuiteror.gl-NU ctt, douti. ,intriiri(cDB 4001403)

    Intr-un circuit integrat cDB 400 sint patru porti sI-NU. rntruciti nstruc{iunile micronrocesorurui soso m anipureazi'oc tcf f es r"- arrantal ossr se considere simirlarealt*rrt"re n'?'""e circ'ite cDB 400. pentruaceasta sint necesare clou' p_ort"ii-a" iJtrur" rri ;i Frz1, rln port deiegire PE. prin nrogra.rnur ie ri-"rur"'r"'"uiir'r; irrirtir"ltur..:i pEcele 8 funclii st-ixt . prog.r*ri^iJuT*'uru." ".r*,SII{T CITITE PRI}{EJP_S VARIABILE DE INTRARE.srNT r{EMoRATn_ p;r4Fonan' }"11" nE Gr slRul BsrNT crrrrE unuaToli{niE 's-'vaRraBrr-E DEINTTRARE.

    SI LOGIC INTRE.VARI-ABILELE CELOR DOUAPORTURI DE INTRARE. -'-""" "COMPI-EMENTEAZA.INSCRIE REZULTATUL IN PORTUL PE.

    EXEM.LUL A2.3. simurarea circuiteror s'-ffu cw G intrdri(cDB 4//)ln acest caz' similar ca in exemprur A2.2,se vor r,.irizatrei porturicle intrare pIr, pI2. pr: qi un^pori'at" i"ti.. pE. pcntru rearizar.ea fur,.c_{iei SI intre trci v"riabiic.;:;;;;'*ai intii funclia sI intre dour,'variabile. dupr. care funclia sr i"t.Jt!r"it"t"i

    "ni**t;;;; 'd" a treiavariabilb.. Frbgramur a" 'riffi*";".i;:"""'"r olr.nut ;r cea (

    ORA B;

    EXELIPLUL A2.4. Sinoularea sirnultand a fiutclii.l,or l,ogice:OA:IA.IB.IC.IDOB:IA+IB+IC+IDoc : (rA" rB) + (rc .rD)oD:(rA+rB).(rc.rD)

    Prograrn-ul de simul.are primegte ca variabile logice de .ntrare 1,4,{-B^ U^ gi^1^D.;i calculeazS" conform relaliilor vaiorile funcfiilor O.4,O,B, O.C ,i O?. Se considerS. dou5. porturi unul de intrare ;i unui de iegireale c5.ror aCrcse si a{ectarea bifilor este urmb-toarea:

    BI:IIIFUI{CTIA ADRESA 765,T 3 2 1

    PORT DE INTRARE Az}j O O O O ID IC IBFORT DE IESIRE FzH O O O O OD OC OB

    OUT PE :

    0IAOA

    IN PI1MOV B,AIN PIZA1{A BCMAOUT PE

    Pentru calculul funcliitror logice OA, OB, OC, OD se realizeazimodulele POA, POB, POC, POD care impreuni cu modulul de intraredate INTRDT (citirea portului 0ZH) si cu-modulul iesire date ESDATA(inscrierea portului F2H) sint asamblate in schema to'gica din figura Ai.Se considerS. c5. adresele simbolice SOA, SOE, SOC, SOD sint conse-cutive in ordine cresci-toare. Frograrnul otrlinut prininlinluireamoduleioreste prezentat in continuale:

    MOV B,AIN PI3ANA B

    CMAOUT PE

    380 I

    -cIIPgl'E PRTMUL PoRr DE TNTRARE.IIgU9_LEAZA rEM?oB4B J,i' Hn iisrnur n.gllElTp AL DOTLEA FoRr bp rlrlHanp.SI LOGIC iNTRE VANTANTI;IN'iJiX PORTURILEPII, P]2.sgl{qBEAZA REZU.T:rATUL TNTERMEDTAR rNgIlElT-E PoRruL AL fRErLil. ""SI LoGIC INTRE nrZuirTidil. rNrrnnuEDIARPORTUL PI3.COMPLEMENTEAZA.INSCRIE REZULTATUL IN PORTUL PE.

    IN Ptr1MOV B,AI}i PDANA B

    ArrI-T-[TrALitRn\-:r-:E,fJr---r--Tt-.-,..---tr-^. .'__.tl

    1,,: - i;-: 0A :;,-lli

    L

    I

    INTRDT: IN OZ}fSTA INPUT

    POA: LDA INPUTx{ov B,A

    CITESTE DATIJLE DE INTRARE DELA PORTUT- AZII.STOCHEAZA DATELE LA ADRESAINPUT.CITESTE LOCATIA INPUT.SALVEAZA I}I REGISTRUL B.

    Schema logicd a programului din EXEMPLVL A 2.4

    381

    B.

    S1

    L.H

    Fig. 4.1.

  • POB:

    RRC

    MOV C,ARRC

    r{ovRRC

    ANAANAANAANISTALDAt{ovRRC

    BCD01HSOAINPUTB,A

    },{OV C,ARRC

    MOV D,ARRC

    ORA BORA CORA DAI{I O1HSTA SOB

    POC: LDA INPUTMOY B,ARRC

    A}IA B}{OV E,ALDA INPUTItRCRRC

    N{OV B,ARRC

    AI{A BORA EANI O1HSTA SOC

    382 383

    ROTATIE DREAPTA, IB INPOZITIA ZERO.SALVEAZA IN C.ROTATIE DREAPTA, ICZEF.O.SAL\IEAZA IN D.ROTATIE DREAPTA, iD IN POZITIAZERO.SI LOGIC ID CU IA.SI LOGIC ID.IA CU IB.SI LOGIC ID.IA CU iC.IIASCHE-{ZA BITII 1+7.STOCHEAZA OA I-A ADRESA SOA.-CITESTE LOCATIA INPTIT.SALVEAZA IN REGISTRUL ts.ROTATIE DREAPTA, IB IN POZITIAZERO.SAL\TEAZA IN REGISTRUL C.ROTATIE DREAPTA, IC IN POZI-TiAZERO,SALVEAZA IN REGISTRIJL D.ROTATIE DREAPTA, ID IN POZITIAZERO.SALT LOGIC ID CL; IT\.sAU LOGrC (rD + rA) CU rB.sAU LOGIC (rD+rA+rB) CU rC.UASCHEAZA BITII 1+7.STOCHEAZA LA ADRESA SOB.CITESTE LOCATIA INPUT.SALVEAZA IN REGISTRUL B.ROTATltr DREAPTA, IB IN POZITIAZERO.AND I\TRtr IA SI IB.SAL\TEAZA IA . II] IN REGISTRUL E-CITESTtr LOCATIA INPI]T.ROTATIE DREAPTA.ROTATIE DREAPTA, IC IN POZITIAZERO.SAL\'EAZA IC IN RtrGISTRUL B.ROTATIE DREAPTA, ID IN POZITIAZERO.AND I\TRE IC SI ID.SAU LOGIC INTRE IA.IB SI IC .ID"IIASCHEAZA BITII I+.7.SAL\ItrAZ\ LA ADRESA SOC.

    POD: LDA INPUTMOV B,ARRC

    ORA B]\{OV E,ALDA INPUTRRCRRC

    }TOV B,ARRC

    ANA BAl"iA E.\-\I O IIISTA SOD

    ESDATA: XRA ALXI H,SOD.\IVI 8,4

    tsUCI-A: RLCORA NI

    CITESTE LOCATIA INPUT,SALVEAZA IN REGISTRUL B.ROTATIE DREAPTA, IB IN POZITIAZERO.OR INTRE IA SI IB.SALVEAZA IN REGISTRUL tr.CITESTE LOCATIA INPUT.ROTATIE DREAPTA.ITOTATIE DREAPTA, IC IN POZITiAZERO.SALVEAZA IC IN REGISTRUL ts.ROTATIE DREAPTA, ID iN POZITIAZERO.AND INTRE IC SI ID._\ND rNTRE (IA+IB) SI IC . ID.].IASCHEAZA BITII 1+1;SALVEAZA OD LA ADRtrSA SOD.STERGE ACUI{ULATORUI- SI CY.SE PRtrSCRiE ADRtrSA SOD INREGISTRUL PER. H.

    : REGTSTRUI- B (CON'[OR) L\; \-AI-OAREA 4.; X-OC PENTITU BITL'IL URIIATOI{.: SE ADUCE DIN MEMORIE O; FUNCTIE Dtr IESIRE.; UR}{ATOAREA ADRESA DIN: IIEI'IORIE.; DECREMts)iTEAZA CONTORUL.

    POZI'IIA"

    DCX HDCR BJNZ BUCLA : CICLEAZA PINA CONTORUL: O.OUT FzH ; N\SCRIE IN PORTUL DE IESIRE.Jl,{P INTRDT ; REiA PROGRAX'IUL.

    La implementarea funcliiloi iogice cste recomandati citirea osingurl dat5. a va,riabilelor de in'trare, stocarea (in eremplul anieriorla adresa INPUT) ;i folosirea acestor valori pentru un intreg ciclu decalcul. Dac5. s-ar citi valorile de fiecare dat5. cind se calculeazi citeun termen al unei funclii logice, s-ar putea ca o variabili. s5" se rnodificede la o citire la urmi-toarea, ceea ce poate duce la hazard static (com-bina!ional).

    42.2. Metoda comparbrii

    O funclie lo.gic5" F dat[ sub forma unci sume de termeni Fi (formacanonicS. disjunctivS., FCD, sau forma normaiS. disjunctiv[) are va-loarea 1 cind cel pulin un termen F, este unu ;i are valoarea 0 cind