You are on page 1of 39

Stanja u registrima i na sabirnicama

Pojednostavljeni model CISC računala


Komponente pojednostavljenog modela 8-bitnog
mikroprocesora

ALU+registri:
• 8 bitna ALU (ADD, SHIFT, COMPL., AND, OR)
• Akumulator (A) sudjeluje u aritmetičko-logičkim operacijama i u
prijenosu podataka između mikroprocesora i vanjskih jedinki
• DC (Data Counter) – brojilo podataka, sadrži adresu operanada
(16 bita)
• PC (Program Counter) – programsko brojilo (16 bita)
• GPR (General Purpose Registers) skup registara opće namjene (8
bitni)
• PR (Privremeni registar) – pomoćni registar (8 bita) za privremeno
pohranjivanje podataka koji sudjeluju u aritmetičko-logičkim
operacijama
CU + kontrolni registri:
• PC – već spomenut u ALU+registri
• IR (Instruction Register), 8 bitni registar za smještaj operacijskog koda
• CU = dekoder + upravljački sklop
 Dekoder –dekodira operacijski kod
 Upravljački sklop – u skladu s operacijskim kodom generira niz upravljačkih
signala koji pokreću mikrooperacije. Mikrooperacije su sinkronizirane
međusobno pomoću signala vremenskog vođenja koje pak pokreće glavni
signal vremenskog vođenja
Stanje na vanjskim sabirnicama

• Procesor ostvaruje svoju vezu s vanjskim svijetom preko vanjskih


sabirnica (adresna, podatkovna, upravljačka)
• Logički analizator – uređaj pomoću kojeg pratimo (zapisujemo)
logička stanja određena visokom razinom, odnosno niskom
razinom napona na pojedinim mjestima digitalnih sklopova
• Logičkim analizatorom bilježimo dinamičku promjenu stanja na
sabirnicama u vremenskoj ovisnosti o signalu vremenskog vođenja
Podjela instrukcijskog ciklusa na potcikluse

• Instrukcijski ciklus možemo općenito podijeliti na potcikluse. Glede


aktivnosti na sabirnicama postoje dvije bitno različite vrste
potciklusa:
 sabirnički (Bus cycles)
 Sabirnički ciklus je onaj podciklus instrukcije koji uključuje promet,
odnosno općenito aktivnost, na vanjskim sabirnicama procesora.
 U svakom instrukcijskom ciklusu mora postojati bar jedan
sabirnički ciklus – ciklus čitanja iz memorije (ciklus pribavljanja
instrukcije iz memorije).
 Za prijenos rezultata obrade procesora u vanjski svijet nužan je
bar jedan sabirnički ciklus pisanja u glavnu memoriju, odnosno u
pristupne međuregistre vanjskih uređaja.
 interni (Internal cycles)
 Interni ciklusi su potciklusi unutar instrukcijjskog ciklusa u kojima
nema aktivnosti na sabirnicama. Procesor obavlja radnje unutar
svojih podjedinki (CU, ALU, ...) prenoseći signale svojim
unutarnjim sabirnicama i mijenjajući stanje svojih registara, ali
bez korištenja vanjskih sabirnica.
 Najčešće se pojavljuju u fazi izvrši.
6
Primjer 1.

• Na adresi 0100h započinje programski odsječak za pojednostavljeni


model 8-bitnog mikroprocesora:
• LDA A Mem; napuni akumulator A sadržajem memorijske lokacije s
adresom Mem
• Sadržaj dijela memorije počevši od adrese 0100h je: 96 02 07 … ,
gdje se prva tri bajta odnose na instrukciju LDA. Nadalje, sadržaj dijela
memorije počevši od adrese 0206 je: 22 23 …
• a) Skicirajte sadržaj memorije u okolini instrukcije i operanda neposredno
prije i poslije izvođenja ove instrukcije, označivši točno dijelove formata
instrukcije i operande koji se rabe.
• b) Odredite sadržaj svih registara pojednostavljenog modela (PC, DC, A,
IR, PR) u svakom taktu izvođenja instrukcije. Rezultate prikažite tablično.
Potrebno je upisivati čim potpuniju informaciju koja je zadana. Potrebno
je upisivati čim potpuniju informaciju koja je zadana. Vrijednosti koje
nisu zadane ili se ne mogu odrediti, označite s odgovarajućim brojem X-
eva, gdje X označava proizvoljnu heksadekadsku znamenku.
• c) Nacrtajte vremenski dijagram stanja na vanjskim sabirnicama modela
za faze PRIBAVI i IZVRŠI prilikom izvođenja navedene instrukcije. Na
dijagramu obvezatno navoditi konkretne zadane vrijednosti u
heksadekadskom obliku.
Pregled memorije prije i poslije

