1 / 15

I šsišakojantys Algoritmai

A = 1. If A = 1. Ne. C = A + D. Taip. Besąlyginis perėjimas. C = A + B. I šsišakojantys Algoritmai. Asemblerio komandos. OR – loginė operacija ARBA. Loginė operacija ARBA gali būti atlikta naudojant: tiesioginę adresaciją netiesioginę adresaciją betarpišką adresaciją.

weylin
Télécharger la présentation

I šsišakojantys Algoritmai

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A = 1 If A = 1 Ne C = A + D Taip Besąlyginis perėjimas C = A + B Išsišakojantys Algoritmai

  2. Asemblerio komandos OR – loginė operacija ARBA • Loginė operacija ARBA gali būti atlikta naudojant: • tiesioginę adresaciją • netiesioginę adresaciją • betarpišką adresaciją Tiesioginė adresacija ORdma dma (data memory adress) – duomenų adresas atmityje Netiesioginė adresacija OR {ind} [,ARn] Betarpiška adresacijaOR #ik [,shift] shift – postūmis ik – immediate constant –komandoje rašoma konstanta (betarpiška konstanta) 0 ≤dma ≤ 127 duomenų adresas gali būti nurodomas tik puslapio ribose 0 ≤n≤ 7 viso 7 pagalbiniai registrai ik 16 bitų konstanta 0 ≤shift ≤ 15galimas postūmis neviršyja 15 skilčių ind: {* *+ *- *0+ *0- *BR0+ *BR0-}

  3. 0003h 0001h 0002h 0001h 1000h ACC ACC 1000h Asemblerio komandos OR – loginė operacija ARBA Tiesioginė adresacija ORdma atliekama ARBAoperacija. Operacijoje dalyvauja ACC ir duomenysesantys adresu dma rezultatas išsaugomasakumuliatoriaus jaunesniojoje dalyje (ACCL) OR X ; (DP 1000h) .ds 1000h X .word 01h Po Operacijos Prieš Operaciją Duom. atmintis Duom. atmintis

  4. 0 1000h 0001h 0002h 1 1000h 0001h 0003h ACC ARP AR1 ACC ARP AR1 1000h 1000h Asemblerio komandos OR – loginė operacija ARBA Netiesioginė adresacija OR {ind} [,ARn] atliekama ARBAoperacija. Operacijoje dalyvauja ACC ir duomenys ARP rodo registro, kuriame yra duomenų adresas numerį rezultatas išsaugomasakumuliatoriaus jaunesniojoje dalyje (ACCL) vyresniajai akumuliatoriaus daliai (ACCH) ši operacija įtakos neturi operacijos metu gali būti keičiama registro, kurio numeris patalpintas į ARP, reikšmė {ind} operacijos metu gali būti keičiama ARP reikšmė [,ARn] OR*, AR0 ; (DP 1000h) Po Operacijos Prieš Operaciją .ds 1000h X .word 01h Duom. atmintis Duom. atmintis

  5. 0001h 0009h ACC ACC Asemblerio komandos OR – loginė operacija ARBA Betarpiška adresacijaOR #ik [,shift] komandoje nurodyta konstanta (ik) pastumiama per nurodytą pozicijų skaičių (shift) po postūmio likusios laisvos pozicijos užpildomos nuliais su gautąja reikšme ir akumuliatoriaus turiniu atliekama ARBAoperacija. rezultatas išsaugomas akumuliatoriuje (ACC). OR #02h, 2 ; (DP 1000h) Po Operacijos Prieš Operaciją

  6. Asemblerio komandos AND – loginė operacija IR • Loginė operacija IR gali būti atlikta naudojant: • tiesioginę adresaciją • netiesioginę adresaciją • betarpišką adresaciją Tiesioginė adresacija ANDdma dma (data memory adress) – duomenų adresas atmityje Netiesioginė adresacija AND {ind} [,ARn] Betarpiška adresacijaAND #ik [,shift] shift – postūmis ik – immediate constant –komandoje rašoma konstanta (betarpiška konstanta) 0 ≤dma ≤ 127 duomenų adresas gali būti nurodomas tik puslapio ribose 0 ≤n≤ 7 viso 7 pagalbiniai registrai ik 16 bitų konstanta 0 ≤shift ≤ 15galimas postūmis neviršyja 15 skilčių ind: {* *+ *- *0+ *0- *BR0+ *BR0-}

  7. Asemblerio komandos B – Besąlyginio perėjimo komanda B pma[, {ind} [,ARn] pma (program memory adress) – komandos adresas programų atmintyje 0 ≤pma ≤ 65535adresas gali būti nurodomas į bet kurią programų atminties vietą 0 ≤n≤ 7 viso 7 pagalbiniai registrai ind: {* *+ *- *0+ *0- *BR0+ *BR0-} komanda vykdo besąlyginį perėjimą adresu pma. Reikšmė pma gali būti arba simbolių eilutė (žymė), arba skaičius jei nurodyta [, {ind} [,ARn], komandos vykdymo metu gali būti keičiami einamojo ARn ir ARP registrų turiniai B191, *+, AR1 Reikšmė 191 įrašoma į komandų skaitliuką PC (program counter) ir programos vykdymas tęsiamas pradedant adresu 191. Einamoji ARn didinama 1-tu, o į ARP įrašomas 1

  8. Asemblerio komandos BCND – Sąlyginio perėjimo komanda BCND pmacond [, cond1][, ...] 0 ≤pma ≤ 65535adresas gali būti nurodomas į bet kurią programų atminties vietą Sąlygos: ACC = 0 EQ ACC ≠ 0 NEQ ACC < 0 LT ACC ≤ 0 LEQ ACC < 0 GT ACC ≥ 0 GEQ C = 0 NC C = 1 C OV = 0 NOV OV = 1 OV TC = 0 NTC TC = 1 TC If (sąlyga(os) ): pma PC Else (PC) + 2  PC Jei nurodytos sąlygos tenkinamos, tai perėjimas vykdomas nurodytu adresu (pma) Priešingu atveju, vykdoma sekanti komanda BCNDzyme, LEQ, C JeiACC ≤ 0 ir C = 1 Tai į PC įrašoma adreso “zyme” reikšmė ir toliau programa vykdoma pradedant eilute (adresu) zyme. Jei nurodytos sąlygos netenkinamos, tai vykdoma sekanti komanda

  9. bitasbito nr. bitas bito nr. (LSB) 0 0000 8 0111 1 1110 9 0110 2 1101 10 0101 3 1100 11 0100 4 1011 12 0011 5 1010 13 0010 6 1001 14 0001 7 1000 15 0000 Asemblerio komandos BIT – Bito išskyrimo komanda bit code – bito numeris žodyje Tiesioginė adresacija BITdma, bit code Netiesioginė adresacija BIT {ind} bit code [,ARn] 0 ≤dma ≤ 127 duomenų adresas gali būti nurodomas tik puslapio ribose 0 ≤n≤ 7 viso 7 pagalbiniai registrai 0 ≤bit code ≤ 15viso 15 bitų žodyje ind: {* *+ *- *0+ *0- *BR0+ *BR0-} Nurodytas atmintyje esančio žodžio bitas kopijuojamas į būsenos registro ST1bitąTC

  10. 0001h 0 1 0001h 1000h TC TC 1000h Asemblerio komandos BIT – Bito išskyrimo komanda Tiesioginė adresacija BITdma, bit code Tikrinamasžodžio, esančio adresu 1000h, jauniausias bitas .ds 1000h X .word 01h BIT X, 15 Po Operacijos Prieš Operaciją Duom. atmintis Duom. atmintis

  11. 0001h 1 1000h 0 0 0 1000h 0001h ARP AR0 TC 1000h AR0 1000h ARP TC Asemblerio komandos BIT – Bito išskyrimo komanda Netiesioginė adresacija BIT {ind} bit code [,ARn] Tikrinamasžodžio, esančio adresu 1000h, vyriausias bitas BIT *, 0, AR1 Po Operacijos Prieš Operaciją Duom. atmintis Duom. atmintis

  12. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 X: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Y1, Y3 Y(1) = 1 ir Y(3) = 1 0 tikrinti ar X(1) = 0 ir X(4) = 1 X(10) eiti šia šaka jei sąlyga nepatenkinta eiti šia šaka jei sąlyga patenkinta 1 Išsišakojantys Algoritmai Skaitmeninio Automato Realizavimas Kompilaiciniu Būdu Valdomo objekto būsenos įrašytos atminties žodyje X Valdymo signalai įrašyti atminties žodyje Y

  13. Sudėtinę sąlygą ( ) išskaidome į keletą parastesnių Y1, Y3 Y1, Y3 0 1 1 1 Y1, Y3 Y5 Y1, Y3 0 0 Y5 Išsišakojantys Algoritmai Skaitmeninio Automato Realizavimas Kompilaiciniu Būdu

  14. Y1, Y3 Y1, Y3 Y1, Y3 1 1 Y1, Y3 0 1 0 0 0 1 Y5 Y5 Išsišakojantys Algoritmai Skaitmeninio Automato Realizavimas Kompilaiciniu Būdu Algoritmą pertvarkome taip, kad visada būtų tikrinama sąlyga: Ar X(n) = 1. Čia n – bito nr.

  15. .mmregs .ds 1078h : .word 0000h .ds 1088h Y: .word 0000h .ps 0a00h .entry ; programos pradzia ldp #Y ; DP = 1088h lar AR0, #Y ; AR0 = 0088h lacl * ; ACC = 0000h OR #0ah ; ACC = 000ah sacl * ldp #X ; DP = 1078h lar AR0, #X ; AR0 = 0078h lacl * bit *, 0eh, AR0; TC = 0 bcnd b4, TC bit*, 0bh, AR0 bcnd b3, TC ; TC = 0 b4: ldp #Y ; DP = 1088h b0 Y1, Y3 b3 b2 b1 Y1, Y3 0 1 bitasbito nr. bitas bito nr. (LSB) 0 0000 8 0111 1 1110 9 0110 2 1101 10 0101 3 1100 11 0100 4 1011 12 0011 5 1010 13 0010 6 1001 14 0001 7 1000 15 0000 000ah 1088h 0 1 b4 Y5 Išsišakojantys Algoritmai Skaitmeninio Automato Realizavimas Kompilaiciniu Būdu Pavyzdys pateiktam algoritmo fragmentui. Objekto būsenos saugomos atminties žodyje  adresu 1078h Valdymo signalų reikšmės saugomos žodyje  adresu 1088h

More Related