You are on page 1of 70

UICT - Uvod u informacijsku tehnologiju

P01 - Principi funkcioniranja digitalnog računala


prema von Neumann-ovoj arhitekturi

Mr.sc. Damir Vuk, v. pred.


damir.vuk@vsmti.hr

Verzija: 1.0/2019

UICT 1
UICT

Arhitektura digitalnog računala


• Arhitektura DR daje odgovore na pitanja:
• Od kojih dijelova/jedinica se sastoji digitalno računalo?
• Što je funkcija svake od njih
• Kako su te jedinice povezane - u kakvom su odnosu?
• Gdje se nalaze podaci?
• Gdje se nalaze programi?
• Kako se podaci reprezentiraju?
• Kako se programi reprezentiraju
• Kako se podaci procesiraju?
• Kako se priključuju vanjski uređaji?
2
Verzi
ja:
2.1
Ciljevi i područja arhitekture digitalnog računala

• Ciljevi dobre arhitekture računala (prema E.C.Joseph):


• Propusnost – throughput
• Prilagodljivost – flexibility
• Pouzdanost – reliability
• Raspoloživost – availability
• Povoljna cijena
• Tri područja arhitekture računala:
• Sklopovlje – hardware
• Programi – software
• Interakcija čovjeka i kompjutora – User-computer interaction

3 © D.Vuk 2003,2005.
Von Neumannova arhitektura računala
• Predstavlja prvi široko prihvaćen i cjelovit model DR
• John Von Neumann (čitaj: “džon fon nojman”) 1903-1957

• Prvi puta se spominje u radu:


• John von Neumann: (1945) "First Draft of a Report on the EDVAC".

• VNAR se još naziva "koncept memoriranog programa"


(“stored program concept”)

• 3 izvorne (prvobitne) karakteristike koncepta izvorne VNAR su bile:


• binarni brojevni sustav
• operandi duljine 40 bita
• strojni jezik

4 © D.Vuk 2010
Shema Von Neumanove arhitekture računala

UPRAVLJAČKA J.

ULAZ MEMORIJA IZLAZ

A-L Jedinica

Tok podataka
i instrukcija
Tok upravljačkih signala

5
Von Neumannov-a AR : pregled osnovnih osobina

Von Neumann je postavio slijedeće principe za arhitekturu DR:

1. Opća namjena i potpuno automatsko izvođenje programa

2. Računalo mora pohranjivati program, podatke i među-rezultate

3. Instrukcije su svedene na numerički kod

4. Nema razlike u pohranjivanju instrukcija u odnosu na pohranjivanje podataka

5. Aritmetička jedinica služi za izvršavanje aritmetičkih operacija

6. Upravljačka jedinica je jedinica koja razumije instrukcije

7. Komunikacija s vanjskim svijetom se odvija preko U/I jedinice

6 © D.Vuk 2010
Dvije ključne ideje VN AR
• Koncept memoriranog programa
• Instrukcije su zajedno s podacima spremljene u memoriji
• Instrukcije su zapisane u obliku binarnih brojeva
- ovaj koncept u potpunosti vrijedi danas
• Instrukcije se izvode sekvencijalno
• Instrukcije se izvode jedna za drugom: jedna po jedna
- ovaj koncept kao opći princip vrijedi i danas,
- Ipak, danas kod suvremenih procesora postoji cijeli niz paralelnosti u izvršavanju , a osobito u
predviđanju koja će biti slijedeća instrukcija kako bi se izvršila barem djelomična priprema za njeno
izvođenje
- Kod višejezgrenih procesora također je prisutan taj princip

Instrukcije i podaci u Rezultati su također u


binarnom obliku: binarnom obliku:

0101000110110001011 Procesor
0010001101100010011