0100 96
0101 02
0102 07

0207 23
Stanje u registrima

Takt PC IR DC A PR
0100 Početn
o stanje
1 0101 96 Pribavi
2 0102 96 02__ Pribavi
3 0103 96 0207 Pribavi
4 0103 96 0207 23 Izvrši
Stanje na vanjskim sabirnicama

#1 #2 #3 #4
ф

A0- 0100 0101 0102 0207


A15
R

D0-D7 96 02 07 23
Primjer 2.
• Programsko brojilo pojednostavljenog modela 8-bitnog
mikroprocesora sadrži adresu 08EFh strojne instrukcije: STA
$0ABC; (pohrani sadržaj akumulatora A na memorijsku lokaciju s
adresom 0ABCh), a početni sadržaj akumulatora A je 99h .
Instrukcija u strojnom obliku ima prikaz 980ABCh .
• a) Skicirajte sadržaj memorije u okolini instrukcije i operanda
neposredno prije i poslije izvođenja ove instrukcije, označivši
točno dijelove formata instrukcije i operande koji se rabe.
• b) Odredite sadržaj svih registara pojednostavljenog modela (PC,
DC, A, IR, PR) u svakom taktu izvođenja instrukcije. Rezultate
prikažite tablično. Potrebno je upisivati čim potpuniju informaciju
koja je zadana. Potrebno je upisivati čim potpuniju informaciju
koja je zadana. Vrijednosti koje nisu zadane ili se ne mogu
odrediti, označite s odgovarajućim brojem X-eva, gdje X označava
proizvoljnu heksadekadsku znamenku.
• c) Nacrtajte vremenski dijagram stanja na vanjskim sabirnicama
modela za faze PRIBAVI i IZVRŠI prilikom izvođenja navedene
instrukcije. Na dijagramu obvezatno navoditi konkretne zadane
vrijednosti u heksadekadskom obliku.
Pregled memorije prije

08EF 98
08F0 0A
08F1 BC

0ABC
Pregled registara

Takt PC IR DC A PR
08EF 99 Početno
stanje
1 08F0 98 99 Pribavi
2 08F1 98 0A__ 99 Pribavi
3 08F2 98 0ABC 99 Pribavi
4 08F2 98 0ABC 99 Izvrši
Stanje na vanjskim sabirnicama

#1 #2 #3 #4
ф

A0- 08EF 08F0 08F1 0ABC


A15
R

D0-D7 98 0A BC 99
Pregled memorije poslije

08EF 98
08F0 0A
08F1 BC

0ABC 99
Primjer 3
• Na adresi 009Fh započinje programski odsječak za pojednostavljeni
model 8-bitnog mikroprocesora:
• DEC A ; dekrementiraj sadržaj akumulatora A
• STA A Mem ; spremi sadržaj akumulatora A na memorijsku
lokaciju s adresom Mem
Početni sadržaj akumulatora je 00h.Sadržaj dijela memorije počevši od
adrese 009Fh je: 48 98 00 62 … , gdje se prvi bajt odnosi na prvu
instrukciju, a slijedeća tri bajta se odnose na drugu instrukciju. Nadalje,
sadržaj dijela memorije počevši od adrese 005E je:
2A AC 3B 21 00 01 … .
a) Skicirajte sadržaj memorije u okolini instrukcije i operanda neposredno
prije i poslije izvođenja ovih instrukcije, označivši točno dijelove formata
instrukcije i operande koji se rabe.
• b) Odredite sadržaj svih registara pojednostavljenog modela (PC, DC, A,
IR, PR) u svakom taktu izvođenja instrukcija. Rezultate prikažite tablično.
Potrebno je upisivati čim potpuniju informaciju koja je zadana. Potrebno
je upisivati čim potpuniju informaciju koja je zadana. Vrijednosti koje
nisu zadane ili se ne mogu odrediti, označite s odgovarajućim brojem X-
eva, gdje X označava proizvoljnu heksadekadsku znamenku.
• c) Nacrtajte vremenski dijagram stanja na vanjskim sabirnicama modela
za faze PRIBAVI i IZVRŠI prilikom izvođenja navedene instrukcije. Na
dijagramu obvezatno navoditi konkretne zadane vrijednosti u
heksadekadskom obliku.
Pregled memorije prije

