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

I šsišakojantys Algoritmai

  • Upload
    weylin

  • View
    43

  • Download
    5

Embed Size (px)

DESCRIPTION

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ą. - PowerPoint PPT Presentation

Citation preview

Page 1: I šsišakojantys Algoritmai

Išsišakojantys Algoritmai

If A = 1

A = 1

C = A + B

C = A + D

Taip

Ne

Besąlyginis perėjimas

Page 2: I šsišakojantys Algoritmai

Asemblerio komandos

OR – loginė operacija ARBA

Tiesioginė adresacija OR dma

Netiesioginė adresacija OR {ind} [,ARn]

Betarpiška adresacija OR #ik [,shift]

Loginė operacija ARBA gali būti atlikta naudojant:•tiesioginę adresaciją•netiesioginę adresaciją•betarpišką adresaciją

dma (data memory adress) – duomenų adresas atmityje

0 ≤ dma ≤ 127 duomenų adresas gali būti nurodomas tik puslapio ribose0 ≤ n ≤ 7 viso 7 pagalbiniai registrai

ik 16 bitų konstanta

shift – postūmisik – immediate constant – komandoje rašoma konstanta (betarpiška konstanta)

0 ≤ shift ≤ 15 galimas postūmis neviršyja 15 skilčių

ind: {* *+ *- *0+ *0- *BR0+ *BR0-}

Page 3: I šsišakojantys Algoritmai

Asemblerio komandos

OR – loginė operacija ARBA

OR X ; (DP 1000h)

Duom. atmintis

1000h 0001h

ACC 0002h

Prieš Operaciją Po Operacijos

Duom. atmintis

1000h 0001h

ACC 0003h

Tiesioginė adresacija OR dma

.ds 1000h X .word 01h

atliekama ARBA operacija. Operacijoje dalyvauja ACC ir duomenys esantys adresu dma rezultatas išsaugomas akumuliatoriaus jaunesniojoje dalyje (ACCL)

Page 4: I šsišakojantys Algoritmai

Asemblerio komandos

Netiesioginė adresacija OR {ind} [,ARn]

OR – loginė operacija ARBA

OR *, AR0 ; (DP 1000h)

Duom. atmintis

1000h 0001h

ACC 0002h

Prieš Operaciją Po Operacijos

Duom. atmintis

1000h 0001h

ACC 0003h

.ds 1000h X .word 01h

ARP 1

AR1 1000h

ARP 0

AR1 1000h

atliekama ARBA operacija. Operacijoje dalyvauja ACC ir duomenys ARP rodo registro, kuriame yra duomenų adresas numerį rezultatas išsaugomas akumuliatoriaus 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]

Page 5: I šsišakojantys Algoritmai

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 ARBA operacija. rezultatas išsaugomas akumuliatoriuje (ACC).

Betarpiška adresacija OR #ik [,shift]

Asemblerio komandos

OR – loginė operacija ARBA

OR #02h, 2 ; (DP 1000h)

ACC 0001h

Prieš Operaciją Po Operacijos

ACC 0009h

Page 6: I šsišakojantys Algoritmai

AND – loginė operacija IR

Tiesioginė adresacija AND dma

Netiesioginė adresacija AND {ind} [,ARn]

Betarpiška adresacija AND #ik [,shift]

Loginė operacija IR gali būti atlikta naudojant:•tiesioginę adresaciją•netiesioginę adresaciją•betarpišką adresaciją

dma (data memory adress) – duomenų adresas atmityje

0 ≤ dma ≤ 127 duomenų adresas gali būti nurodomas tik puslapio ribose0 ≤ n ≤ 7 viso 7 pagalbiniai registrai

ik 16 bitų konstanta

shift – postūmisik – immediate constant – komandoje rašoma konstanta (betarpiška konstanta)

0 ≤ shift ≤ 15 galimas postūmis neviršyja 15 skilčių

ind: {* *+ *- *0+ *0- *BR0+ *BR0-}

Asemblerio komandos

Page 7: I šsišakojantys Algoritmai

B – Besąlyginio perėjimo komanda

Asemblerio komandos

