Introducere in Microprocesoare_Part19

download Introducere in Microprocesoare_Part19

of 6

description

17

Transcript of Introducere in Microprocesoare_Part19

  • Se poate rni.ri timpul rre intirziere construind o bucr' cu un contqrpe un registru pereche^ca ir, """_piol ,rrmator:

    0874HO875HOB76H08771I0878H0879H

    OBTAHO87RHO87CFIOBTDH

    t6B1C2730815

    C27008c9

    MOV A,BORA CJNZ INTZM

    DCX D

    JNZ rN'rZSRET

    SE TESTEAZA DACAVAI-OAREA CO}{TOR].iLUIBUCLEI INTERIOARE:0SE DECREMENTEAZACONTORUL BUCI,EIEXTERIOARE.DACA N+O SALT LAINTZM.REINTOARCERE INPROGRA},{UL PRINCIPAL.

    SUBRUTINA,TPIVIRU INTIRZIERE MEDIE.V A LO A RE A P A RA M E r NI rT i - N _PE I{ r R7; 67J NAr AIIVTIRZIERIT S-E AFii.ITI"NECTSTRUL PERECHE B(CARE ARE FuNCrrA b'i couronftrl{TZM: DCX B S}i n}ir-pnr/rn\r-rD ^

    z ^ ^n \r,.^n---:E qF_qRENTENTEA2A coNroRUL,REG--ISTRUI- PERECHE B.Irov A,B ; sE rRAry1qlnRT'c6xTlfrurul REG. BIN .{CUMULATOR.ORA C ; INSTRUCTI-UNE; SAU 41. DACACONTO_R : o FANiCfqtf Z :'0.-"*T? INrz", 3*9$# f-gfiii*,^"ftqgEi" rNrzM.FPI-ryT_OARCERE rn pnocnauuiPRI},ICIPAL.

    Pentru o anumitr valoare impusi a intirzierii AT, valorile varia-bilelor de contor l/ ;i P se pot deitermina clin reialia: "AT,[p,S] : {10 + lz4(p

    -

    r) + 351 (rv _ r) + z4{p _1) + 43} 0,s0

  • }.} DAA (Decirnal adjust accumwlator )AceastS. instrucliune are ca efect convertirea continutului acurnura-torului in formatul zecirnal codificat binar BCD.'Operaliile de sci-dere ;i adunare intre operanzi in BCD pot duce la reiultate eronatein BCD; corectarea rezultatelor se faie in funclie de valorile fani-oanelor CY;i AC. Modul cum se corecteazS, rezultatul pentru a seobline o valoare real5" in BCD este expus ln $ 1.5.

    Fig. 5.30. Organigramd pentru. o subrutindce cuprinde o bucli, de tip _ irt, titnp ce

    32 DAD rp ( Adcl register pair to H and L )(H)(L) ,- (H)(L) 1- (rh)(rt)confinutul legi-strului,pereche rf cstc acrdugat la continut::r regis-trului pereche_H, rezuriatur se ottine in ;"Ci;"] p;;;h; H. conri-nutul registrului perechg gare se'adund .?;i"" '"L.."rri-f"tld;;afectat doar fanioirul cy,;i indici {aptur ca in ,egisiJ perechu: 11"in urma adunlrii, a rezull,at o valoire

    -.i ;;;;;;Jii zrr.i ol 0lR I pl i I 0 I 0l 1 i opcoDECi.l"t, .-:. 3Stdri : 10Adresare: la registruFanioane: C\-

    Exemplu:DAD H ; SE DUBLEAZA CONTINUTUL REGISTRULLx; FERECHE H, CEEA CE ESTE ECHIVAiixT cuDEPLASAREA CU UN RANG SPRE ST]XCA.DAD SP ; CoNTINUTUL REGIsrnuruT SP SE iijiie ra; REG. PERECHE H.Dacd se consideri ci in reqlt-rul Sp este varoarea 6D 1DH, iar in registrurpereche fl valoarea B2AEH, instrucfiunea DArl Sp rearizeaza:

    registrul pereche H BZAEH:10110010 1010 1110registrul pereche Sp 6D1DH:0110 1101 0001 110i

    rezultat in reg. pereche

    ol ol r I ol ol 1 | 1 lr I opcoDrtCicluri : 1Stiri ; 4Fanioane: Z,S,P,CY,AC

    Exempltt:Fresupunem c5" (A) : 39 ;i (B) : 41 ;i c5. urmeazl un segment deprogram pentru reaLizarea adunirii in BCD a celor doub- numere:ADD B; SE ADUNA 39 cu 47 SI SE OBTINE 80 (BCD).DAA ; AJTISTAREA ZECIMALA SE OBTINE 86 (BCD)acumulator 39(BCD) :0011 1001registru B 47(BCD) : 0100 0111acurnulator 86(BCD) + 1000 0000 : 80(BCD).conlinutul acumulatorului in urma adunirii binare este 1000 0000

    ce in BCD echivaleazi" cu 80, dar adunarea corecti trebuie s[ produci'.86(BCD) Pentru corectare (ajustare) se introduce totdeaunl dupiinstrucfiunea de adunare instiuc{iunea DAA.

    Crnpul itostrwcliun'iloy aritmet'ice :ADD rADD NI

    ADI data -ADC r

    ADC MACI data

    -

    SUB rSUB 1\{

    Adunarea la acumuiator a conlinutului unui registru,(Add.register ).Adunarea la acumulator a confinutului unei localii dememorie (Ad.d. urernory ).Adunare imediati la acumulator (Add. imnoed.iate).Adunare Ia acurnulator a conlinutului unui registru ;ia transport'tlui (Ad,d, reg,ister'with carry) 'Adunare la acumulator a conlinutului' unei localii dememorie

    .;i a-.transportului (Add rnem,ory uith cirry).Adunare imediatd. Ia acumulator si a traniportul,ai lAiaimrnediate zuith carry )Sciderea din acumliator a conlinutului unui registru(Snbtract regi,ster ).Scf,derea din acumulator a continutului unei locatii dinmemorie (Subtract memory ).Instrucliunea DAD este

    278

    H IFCBH: OOO1CY:I Vutil5, la insumarea

    1111 1100 1011

    cuvintelor in dubli precizie.

    AORTSA OT INCEPUT A TABELULUI,rtXnnfa lUtll,nrrtO RiJtUt 0E tOtATil

    sr ncReuEnttlzlvALoAREA luNiRiro-

    sr ncnrurtreaziAORESA OIN TABNT/- tUVINTUL

    TiTIT OIN TABEL

    RETURN

    219

  • SUI dataStsts r

    SBts M

    SBI dataINR rINR N,IllCR rDCIT

    INXDCR

    I}AI)DAA

    -

    ScI"derea irnediatl din conlinutul acumulatorului (Sub*tract r'nmediale ).

    -

    Sclderea din Jcurnulator a confinutului unui ,"giJtr,*;ia.impru:nutu1ui('Subtrac/,registerzu,ithborrow

    -

    ScS.derea din acumulator a conlinutulrri unei tocitii ainnremorie fi a irnprumututrui . (Subtract rtem,ory witltborroa ). ' r

    -

    ScXderea ime

  • Exetnpl,u:ANI ABH; SI LOGIC INTRE ACUMULATOR SI CUVIXTUT IOIO; 101 1.^-

    Modul de operare al unei porfi logice SI, cu dou' variabile, dintrecare una se consideri ca intrare^de valif,are a porlii, iu. ."ui"ita ca varia_biln de transfer, rezultl din tabelul- a" ua".re.. Daci. variabila de vali_dare este egald" cu zero, pentru orice valoare a variabilei de inirare, iesireaeste zero, adicd ooarta este blocatb. rur, ,"r"lrt;- i" ..n]-r, iace varia_bila de validare'este.r, iegirea "r" tora""una valoarea variabirei de in-trare. Aceastd proprietate cste utilizati in selectaiea ,,irrriito. inlrrria'te unui cuvint orin utilizarea unui grup de p"riil;g;;;iiguritre 3.9;3.12 si 3.13.

    ,.".,9ljj;l":*:?.,1.l"tiuniior. St logic se realizeazi. prin program ace_reasl lunctrr, ca gi in logica cabrali, adicd st. pot reseta "nu-"iti biti ;i1".::L1"P::." s,! ry! risa neschimbafi Daci intr_o--.""*tta pozi{iea unur cuvrnt este necesar ? se- pune 6itu1 pe valoarea ,"ro, lritil ai^aceea;i pozitie (bit rnasci).ar celjlart.u"inf imasc4 ir"rri"'ra fie zero"In schirnb, dacd intr-o pozigie uitui tieluie sri rdmini cu aceeasi varoare,in cuvintul mascii bitur coresp""ret-*t..buie si fi" i. ;; e-rernplu"instrucfiunea ANI FEH

    'a ."r"i. uit"lai" pozilia zero aacumuratorului,lisind neschirnba{i pe ceilalli.

    \1 XRA T (Excl,wsiae OR register )(-,{) * (A)v (r)Se realizeazS" opera,tia logic5" SAU exclusiv, bit cu bit, intre confi-nutul acumulatorului si conlinutul registrului r, reatltattl se obtinein acumulator. Confinutul registrului r nu se rnodific5.

    I r i ol r I oi r I sl slsl opconnLtclurl i IStlri : 4Adresare: la registruFanioane Z,S,P, CY : 0, AC : 0

    li remplu,:Rezultatul instructiunii SAU EXCLUSIV efectuatS. intre un cuvint

    ciat ;i un alt cuvint masci- se poate deduce din tabehll de adevlr,figura i.3, c. Funcfia de mascare prin aceastl instrucfiune poate fi pri-vitl- ca o operalie de complementare (negare). Deci se poate dedircestructura cuvintului mascl: pentru bifii ce nu necesitl- modificare incuvintul dat trebuie s5- le corespundi in cuvintul masc5- bifii de valoare7919., i9r pentru bilii ce necesitS" complementare trebuie si le corespundibilii de rraloare 1.

    *Considerind con{inutul acumulatorului 25H, iar al registrului B egalcu FAH prin instructiunea XRA B se obfine:

    acumulator 25H : 0010 0101registru B FAH : 1111 1010

    rezultir in acumulator 1101 ll 11In poziliiie subliniate au rezultat, in acumulator, bilii cu valori negate.XRA A; SE ANT-ILEAZA CONTINUTUL ACUMULATORULUI SE

    ; OBTIN FANIOANELE CY: 0, AC :0, Z -

    0.38 XRA M (Exclusiue OR menoory )

    acumulator XXXXbait2:FEH:1111 XXXX1110rezultS. in acumulator XXXX XXXO

    urmitoarele dou[ instructiuni vor selecta din registrul B cloar bitii0-3, ceilalli bifi 4-7 vor fi pugi pe zero: ,MVI A,OFH; SE INCARCA ACUMLILATORUL CU CUVINTULAlrA B ; 8iY#tf$ftto,lhu"rrrRlr,- A 0000xxxx

    In concluzier pfl operatia SI logic, pcnrru bitii care lrebuie pu;ir_::? Jr"seta!i). bilii corcspunzatorii" iruiniui;il irebuie sL fiezero; Lar pentru bilii care trebuie si rrmini. neschimbali, i; ;";;i;imascn Pjlii corespunzltori trebuie si fie 1. Fiitle i" ,."1i ."", o instruc_i::;;""'S"llogic

    (ANA r, ANA M, ANr ctata) este o ;il.tt; mascil pentru. . .

    I-nstrucfiunile SI logic pot fi utiiizate in testarea valorii anurnitorbifi dintr-un cuvint, p"""trit "r"ui1" se procedeazi in felururml.tor:tr- cuvintur respectiv-este adus in.acum,hat"il-t- f.irrt._,r' cuvintrnascS" potrivit se reseteazl- to{i bitii in afari. de cei cari trebuie testali;3

    -

    cu ajutorui instrucfiunr]g. a.l sc'dere 2t, r";t;odulo 2 39, saucomparatie 43 se poate'decide asupra valorii acestoi-blgi..)c)o

    @%

    (.,{) * (A)v (H)(L))Se realizeazl. opera\ia iogici SAU EXCLUSIV, bit cu bit, intrecontinutul acumulatorului ;i continutul loca{iei de memorie, aciirei adresS. este specificatl in registrul pereche ,F1.irlolrlolrlrlrlolCictruri : ZStart : /Adresare: cu registru perecheFanioane: Z,S,P, CY : 0, AC : 0.

    OPCODE

    ootzzJ

  • Exenoplu:

    XRA },f ; SAU EXCIUSIV II.ITRE ACUMULATOR SI LOCATiA; DE ]ITEMORIE INDiCATA IN REGIST'NCi FbNECUTi rI"

    (^4) * (A) v (batt z)Se realizeazi oneraria loqicl sAU EXCLUSIV, bit cu bit, intreconlinutul acudrul^ior"iri ;i rr"it"rT^ioilea a-r instructi'nii.

    tltSIR: *.------; SECVENTA DE PROGRAM CARE; TRATEAV,A CAZIJL DE INEGAI-ITATtr A; CUVII{TtrLOR.

    Fentru testarea egalitS,fii celor doi baili ai unui cuvint dublu sepoate proceda in felul urrnS.tor (se consideri cuvintul inscris in registrul1rt'reche D) :MO\T A,E

    X[{A D17, rESrR

    (Or itnmediale )

    bit c,u bit, intre conlinutulal instrucliunii, rezultatul se

    TRA}ISFERA BAITUL I},IFtrRIOII INACUMULATOR.(A)

    -(A) v(tr).I}.]- CAZ DE EGAT-ITATE IESIRE DI}i PF.OGI{A},T.

    39 XIttr data ( Exclusiae OR im,med.iate )

    Cicluri : ZStdri : 7Adresare: imediatd.Fanioane: Z, S, P, Cy : 0, AC : 0

    Exentplu:XRtr 25H

    XRI FFH

    IESIR: __i (A) * vAL, sE coNTINUA pRocRAI\{uL"

    SI' COMPLEMENTEAZA BITII O, 2,5 DINACUMULATOR.SE COMPLEMENTEAZA CONTXbIUTULACU},IULATORULUI.

    ..Ins.truc{iunile sAU EXCLUSIV pot fi utilizate pentru testareaegalitdlii a doudL cur.inrc dc un bait: 'TEST ; PPV V4L ; SE FIXE AZA YALo,ARtrA DE TEST.LDA ADnS ; SE TNCARCA CUVrN-UI nn rb*srAT.xRI j_E!l ; @) * (r)v vAr_.JZ IESIR; (A) : VAT, saTT LA IESIRE.

    OI{I data(A) * U) v (bait 2)Se realizeazL opera\ia logicS. SALI,acumulatorului ;i baitul al doiieaobline in acumuiaior.Ir l111lr lo lr 1 l lol OPC D

    DATACicluri : 2Starl : IAdresare: imediatiFanioa:re: Z, S, F, CY : 0, AC : 0O instrucliune care realizeazil opera,tia logicl SAU poate fi privitii

    ca o operatie de mascare. Biliior cd-rora trebuie si li se fixeze valoareala unu le corespund bifii (mascir) egali cu unu in cuvintul mascl, iarpentru bifii care nu trebuie s5.-;i schimbe valoarea le corespund biliimascir egali cu zero. Deci, cu bit masc5. egal cu 1 se fixeazl (seteaz5.) valoa-rea 1, iaf cubit mascL zero nu se schimbi valoarea, invers ca la operaliademascare SI (unde bitul masclegal cuzero reseteaz,E, iat' bitul mas-c5. unu nu schimbl valoarea.).Exemplu:OI{I Sl H;BITII 0 SI 7 REZULTATI IN ACUX{ULAI'OR AU

    ; \TALOAREA U]{U, CEILAI-TI RAI{I}T NESCHIMBATI.ORI OI{; NIJ SE SCI{IMBA VALOAREA ACUML]T-ATORULUI SI

    ; CY:0, AC:0.41 ORA r (Or register )(A)*(A)Y(r)

    40

    sau pentru cuvinte dubtu (multi) bait:LXI D,1234H; SE INCARCA VALOAREA DE TEST.r-DA ADRS ; SE ADUCE BATTUI- iutrnruCjn ElxRr E 1?8":\lylYJ,i"rESrArl:\z rESrR ; (a,i + (Ei SALT LA rESrRE.LDA ADRS+1 SE ADUCE BAITUT SCpnnIoR ALxRI D , ,?Y:X,VH{ ot rESrAr.nNZ IES ; A'+ D'SALT'LA IESIRE.

    ; IN CAZ DE EGALITA.I.E SE CONTINUA; PROGRAL{UL.224

    225

  • Se realizcazb" ooeraria logici SAU, bit cu bit, intre continutulmulatorului si continutui ."giriioi"i

    ", ,"rurtarul se obtinc inmulator. Con(inutul registrului / uu se schimbd.

    l-tToTlllloT s_L sl s f oi,ccDECicluri : IStbri : 4Adresare; la registrrrt,anioanc: Z, S, p, C\- : 0, AC :_ u

    (din acumulator) funclia SAU logic (ORA ll)mascare (seiare, aducerc la valoarea l).

    (Con'rpare immediate )3cu-acu-

    I't:ntnl bilii sublinialir reahzat operalia de43 CPI data

    A -

    (ba'it z)continuttil baitului al doilea a1 instrucliunii se scade din conlinutulacumulatorului, rliferen{a rezultatS. nu este inscrisl nici unde, darsint afectate fanioanele corespunziitor rezultatului care ar fi tre-buit sl apari in acumulatof. Conlinutul acumulatorului nu seschimb[. Cei doi operanzi sint considerali numere binare, cu semn,reprezentate in coriplement fi![ de doi. Z : l dacl (,4) : (bait 2) ;CY : 1 dac5. (,4') < (bait 2).ggIliNUiLTL ACUi{uLAroRULUr Nu sESCHIIIBA C\ : O, .\C: O.

    S AU I N RF, CON I'I \' UTUL .A.CUMULAI'ORULUISI AL iiEG. L.Testarea valorii zero a unui cuvint ciublubait se po:rte facc ca inultimul e-remolu cle program dc la instructlr,rirea 39, dar in linia a douain loc de XRI o ,"'""'ioi;:i;r".*iirinea oI{A D.

    E xernplu:START: ORA A

    ORA I-

    42 ORA M

    OPCODE

    DATA

    (A)*(A)vKH)(LDSe realizeazi ooera!ia.logic-i SA', bit cu bit, intre conlinutulacumrrlatorrrl,ri ii

    ",lnlinujuir*"ii.l i. *"*o.r" . cdrci adresin:ij,o"::tt,.atir i;r '"girf,:ui;";:;;; ;,*,.,,,tr"tur sc obti,e in acu_

    J i 1 11 li 11 li 1 l iol1l

    L:iernpln,:CPI A0H; SE SCADE DIN ACUMUI-ATOR ]'{UI'IARUL A0H'CPI ETH; SP SCENtr DIN ACUMULATOR NUMAITUL E7H.Pentru prima instrucliune se considerl ci in acumulator cste nurnlrulE3, in timpul executS.r'ii accsteia au loc urm5.toarele operalii:acumulator: E3- I tr31 l- I Ii0 001l+bait 2

    -

    A0 f= complernent fa1I de doi 60 I- 0ll0 0000CY: I +- 0100 0011

    Deoarece scXderea a fost inlocuitL cu adunare, transpoitul se considerS"negat, deci CY : 0 (vezi explicalia de la

    .instrucliunea 20, SUB r)'Pe]rtru a doua instrucfiune se considerS. c[ in acumulator este num|'rul85:

    tss-l l_ l0ll 0l0l+doi l9 l- oool 100iCY:0 +- 1100 1110

    Nu a ap5rut transfer, dt-ci se ia CY: 1 (adicl existi imprumut)'Fanioanele pot fi utitrizati: in intcrprc-tarea rela{iei de ordonare

    dintre cei doi operanzi, in felu1 urmitor:-

    ZERO. Dac5. {anior.ilI Z: 1, cei doi operanzi sint. egali; iardacl, ZI 0 bperanzii sint difer-iJi.

    -

    sIGI.l.^Fanionu.l de semn'S poate fi utilizai pentruinterpretareaI'alorilor*i6litive ale celor doi c,peranri 'ttturta'i dacI nu a rezultat transport(deci irnpiicl gi testarea fanionului cY)" Pentru S : 1, indici un rezultat

    (OR mentorjt )

    Cicluri :Stiiri :Adresare:Fanioane:

    E xernpltt:

    IrloIr,Tloll-f oj OPCO'Er-rgistr-it pcrech.,S, P, CY: O, AC: O

    LXI Ii, 4sA2H; Slt?_RESCRIE Ili RTGISTRUL 'ERECHE_ ; ADRESA 48AZH.oRA t\{ ; s{u Lobic ^r-N^TRE, CONTiNUTUL LOCATTET; DE ADRESA 4sA2H Sr AL e.uliuiler:onurur.

    DacS' continutul localiei de aclresi 48A,IJ este A3II, iar al acumulato_rului DOI{ atunci instrucliunea"OiiA llf ;. aiizeazd:

    21

    CLIZ,

    acumulator :bait 2

    Bs-lEl J- corr,nlement fa!I de

    acumulatorconfinutul locatiei

    DOH :A3H :

    li01 00001010 0011

    F3H :1i11 0011226

    rezultS. din acumulator

    227