7 © D.Vuk 2010
Značajke VNAR koje još i danas vrijede
• Linearno adresibilna memorija sa dimenzijom rednog broja bajtova odnosno riječi kao adrese
• 0 – označava prvu adresu
• n-1 – označava posljednju adresu
• Jedinstvena memorija za spremanje kako podataka, tako i programa
• Podaci i programi se spremaju u istu memoriju te dobivaju početnu relativnu adresu 0
• Relativna adresa je fizička adresa umanjena za Offset (udaljenost od početne fizičke adrese)
• U rijetkim izvedbama procesora postoji razdvajanje memorije na dva dijela: podatkovna i programska
• Ne postoji eksplicitno razlikovanje između podataka i instrukcija
• razlikovanje je moguće jedino implicitno preko operacija koje se nad njima izvršavaju
• stroj tretira sadržaj memorije isto bez obzira na podatke i instrukcije
• Značenje (semantika) nije sastavni dio podataka
• za bilo koju kombinaciju bajtova nije moguće samo na temelju njenog sadržaja zaključiti što predstavlja (znači)
• značenje podataka je sadržano u logici programa
• Računalo obrađuje i podatke i informacije:
• pomoću logike sadržane u hardveru obrađuje podatke (reprezentirane putem binarnih brojeva)
• Pomoću logike softvera obrađuje informacije (podaci koji sadrže semantiku - značenje)

8 © D.Vuk 2019
Von Neumanova arhitektura računala

Od početnog cilja da se pomoću digitalnog računala rješavaju složene


kalkulacije diferencijalnih jednadžbi, računalo se do danas pretvorilo u:

“ Snažan komunikacijski alat za obradu i posredovanje


informacija i znanja”

Sve to, računalo konstruirano prema VNAR, postiže isključivo operacijama


nad binarnim brojevima!

9 © D.Vuk 2019
Osnovni dijelovi digitalnog računala prema VNAR
1. Aritmetičko logička jedinica (ALU)
2. Upravljačka jedinica (Control Unit)
3. Memorijska jedinica (memory Unit)
4. Sabirnica (Bus)
5. Ulazno izlazna jedinica (Input/Otput Unit)
6. Periferni uređaji (Peripheral Devices)

• Procesor je zajednički naziv za upravljačku i aritmetičko logičku jedinicu -


često se naziva CPU (Central Processing Unit)

10 © D.Vuk 2010
Grafički prikaz modela von Neumannove AR

Spremanje programa i
Komunikacija računala sa
podataka
vanjskim svijetom:
Izvođenje programa Tipkovnica, miš, vanjske
memorije, ekran, pisač, …
Izvođenje aritmetičko logičkih operacija zahtijevanih
od strane programa

Periferne jedinice
- Obuhvaća sve vanjske uređaje koji se preko U/I jedinice odnosno sabirnice, priključuju na računalo
- To nije drugo ime za ulazno izlaznu jedinicu

11 © D.Vuk 2010
ALU - aritmetičko-logička jedinica:
• Što ALU radi?
• naziv govori: Arithmetic and Logic Unit
• aritmetičko = izvršava aritmetičke operacije (računa)
• logička = izvršava logičke operacije
• - izvršava bit-operacije

• ALU radi/izvodi operacije samo sa cijelim brojevima
• Floating Point operacije (ne mogu se izvoditi neposredno u ALU):
• to su operacije nad decimalnim brojevima: (npr. 3,234 ili 0,05 …)
• izvodi poseban FP procesor
• ALU može izvoditi FPO programski ih emulirajući kao kao cjelobrojne operacije, ali takvo
izvođenje je prilično sporo
• Svi ostali dijelovi računala služe radu ALU

12 © D.Vuk 2010
Sastav ALU :

• Sastoji se od:
• ALU u užem smislu
• Sklopovi koji izvršavaju aritmetičke i logičke operacije
• Registri – koje ALU neposredno koristi
• Registri opće namjene
• Akumulator(i)
• Statusni registar
• Sklopovlje koje ih povezuje

13 © D.Vuk 2010
ALU simbol i shema:
----INPUTI------->

ALU
UPRAVLJAČKI SIGNALI NA STATUSNE OZNAKE
TEMELJU KOJIH SE (ZASTAVICE)
ODABIRE FUNKCIJA, NPR.
ADD, SUB, ..