B pma [, {ind} [,ARn] pma (program memory adress) – komandos adresas programų atmintyje

0 ≤ pma ≤ 65535 adresas 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

B 191, *+, 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

Page 8: I šsišakojantys Algoritmai

If (sąlyga(os) ): pma PC Else (PC) + 2 PC

BCND – Sąlyginio perėjimo komanda

Asemblerio komandos

BCND pma cond [, cond1] [, ...]

0 ≤ pma ≤ 65535 adresas 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

Jei nurodytos sąlygos tenkinamos, tai perėjimasvykdomas nurodytu adresu (pma)Priešingu atveju, vykdoma sekanti komanda

BCND zyme, LEQ, C

Jei ACC ≤ 0 ir C = 1 Tai į PC įrašoma adreso “zyme” reikšmė ir toliau programa vykdomapradedant eilute (adresu) zyme.Jei nurodytos sąlygos netenkinamos, tai vykdoma sekanti komanda

Page 9: I šsišakojantys Algoritmai

BIT – Bito išskyrimo komanda

Asemblerio komandos

Tiesioginė adresacija BIT dma, bit code

Netiesioginė adresacija BIT {ind} bit code [,ARn]

bit code – bito numeris žodyje

0 ≤ dma ≤ 127 duomenų adresas gali būti nurodomas tik puslapio ribose0 ≤ n ≤ 7 viso 7 pagalbiniai registrai

0 ≤ bit code ≤ 15 viso 15 bitų žodyje

ind: {* *+ *- *0+ *0- *BR0+ *BR0-}

Nurodytas atmintyje esančio žodžio bitas kopijuojamas į būsenos registro ST1 bitą TC

bitas bito 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

Page 10: I šsišakojantys Algoritmai

BIT X, 15

Asemblerio komandos

BIT – Bito išskyrimo komanda

Duom. atmintis

1000h 0001h

TC 0

Prieš Operaciją Po Operacijos

Duom. atmintis

1000h 0001h

TC 1

Tiesioginė adresacija BIT dma, bit code

.ds 1000h X .word 01h

Tikrinamas žodžio, esančio adresu 1000h, jauniausias bitas

Page 11: I šsišakojantys Algoritmai

BIT *, 0 , AR1

Asemblerio komandos

BIT – Bito išskyrimo komanda

Duom. atmintis

1000h 0001h

TC 0

Prieš Operaciją Po Operacijos

Duom. atmintis

1000h 0001h

TC 0

Netiesioginė adresacija BIT {ind} bit code [,ARn]

Tikrinamas žodžio, esančio adresu 1000h, vyriausias bitas

ARP 0

AR0 1000h

ARP 1

AR0 1000h

Page 12: I šsišakojantys Algoritmai

Skaitmeninio Automato Realizavimas Kompilaiciniu Būdu

Išsišakojantys Algoritmai

Valdomo objekto būsenos įrašytos atminties žodyje X

Valdymo signalai įrašyti atminties žodyje Y

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

X(10)

Y1, Y3 Y(1) = 1 ir Y(3) = 1

1X 4X tikrinti ar X(1) = 0 ir X(4) = 1

1 eiti šia šaka jei sąlyga patenkinta

0

eiti šia šaka jei sąlyga nepatenkinta

Page 13: I šsišakojantys Algoritmai

Skaitmeninio Automato Realizavimas Kompilaiciniu Būdu

Išsišakojantys Algoritmai

Sudėtinę sąlygą ( ) išskaidome į keletą parastesnių1X 4X

Y1, Y3

1X 4X 1 0

Y5 Y1, Y3

Y1, Y3

1X 4X 1

Y1, Y3 1

0

Y5

0

Page 14: I šsišakojantys Algoritmai

Skaitmeninio Automato Realizavimas Kompilaiciniu Būdu

Išsišakojantys Algoritmai

Algoritmą pertvarkome taip, kad visada būtų tikrinama sąlyga: Ar X(n) = 1. Čia n – bito nr.

Y1, Y3

1X 4X 1 Y1, Y3 1

0

Y5

0

Y1, Y3

4X 0 Y1, Y3 1

1

Y5

0

1X

Page 15: I šsišakojantys Algoritmai

Skaitmeninio Automato Realizavimas Kompilaiciniu Būdu

Išsišakojantys Algoritmai

Pavyzdys pateiktam algoritmo fragmentui. Objekto būsenos saugomos atminties žodyje adresu 1078hValdymo signalų reikšmės saugomos žodyje adresu 1088h

.mmregs .ds 1078h: .word 0000h .ds 1088hY: .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

1088h 000ah

bitas bito 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

Y1, Y3

4X 0 Y1, Y3 1

1

Y5

0

1X

b0

b1 b2 b3

b4