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
Išsišakojantys Algoritmai
If A = 1
A = 1
C = A + B
C = A + D
Taip
Ne
Besąlyginis perėjimas
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-}
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)
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]
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
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
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
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
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
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
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
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
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
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
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