REZULTAT
14 © D.Vuk 2010
Registri:
• Registri su brze memorije s direktnim pristupom
• Njihova brzina odgovara brzini rada UJ i ALU sklopovlja
• Registri sadrže privremene rezultate rada ALU
• Sadržaj registara su nizovi binarnih vrijednosti (0,1)
• Izgrađeni su kao nizovi bistabila
• Svaki bit - po jedan bistabil
• Bitova u jednom registru (2x): 8, 16, 32, 64,128… bita !
• CPU najčešće sadrži od 32 na više registara
• Nisu svi registri jednake veličine
• Postoje specijalni registri i registri opće namjene
• Neke instrukcije zahtijevaju za operande točno određene registre, u kojima mogu biti ili samo
podaci ili samo adrese

15 © D.Vuk 2010
8- bitni registar

• Byte se sastoji u pravilu, od 8 bitova:


• Prvi bit se označava kao bit 0, a zadnji kao bit 7
• Kod nekih procesora se označavanje započinje s desne, a kod nekih sa lijeve
strane
Bajt=8 bita
2. nibble 1. nibble

7 6 5 4 3 2 1 0 bitovi od 0 do 7
0 0 0 0 0 0 0 0 = 0 decimalno
1 1 1 1 1 1 1 1 = 255 decimalno

• U 8 bitova moguće je upisati 256 kombinacija binarnih brojeva (od 0 do


255), što odgovara izrazu: 28=256
• Zapisi koji zahtijevaju veći broj bitova sastoje se od više bajtova: 8, 16, 32,
64,128 bita
• Polubajt ili nibble sadržava po 4 bita
© D.Vuk 2010 16
Upravljačka jedinica:
• UJ => CU - Control Unit
• Jedan je od glavnih dijelova u vNAR
• Često zauzima najveći dio CPU (čak i preko 80%)

• Upravlja cijelim tokom rada mikroprocesora:


• Generira upravljačke signale
• Sinkronizira saobraćaj među modulima
• Sinkronizira prijenos podataka preko:
• Upravljačke sabirnice
• Sabirnice podataka
• Adresne sabirnice

17 © D.Vuk 2010
Što je glavna zadaća upravljačke jedinice?
• Izvršavanje instrukcija u širem smislu, a obuhvaća:
• Pribavljanje instrukcije
• Dekodiranje instrukcije (opkod)
• Aktiviranje izvršenja instrukcije

18 © D.Vuk 2010
Instrukcija i instrukcijski skup?
• Instrukcija:
To je jedna od operacija iz skupa mogućih instrukcija/operacija koju je procesor u stanju izvršiti
Instrukcija se sastoji od :
- Instrukcijskog koda tj., od binarne oznake/šifre instrukcije , koja se naziva operacijski kod (opkod)
- Operanada :
- Operandi su vrijednosti ili adrese gdje se vrijednosti nalaze, nad kojima se izvodi operacija koju instrukcija
izvodi
- Operandi mogu biti podaci-konstante ili/i adrese
- neke instrukcije nemaju operande, a neke ih imaju

Primjeri strojnih instrukcija (pisanih simbolički):


STOP - nema operande, zaustavlja rad programa
ADD r1,r2 - ima 2 operanda: r1 i r2; zbraja/dodaje vrijednost iz registra r2 vrijednosti r1 a rezultat
sprema u registar r1
INC r15 - ima 1 operand: r15; vrijednost u registru r15 povećava za jedan

Napomena: ovdje su instrukcije napisane simbolički radi razumijevanja primjera, dok su strojne instrukcije stvarno izražene kao binarni
zapis

19 © D.Vuk 2010
Instrukcija i instrukcijski skup?

• Instrukcijski skup:
• To je skup svih strojnih instrukcija koje procesor sadrži, odnosno koje može izvesti
• Zavisi od pojedinog tipa procesora
• IS predstavlja arhitekturu procesora
• Instrukcije su ugrađene kao digitalni elektronički sklopovi u UJ

20 © D.Vuk 2010
Glavni dijelovi upravljačke jedinice:
• Program Counter – programsko brojilo: Sadrži adresu iduće instrukcije koja će se izvršavati, nakon završetka tekuće
dohvaćene instrukcije
• Instruction Register – instrukcijski registar: Sadrži instrukciju dohvaćenu iz memorije, koja će se izvršiti (opkod i
operande)
• Instrukcijski dekoder: Na temelju op. koda dekodira dohvaćenu instrukciju tj., aktivira potrebne sklopove za njeno
izvršavanje