009F 48
00A0 98
00A1 00
00A2 62

005E 2A
005F AC
0060 3B
0061 21
0062 00
0063 01
Pregled stanja u registrima

Takt PC IR DC A PR
009F 00 Početno
stanje
1 00A0 48 00 Pribavi
2 00A0 48 FF Izvrši
3 00A1 98 FF Pribavi
4 00A2 98 00__ FF Pribavi
5 00A3 98 0062 FF Pribavi
6 00A3 98 0062 FF Izvrši
Stanje na vanjskim sabirnicama

#1 #2 #3 #4 #5 #6
ф

A0- 009F ** 00A0 00A1 00A2 0062


A15
R

D0-D7 48 ** 98 00 62 FF
Pregled memorije poslije

009F 48
00A0 98
00A1 00
00A2 62

005E 1A
005F AC
0060 3B
0061 21
0062 FF
0063 01
Zadatak za vježbu
• Na adresi 0098h započinje programski odsječak za pojednostavljeni
model 8-bitnog mikroprocesora:
• LDA A Mem; napuni akumulator A sadržajem memorijske lokacije s
adresom Mem
DEC A ; dekrementiraj sadržaj akumulatora A
• Sadržaj dijela memorije počevši od adrese 0098h je: B6 00 81 48 … ,
gdje se prva tri bajta odnose na prvu instrukciju, a četvrti na drugu.
Nadalje, sadržaj dijela memorije počevši od adrese 007F je:
2A AC 3B 21 00 01 3C … .
a) Skicirajte sadržaj memorije u okolini instrukcije i operanda neposredno
prije i poslije izvođenja ove dvije instrukcije, označivši točno dijelove
formata instrukcije i operande koji se rabe. b) Također, odredite sadržaj
svih registara pojednostavljenog modela (PC, DC, A, IR, PR) prije i nakon
izvođenja instrukcije. Rezultate prikažite tablično. Potrebno je upisivati
čim potpuniju informaciju koja je zadana. Potrebno je upisivati čim
potpuniju informaciju koja je zadana. Vrijednosti koje nisu zadane ili se
ne mogu odrediti, označite s odgovarajućim brojem X-eva, gdje X
označava proizvoljnu heksadekadsku znamenku. c) Nacrtajte vremenski
dijagram stanja na vanjskim sabirnicama modela za faze PRIBAVI i
IZVRŠI prilikom izvođenja navedene instrukcije. Na dijagramu obvezatno
navoditi konkretne zadane vrijednosti u heksadekadskom obliku.
Primjer 3.a

• Nacrtati stanje na sabirnicama za pojednostavnjeni model 8-bitnog procesora i to


za dva prolaska kroz beskonačnu petlju koja ima slijedeći oblik:
• OPET JMP OPET
• pri čemu je OPET adresa 0100, a operacijski kod instrukcije JMP je 7E. Instrukcija
JMP se sastoji od tri bajta. Instrukcija JMP se koristi za bezuvjetni skok.
• a) Skicirajte sadržaj memorije u okolini instrukcije i operanda prije i nakon
izvođenja instrukcije.
• b) Također, odredite sadržaj svih registara pojednostavljenog modela (PC, DC, A,
IR, PR) u svakom taktu izvođenja instrukcije. Rezultate prikažite tablično. Potrebno
je upisivati čim potpuniju informaciju koja je zadana. Potrebno je upisivati čim
potpuniju informaciju koja je zadana. Vrijednosti koje nisu zadane ili se ne mogu
odrediti, označite s odgovarajućim brojem X-eva, gdje X označava proizvoljnu
heksadekadsku znamenku.
• c) Nacrtajte vremenski dijagram stanja na vanjskim sabirnicama modela za faze
PRIBAVI i IZVRŠI prilikom izvođenja navedene instrukcije. Na dijagramu obvezatno
navoditi konkretne zadane vrijednosti u heksadekadskom obliku.
Pregled memorije prije i poslije