21 © D.Vuk 2010
Sabirnice - fundamentalna pitanja:
Sabirnica treba riješiti
tipične probleme:

Kako povezati Kako uskladiti


različite komponente različite brzine komponenata
računala? računala?

Kako osigurati tipizirano sučelje/povezivanje


za cijeli niz komponenata/uređaja ?

22 © D.Vuk 2010
Definicija sabirnice:
• Sabirnica (Bus) je:
• Djeljiva komunikacijska veza (shared link)
• Jedinstven sklop ožičenja koji se koristi za povezivanje dvije ili više jedinica
(komponenti) računala

23 © D.Vuk 2010
Definicija sabirnice:
Sabirnica sadrži 4 segmenta:
1. Adresna sabirnica
• Određuje izvor ili odredište podataka – adresu
• Širina adresne sabirnice definira kapacitet memorije koju je moguće adresirati (adresnog prostora):
• 8 bita – 256 Bajtova
• 16 bita – 64 KB
• 32 bita – 4 GB
• …
2. Podatkovna sabirnica
• Prenosi podatke
• Nema razlike na toj razini između “podataka” i “instrukcija” – i jedno i drugo su podaci
• Širina podatkovne sabirnice
• može biti : 8,16, 32, 64 bita,…
• to je ključni faktor performansi
• ..
3. Upravljačka sabirnica
• Provodi upravljačke i tajming signale
4. Ostale veze/signali (napon, clock, masa,…)

24 © D.Vuk 2010
Višestruke sabirnice:
• Računalo obično posjeduje više sabirnica:
• hijerarhijski organiziranih
• Međusobno povezanih sučeljima/mostovima (interface/bridge)
• Brže sabirnice su bliže procesoru
• Priključak za brze jedinice većeg kapaciteta
• Sporije sabirnice su udaljenije od procesora
• Priključak za sporije jedinice manjeg kapaciteta

25 © D.Vuk 2010
Sabirnice mikroračunala (PC):
• Interna (unutrašnja) sabirnica
• Povezuje jedinice unutar mikroprocesora

• Eksterna (vanjska) sabirnica


• Povezuje jedinice izvan mikroprocesora
• Spaja se na unutrašnju

26 © D.Vuk 2010
Sabirnice mikroračunala:
• Neke od sabirnica osobnih računala
• Paralelne:
• PCI Express (PCIe) – to je glavna
sabirnica suvremenih osobnih računala
• izvedbe: x1 , x2, x4, x16 – lane (put)
•PCI Express ×4
• PCI-X -64 bita - namijenjene za servere •PCI Express ×16
• Stariji tipovi: •PCI Express ×1
• PCI –stari tip (32 bita, 5V) •PCI Express ×16
• AGP - Accelerated Graphics Port - za grafiku •Conventional PCI (32-bit, 5 V)
• Serijske:
• USB - Universal Serial Bus - priključak za do 127 uređaja
• FireWire (IEEE 1394) - priključak za do 63 uređaja
• Stariji modeli (uglavnom nisu u upotrebi):
• ISA
• VESA
• Microchanal

27 © D.Vuk 2010
PCIe – propusnost (troughput) prema verzijama i broju puteva (x lane)

https://en.wikipedia.org/wiki/PCI_Express

28 © D.Vuk 2012
29 © D.Vuk 2012
PCI sabirnica:

30 © D.Vuk 2010
Primjer hijerarhije sabirnica: Pentium procesor

Processor/Memory
Bus

PCI Bus

I/O Busses

31 © D.Vuk 2010
Ulazno-izlazna jedinica (I/O)

32 © D.Vuk 2012
Ulazno-izlazna jedinica (I/O)
• Pomoću U/I J računalo komunicira sa perifernim uređajima:
• Eksterne memorije
• Ispis
• Unos podataka i naredbi
• Multimedija
• ….
• Problem ulaza/izlaza:
• UI uređaji su mnogo puta sporiji od CPU
• Postoji mnoštvo specifičnosti koje karakteriziraju pojedine uređaje

33 © D.Vuk 2010
I/O moduli:
U/I -> Ulaz/Izlaz (engl.: I/O - Input/Output)
• U/I moduli su sklopovi U/I jedinice
• Problemi periferije:
• različitost periferije:
• prijenos različitih količina podataka
• različite brzine
• različiti formati
• sporost
• sve I/O jedinice su sporije od CPU i RAM-a
• Potrebni su I/O moduli (U/I moduli)
• nalaze se između pojedinih tipova perifernih jedinica i CPU i RAM-a
• ublažavaju negativan efekt različitosti i sporosti
• rasterećuju CPU i RAM

34 © D.Vuk 2010
Blok-dijagram U/I modula
Sistemska
sabirnica:
Adr/Podat/Uprav.

Veze prema
perifernim
uređajima

35 © D.Vuk 2010
Funkcije U/I modula:
• upravljanje i tajming
• komunikacija sa CPU
• komunikacija sa jedinicom
• baferiranje podataka
(privremeno spremanje podataka u lokalnu memoriju-buffer)
• otkrivanje grešaka

36 © D.Vuk 2010
Vrste U/I modula:
• U/I kanali ili U/I procesori
• Kompleksnije su izvedbe
• omogućuju obradu do najsitnijih detalja, bez učešća procesora
• omogućuju visoku razinu sučelja prema procesoru

• U/I kontroleri ili kontroleri jedinica


• jednostavnije su izvedbe, jeftiniji
• traže mnogo procesorskog vremena

37 © D.Vuk 2010
MEMORIJA

38 © D.Vuk 2010
Definicija memorije:
• Memorija je kolekcija ćelija
• koje mogu sadržavati binarne podatke
• sa pridruženim sklopovljem za input i output, odnosno
• sa mogućnošću čitanja i pisanja sadržaja ćelija

• Memorija se logički tretira kao:


kontinuiran linearni prostor sa početnom adresom 00 do m, pri čemu je m
adresa čija se vrijednost izračunava:
m=ukupan_broj_memorijskih_ćelija - 1

39 © D.Vuk 2010
Generalna podjela memorija:
• Memorije računala se generalno dijele na:
• Memorija u procesoru
• Registri
• Privremena (Cache) memorija
• Interna ili glavna memorija
• RAM
• Eksterni cache
• Eksterna ili sekundarna memorija
• Čvrsti (Hard) diskovi,
• magnetne trake,
• CD/DVD,…

40 © D.Vuk 2010
Položaj memorije u arhitekturi računala:

41 © D.Vuk 2010
Shema i funkcioniranje memorijskog podsustava:
•MAR - Memory Address Register –memorijski adresni
registar:
•Sadrži adresu ćelije koju treba pročitati ili na koju treba upisati sadržaj
iz/u MDR

•MDR – Memory Data Register – memorijski podatkovni


registar:
•Sadrži podatak koji treba upisati ili podatak koji je pročitan/dohvaćen
sa/na adrese u MAR

•Memory decoder circuit - memorijski sklop za dekodiranje


•sklop za pronalaženje adrese

•Upravljački sklop za dohvat/spremanje (fetch/store)


•Fetch/Store signal: Signal/registar koji određuje da li će F/S kontroler:
• dohvaćati/pročitati sadržaj iz ćelije na adresi u MAR,
• ili će spremati/upisati sadržaj iz MDR na adresu na koju pokazuje Memorijske ćelije
sadržaj MAR

•Memorijske ćelije (RAM)

42 © D.Vuk 2010
Organizacija memorije: LE/BE
• Poredak bajtova u riječi nije jednak kod svih procesora
postoje dvije varijante:

a) Big endian - raste s lijeva u desno

b) Little endian - raste s desna u lijevo

Primjer:
• IBM i SPARC procesori: Big endian
• INTEL procesori: Little endian

43 © D.Vuk 2010
Memorijske performanse: Vrijeme pristupa i memorijski ciklus

• Vrijeme pristupa ili Access Time


• Vremenski interval od trenutka kad memorijska jedinica primi adresu do
trenutka kad preda rezultat
• Memorijski ciklus
• Cijeli ciklus dohvaćanja memorijskog sadržaja sa memorijske adrese
• Memorijski ciklus može biti duži od memorijskog pristupa (npr. kod DRAM-a je
nakon čitanja potrebno ponovno upisivanje pročitanog sadržaja)