0100 7E
0101 01
0102 00
Pregled registara

Takt PC IR DC A PR
0100 Početno
stanje
1 0101 7E Pribavi
2 0102 7E 01__ Pribavi
3 0103 7E 0100 Pribavi
4 0100 7E 0100 Izvrši
5 0101 7E 0100 Pribavi
6 0102 7E 0100 Pribavi
7 0103 7E 0100 Pribavi
8 0100 7E 0100 Izvrši
Stanje na vanjskim sabirnicama

#1 #2 #3 #4 #5 #6 #7 #8
ф

A0- 0100 0101 0102 ** 0100 0101 0102 **


A15
R

D0-D7 7E 01 00 ** 7E 01 00 **
Primjer 4.

• Zbrojiti dva broja i rezultat komplementirati. Rezultat ostaje u


akumulatoru. Mnemonički oblik strojnog koda:
 LDA A $0201 (B60201h) – učitaj u akumulator vrijednost s
memorijske lokacije 0201h (puno adresiranje)
 ADD A $FF (9B0Fh) – dodaj sadržaju akumulatora vrijednost s
memorijske lokacije 000Fh (skraćeno adresiranje)
 COM A (43h) – komplementiraj sadržaj akumulatora – jedinični
komplement (implicitno adresiranje akumulatora)
• U zagradi se nalazi heksadecimalni zapis instrukcije. Instrukcija
=operacijski kod+adresa (ako adresa postoji).
• Prva instrukcija nalazi se na adresi 0100h. Na adresi 000Fh nalazi
se 1Ah. Na adresi 0201h nalazi se 23h.
Pregled memorije prije i poslije

0100 B6
0101 02
0102 01
0103 9B
0104 0F
0105 43
0106 Sljedeći op

00FF 1A

0201 23
Pregled stanja u registrima

Takt PC IR DC A PR
0100 Početn
o stanje
1 0101 B6 Pribavi
2 0102 B6 02__ Pribavi
3 0103 B6 0201 Pribavi
4 0103 B6 0201 23 Izvrši
5 0104 9B 0201 23 Pribavi
6 0105 9B 000F 23 Pribavi
7 0105 9B 000F 23 1A Izvrši
8 0105 9B 000F 3D Izvrši
9 0106 43 000F 3D Pribavi
10 0106 43 000F C2 Izvrši
28
Stanje na vanjskim sabirnicama

#1 #2 #3 #4
ф

A0- 0100 0101 0102 0201


A15
R

D0-D7 B6 02 01 23
Stanje na vanjskim sabirnicama

#5 #6 #7 #8 #9 #10
ф

A0- 0103 0104 000F ** 0105 **


A15
R

D0-D7 9B FF 1A ** 43 **
Primjer 5.
• Na adresi 0100h započinje programski odsječak za pojednostavljeni
model 8-bitnog mikroprocesora:
• LDA A Mem; napuni akumulator A sadržajem memorijske lokacije s
adresom Mem
• Sadržaj dijela memorije počevši od adrese 0100h je: 96 02 07 … ,
gdje se prva tri bajta odnose na instrukciju LDA. Nadalje, sadržaj dijela
memorije počevši od adrese 0206 je: 22 23 …i od 9606: 35 34
• Uz pretpostavku da je došlo do greške na adresnoj sabirnici i da je
najmanje značajni bit (A0) trajno postavljen u 0.

a) Skicirajte sadržaj memorije u okolini instrukcije i operanda neposredno
prije i poslije izvođenja ove instrukcije, označivši točno dijelove formata
instrukcije i operande koji se rabe.
• b) Odredite sadržaj svih registara pojednostavljenog modela (PC, DC, A,
IR, PR) u svakom taktu izvođenja instrukcije. Rezultate prikažite tablično.
Potrebno je upisivati čim potpuniju informaciju koja je zadana. Potrebno
je upisivati čim potpuniju informaciju koja je zadana. Vrijednosti koje
nisu zadane ili se ne mogu odrediti, označite s odgovarajućim brojem X-
eva, gdje X označava proizvoljnu heksadekadsku znamenku.
• c) Nacrtajte vremenski dijagram stanja na vanjskim sabirnicama modela
za faze PRIBAVI i IZVRŠI prilikom izvođenja navedene instrukcije. Na
dijagramu obvezatno navoditi konkretne zadane vrijednosti u
heksadekadskom obliku.
Pregled memorije prije i poslije