44 © D.Vuk 2010
Vrste memorija:
• Prema trajnosti memorijskog zapisa:
• Neizbrisive/stabilne (engl.: non-volatile)
• Sadržaj (zapis) ostaje trajno pohranjen i nakon prekida napajanja

• Izbrisive/nestabilne (engl.: volatile)


• Sadržaj se gubi ubrzo nakon nestanka napajanja
• Takve su RAM (Random Access Memory) - memorije s direktnim (slučajnim)
pristupom

45 © D.Vuk 2010
UICT

VNAR: strojni kod, procesiranje programa, asembler

46
47 Reprezentacija programske logike :

• Na strojnoj razini svi prikazi su isti:


• binarne vrijednosti (0,1)
• isti skup operacija (instrukcijski skup)

• Kako prikazati programsku logiku?


• Računalo „razumije samo strojni kod”
• Strojni jezik omogućuje stvaranje strojnog koda (programa)
• Zapisan je u binarnoj odnosno heksadecimalnoj notaciji - teško je razumljiv programeru
• U strojnom jeziku se ne programira
• Neposredno se izvodi na procesoru

© D.Vuk 2018.
48 Reprezentacija programske logike :

• Zašto dva jezika?


• Strojni jezik je teško razumljiv čovjeku: sastoji se samo od binarnih
vrijednosti
• Asembler je razumljiviji čovjeku-programeru: sastoji se od
simboličkih naredbi
• jednoznačnost naredbi:
• asemblerski jezik : strojni binarni jezik = 1:1
• Jednoj asemblerskoj naredbi/instrukciji odgovara jedna strojna instrukcija

© D.Vuk 2018.
49 Asembler (Assembler):

• Karakteristike asemblerskog jezika:


• simbolički programski jezik koji je specifičan za svaku strojnu arhitekturu
• omogućuje neposredan dostup do hardverskih elemenata
• mora biti preveden u strojni jezik kako bi se izvodio
• svaka asemblerska instrukcija odgovara jednoj strojnoj instrukciji
• Asemblerski program je strojni program napisan simbolima lakše razumljivim
čovjeku - programeru
• Asemblersko programiranje predstavlja najnižu razinu programiranja (razinu
koja je bliska stroju)
• Strojni kod
• rezultat je prevođenja (asembliranja) asemblerskog koda
• Asembliranjem se simbolički kod prevodi u strojni binarno zapisan kod

© D.Vuk 2018.
50 Kod u asembleru i kod u strojnom jeziku:

Intel Assembler (asemblerski kod):


Opis
Asemblerski
kod (objašnjenje) as.
Naredbi
(r1, r2 označava
registre)

IBM 370 Assemblerski kod preveden u strojni jezik (strojni kod : heksadecimalni zapis (lijevo) i binarni zapis (desno))

© D.Vuk 2018.
51
Primjer strojnog koda za dva različita stroja
Intel :

© D.Vuk 2018.
52

Proces asembliranja
Izvorni kod napisan u
Pod pojmom asembler razlikujemo dvije asemblerskom jeziku
stvari:
- Asemblerski jezik
- Program koji prevodi (asemblira) Assembler
assemblerski program/kod u strojni kod

Objektni kod

© D.Vuk 2018.
53
Asembliranje: primjer jednostavnog programa

© D.Vuk 2018.
54
Asembliranje: primjer jednostavnog programa

• Asemblerski program kao rješenje zadanog problema:

Taj program (asemblerski kod) treba asemblirati kako bi se dobio


strojni program/strojni kod koji procesor može izvršiti!

© D.Vuk 2018.
P1 Početak asembliranja

Adrese Sadržaji
memorijskih memorijskih
lokacija lokacija

Verzija: 3 55
P1 Prvi redak: konstanta addr predstavlja adresu

Prilikom asembliranja stvara se


pomoćna tablica simbola, s
adresama labela i konstanti

To je potrebno za nastanak
strojnog koda, tj., strojne
instrukcije

Verzija: 3 56
P1 Izvrši drugi redak: op.kod i vrij.simb postavi u mem.

2.red: 1.instrukcija

Verzija: 3 57
P1 Izvrši treći redak :op.kod postavi u memoriju

2.red: 1.instrukcija

3.red: 2.instrukcija

Verzija: 3 58
P1 Izvrši četvrti redak:

2.red: 1.instrukcija

3.red: 2.instrukcija

4.red: 3.instrukcija

© D.Vuk 2019. Verzija: 3 59


P1 Primjer izvršavanja asembliranog koda:

• Asembliranjem će se dobiti binarni kod koji se sastoji od:


– Opkodova
– Operanada
– konstante
• Struktura koda:
– 1 direktiva
– 1 labela
– 3 instrukcije
• Binarni kod radi lakšeg razumijevanja i manipulacije
prikazujemo heksadecimalno (0x..)

© D.Vuk 2019. Verzija: 3 60


P1 Primjer izvršavanja asembliranog koda:

• Izvođenje programa ima slijedeći tok:


– Dohvati opkod, tj., šifru instrukcije
• Opkod određuje broj i značenje operanada
• Opkod određuje potrebnu A/L operaciju
– Dohvati operande
– Izvrši instrukciju aktiviranjem sklopovlja koje odgovara danom opkodu

• Broj i karakteristike instrukcija proizlaze iz karakterističnog


instrukcijskog skupa za konkretni procesor

© D.Vuk 2019. Verzija: 3 61


P1 Primjer izvršavanja asembliranog koda:

• Izvršni programski kod se nalazi u memoriji kao


linearni binarni zapis – instrukcije i operandi
jedni iza drugih
• Početna adresa je 0 (0x0000)
– To je relativna adresa, nije fizički početak memorije
– Offset – odmak od neke druge (fizičke) adrese
• Programski kod se ne izvršava u memoriji
– On mora biti dohvaćen putem registara
– Isto vrijedi i za operande
• Broj, karakteristike i uloga registara zavise
neposredno od arhitekture pojedinog
mikroprocesora
© D.Vuk 2019
.
Verzija: 3 62
P1 Primjer izvršavanja asembliranog koda:

• Struktura naredbi u asemblerskom kodu


neposredno odražava strukturu instrukcija iz
konkretnog instrukcijskog skupa
• Svaka instrukcija pretpostavlja točno određenu
vrstu i ulogu registara kao i način adresiranja
operanda (adresni modovi ili adresni načini)
• Stoga:
– Svaki asemblerski kod se piše za točno određeni
procesor odnosno familiju procesora, i ne može
izvoditi na drugim vrstama procesora
– Jedino je putem asemblerskih programa moguće u
potpunosti iskoristiti snagu arhitekture konkretnog
procesora – to valja imati na umu svaki puta kad su
performanse izvođenja programa kritične
© D.Vuk 2019. Verzija: 3 63
64
0. Početno stanje mikroprocesora: PC pokazuje na adresu prve instrukcije

8 bitni registri: Akumulator, privremeni registar, instrukcijski registar


16 bitni registri: programsko brojilo, podatkovno brojilo
© D.Vuk 2018.
1. Dohvat instrukcije: LD A, (0x0201)

-IR (instrukcijski registar) sadrži opcode 1. instrukcije


-PC pokazuje na adresu operanda kojeg će se dohvatiti u idućem koraku

65 © D.Vuk 2018.
2. Dohvat operanda: LD A, (0x0201)

DC sadrži prvi bajt operanda


IR još uvjek sadrži opkod prve instrukcije
PC pokazuje na slijedeću adresu

66 © D.Vuk 2018
3. Dohvat operanda: LD A, (0x0201)

DC sadrži cijelu vrijednost operanda


IR još uvjek sadrži opkod prve instrukcije
PC pokazuje na adresu slijedeće instrukcije

67 © D.Vuk 2018.
4. Izvrši: LD A, (0x0201)

68 © D.Vuk 2018.
5. Korak – dohvati i izvrši (pribroji): ADD A, 0x20

- akumulator sadrži rezultat izvršenja instrukcije


- PC pokazuje adresu petlje

69
6. Korak: JP 0x0000

- PC pokazuje opet na adresu početne instrukcije


- pribrajanje će se nastaviti u idućem koracima, sve dok ne dođe do eksternog prekida

70

You might also like