0100 96
0101 02
0102 07

0207 23

9606 35
9607 34
Pregled stanja u registrima

Takt PC IR DC A PR
0100 Početno
stanje
1 0101 96 Pribavi
2 0102 96 96__ Pribavi
3 0103 96 9607 Pribavi
4 0103 96 9607 35 Izvrši
Stanje na vanjskim sabirnicama

#1 #2 #3 #4
ф

A0- 0100 0100 0102 9606


A15
R

D0-D7 96 96 07 35
Zadatak za studente

• Programski odsječak od tri instrukcije započinje na adresi 00FE:


 JMP $0103 (7E0103h) – bezuvjetni skok na adresu 0103h
 ADD A $34 (9B34h) – dodaj sadržaju akumulatora vrijednost s
memorijske lokacije 0034h (skraćeno adresiranje)
 COM A (43h) – komplementiraj sadržaj akumulatora – jedinični
komplement (implicitno adresiranje akumulatora)

• U zagradi se nalazi heksadecimalni zapis instrukcije. Instrukcija


=operacijski kod+adresa (ako adresa postoji).
• Početni sadržaj akumulatora A je A8h. Na adresi 0034h nalazi se
99h.
Primjer 6.

• Potrebno je izvršiti množenje operanada duljine 1B na adresi


X=AAh s konstantom 2.5(10) upotrebom isključivo operacija
zbrajanja i aritmetičkog posmaka.
• Neka vrijede slijedeći mnemonici za instrukcije posmaka:
 ASL (Aritmetic Shift Left) = 45(16)
 ASR (Aritmetic Shift Right) = 44(16)
• Rješenje: 2.5(10)*M(AAh)=M(AAh)*21+M(AAh)*2-1
=ASL(M(AAh))+ASR(M(AAh))
Ideja rješenja

1. Učitamo vrijednost iz memorije i stavimo je u akumulator


2. Privremeno spremimo vrijednost na lokaciju temp1
3. Vrijednost u akumulatoru posmičemo ulijevo (množenje sa 2)
4. Spremamo vrijednost iz akumulatora na lokaciju temp2
(vrijednost koja je pomnožena sa 2)
5. Učitavamo u akumulator vrijednost sa lokacije temp1
(originalna vrijednost)
6. Vrijednost u akumulatoru posmičemo udesno(dijeljenje sa 2)
7. Dodajemo vrijednosti koja se nalazi u akumulatoru (vrijednost
podijeljena sa 2) vrijednost koja se nalazi na memorijskoj
lokaciji temp2 (vrijednost koja je pomnožena sa 2)
0005 96 LDA A $AA
0006 AA
0007 97 STA A TEMP1
0008 CC
0009 45 ASL
000A 97 STA A TEMP2
000B DD
000C 96 LDA A $TEMP1
000D CC
000E 44 ASR
000F 9B ADD TEMP2
0010 DD

00AA 02

00CC

00DD
Takt PC IR DC A PR
0005 Početno stanje
1 0006 96 Pribavi
2 0007 96 00AA Pribavi
3 0007 96 00AA 02 Izvrši
4 0008 97 00AA 02 Pribavi
5 0009 97 00CC 02 Pribavi
6 0009 97 00CC 02 Izvrši
7 000A 45 00CC 02 Pribavi
8 000A 45 00CC 04 Izvrši

9 000B 97 00CC 04 Pribavi


10 000C 97 00DD 04 Pribavi
11 000C 97 00DD 04 Izvrši
12 000D 96 00DD 04 Pribavi
13 000E 96 00CC 04 Pribavi
14 000E 96 00CC 02 Izvrši
15 000F 44 00CC 02 Pribavi
16 000F 44 00CC 01 Izvrši
17 0010 9B 00CC 01 Pribavi
18 0011 9B 00DD 01 Pribavi
19 0011 9B 00DD 05 04 Izvrši

You might also like