Upload
sosamimi
View
30
Download
1
Embed Size (px)
DESCRIPTION
arsim
Citation preview
ARHITEKTURA RAČUNARSKIH SISTEMA I MREŽA
mr Goran Đukanović, dipl.inž[email protected]
Arhitektura
računarskih sistema i mreža Slajd
1
II JEDNOPROCESORSKI RAČUNARSKI
SISTEMImr Goran Đukanović, dipl.inž.el
Arhitektura
računarskih sistema i mreža Slajd
2
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
PERSONALNI RAČUNAR
Arhitektura
računarskih sistema i mreža Slajd
3
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
VON NEUMANNOVA ARHITEKTURA
Arhitektura
računarskih sistema i mreža Slajd
4
Korijeni
modernog
PC računara
idu
do 1940-tih
godina.John Von Neumann predložio
je sledeći
dizajn:•CPU•ulaz•izlaz•radna
memorija
•permanentna
memorija
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
VON NEUMANNOVA ARHITEKTURA
Arhitektura
računarskih sistema i mreža Slajd
5
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
VON NEUMANNOVA ARHITEKTURA
Arhitektura
računarskih sistema i mreža Slajd
6
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
VON NEUMANNOVA ARHITEKTURA
Arhitektura
računarskih sistema i mreža Slajd
7
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
Šta
čini
računar?•Central Processing Unit (CPU)
–izvršava
programe•Primarna
memorija
–skladištenje
programa
i podataka•I/O uređaji
–omogućava da CPU komunicira sa vanjskim hardverom •Sistemska
magistrala
–spaja
sve
zajedno–adrese, podaci, kontrolni
signali
Arhitektura
računarskih sistema i mreža Slajd
8
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
Arhitektura
računarskih sistema i mreža Slajd
9
Data
Bus
Address
Bus
Control
Bus
Processor
Memory I/O
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
Arhitektura
računarskih sistema i mreža Slajd
10
•upravlja, nadgleda
i usklađuje djelovanje svih jedinica računara
•organizuje prenos podataka
•raspoznaje i analizira naredbe
•brine za pravilno izvođenje naredbi
•brze memorijske ćelije, nad kojima ALU izvodi operacije
Izvodi osnovne operacije:
•aritmetičke
•logičke
•upoređivanje
INTELOVA FAMILIJA MIKROPROCESORA
Arhitektura
računarskih sistema i mreža Slajd
11
DESKTOP PROCESORIMikroprocesor
adresira
maksimalno
2n različitih
memorijskih
lokacija, gdje
je n broj
bita
adresne
magistrale.
Procesor GodinaMagistrala podataka
(bit)
Adresna magistral
a (bit)
Takt magistral
e (MHz)
Unutrašnji takt
(MHz)8086 1978 16 20 (1M) 4.77-8 4.77-88088 1979 8 20 (1M) 4.77-8 4.77-880286 1982 16 24 (16M) 6-20 6-20
80386SX 1985 16 32 (4G) 16-33 16-3380386DX 1986 32 32 (4G) 16-33 16-3380486SX 1989 32 32 (4G) 25-50 25-5080486DX 1989 32 32 (4G) 25-50 25-50
INTELOVA FAMILIJA MIKROPROCESORA
Arhitektura
računarskih sistema i mreža Slajd
12
DESKTOP PROCESORIMikroprocesor
adresira
maksimalno
2n
različitih
memorijskih lokacija, gdje
je n
broj
bita
adresne
magistrale.
Procesor GodinaMagistrala podataka
(bit)
Adresna magistrala
(bit)
Takt magistrale
(MHz)
Unutrašnji takt
(MHz)80486DX2 1992 32 32 (4G) 25-40 50-8080486DX4 1994 32 32 (4G) 25-40 75-120Pentium 1993 64 32 (4G) 60-66 60-200
Pentium Pro 1995 64 36 (64G) 66 150-200Pentium MMX 1997 64 32 (4G) 66 166-233
Pentium II 1997 64 36 (64G) 66-100 233-450Pentium III 1999 64 36 (64G) 100-133 450-1400Pentium IV 2001 64 64 400-533 1400-
INTELOVA FAMILIJA MIKROPROCESORA
Arhitektura
računarskih sistema i mreža Slajd
13
SERVER PROCESORI
Procesor GodinaMagistrala podataka
(bit)
Adresna magistrala
(bit)
Takt magistrale
(MHz)
Unutrašnji takt
(MHz)Xeon MP 2001 64 36 400 1400-2000
Xeon 2002 64 36 400-533 1800-Itanium 2001 64 44 266 733-800
Itanium II 2002 128 50/64 400 900-1000
MIKROPROCESOR INTEL 8086
Arhitektura
računarskih sistema i mreža Slajd
14
•Spada
u mikroprocesore
opšte namjene.•Realizovan je na jednom kolu sa 40 izvoda.•Svi unutrašnji registri su od 16 bita.•Mogu se realizovati operacije paralelnog prenosa.•Ima 14 internih registara od po 16 bita.•Može da adresira do 1 MB memorijskih lokacija jer ima 20 bita adresa (20 adresnih bita).•Komunicira prenosom 16-bitnih podataka.•Koristi se jedan napon za napajanje (5V).
MIKROPROCESOR INTEL 8086
Arhitektura
računarskih sistema i mreža Slajd
15
•24 načina adresiranja.•Može da realizuje 8-bitne i 16-bitne aritmetičke operacije u binarnom i decimalnom brojnom sistemu uključujući i množenje i dijeljenje, koristeći podatke sa i bez predznaka.•Takt frekvencija može da bude 5, 8 ili 10 MHz.•Postoji varijanta koja ima istu strukturu kao 8086, ali komunicira pomoću 8-bitne magistrale sa drugim sklopovima. Taj drugi mikroprocesor naziva se 8088.
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
Arhitektura
računarskih sistema i mreža Slajd
17
ULOGA MIKROPROCESORA•Dohvati
instrukciju
iz
memorije
•Dohvati
operande
instrukcije•Dekodiraj
instrukciju
•Izvrši
instrukciju•Izbaci
rezultate
JEDNOPROCESORSKI RAČUNARSKI SISTEMI
Arhitektura
računarskih sistema i mreža Slajd
18
Kod
standardnih
mikroprocesora
ove
se faze realizuju
sekvencijalno
(jedna
iza
druge).
Kod
8086 postoji
mogućnost preklapanja nekih od ovih koraka. Postoji mogućnost da se paralelno sa izvršavanjem instrukcije u mikroprocesoru pribavlja nova instrukcija iz operativne memorije.
Takva mogućnost postoji zahvaljujući arhitekturi mikroprocesora, kod koje su pojedini od ovih koraka dodijeljeni posebnim jedinicama mikroprocesora.
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
19
Registri opšte namjene
Segmentni registri
ALU
Sabirnični međusklop
Red instrukcija
Upravljačka jedinica
Registri operanada
vanjska magistrala
vanjska magistrala
EU BIU
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
20
Mikroprocesor i8086 čine dvije jedinice:
jedinica za povezivanje sa magistralom (bus interface unit – BIU)
izvršna jedinica (execution unit – EU).
BIU
pribavlja instrukcije iz memorije te prima i predaje podatke. Sačinjavaju je segmentni registri, registri pretpribavljenih instrukcija (FIFO) te sabirnični međusklop.
EU
zadužena je za izvršavanje instrukcija. Sastoji se od ALU, registara opšte namjene, registara operanada i upravljačke jedinice.Komunikacija EU
sa "vanjskim svijetom" odvija se preko BIU, koja
joj pribavlja instrukcije i podatke.
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
21
Ove dvije jedinice mogu raditi nezavisno jedna od druge, paralelno.Dok se izvršava jedna instrukcija, može se pribavljati sljedeća.Na taj način imamo paralelan rad, pipelining.
PREKLAPANJE PRIBAVLJANJA I IZVRŠAVANJA: PIPELINING.
Na ovakav način magistrala se maksimalno koristi (svo vrijeme je zauzeta) i ubrzava se rad mikroprocesora.
EU nema direktnu vezu sa magistralomBIU logika za upravljanje vanjskom magistralom
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
22
EAX AH AL EBX BH BL ECX CH CL EDX DH DL ESP SP EBP BP EDI DI ESI SI
EIP IP
EFLAGS FLAGS CS DS ES SS FS GS
8-bitni 8-bitni
16-bitni
32-bitni
Registri implementirani kod 80386-Pentium Pro
Accumulator Base index
CountData
Stack Pointer Base Pointer
Destination index Source Index
Instruction Pointer Flags
Code Segment Data Segment Extra Segment Stack Segment
AXBXCXDX
Programski model mikroprocesora sačinjavaju "vidljivi" registri mikroprocesora
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
23
Programski model mikroprocesora
Mikroprocesor sadrži 14 unutrašnjih registara po 16 bita.Po svojoj namjeni ti registri se dijele u grupe:•4 registra podataka (A, B, C, D)•4 registra koji se nazivaju pokazivači i indeksni registri (SP, BP, DI, SI)•4 segmentna registra (CS, DS, ES, SS)•pokazivač
instrukcije (IP)
•registar bita stanja (F)
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
24
Programski model mikroprocesora
Pomenuti
registri čine programski model mikroprocesora jer im se može pristupiti programski pomoću određenih instrukcija.
Postoje još
neki drugi registri u mikroprocesoru koji služe za sinhronizaciju podataka (prenosa) i nisu dostupni programeru.
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
25
U 8086 postoje 4 segmentna registra (po 16 bita):CS, DS, ES, SS.Segmentni registri u kombinaciji sa ostalim registrima služe za generisanje adresa.
SEGMENTNI REGISTRI
EAX AH AL EBX BH BL ECX CH CL EDX DH DL ESP SP EBP BP EDI DI ESI SI
EIP IP
EFLAGS FLAGS CS DS ES SS FS GS
8-bitni 8-bitni
16-bitni
32-bitni
Registri implementirani kod 80386-Pentium Pro
AccumulatorBase index
CountData
Stack PointerBase Pointer
Destination indexSource Index
Instruction PointerFlags
Code SegmentData SegmentExtra SegmentStack Segment
AXBXCXDX
FS
i GS
registri su dva dodatna segmentna registra koja omogućavaju adresiranje dva dodatna memorijska segmenta. Prisutni su samo kod 32-bitnih
mikroprocesora (80386-Pentium).
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
26
Segmentni
registri
CS
registar definiše početnu adresu memorijskog segmenta (code segment) u kojem se nalazi kod
(program, procedure).
Segment koda
(programa) –
CS.CS sadrži broj segmenta, a adresni prostor je organizovan u obliku segmenata od 64 KB.Prvi
megabajt
memorije
naziva
se realna ili konvencionalna
memorija. 8086 može da adresira 1 MB memorije.U realnom modu (real mode) maksimalna veličina segmenta je 64k bajtova.Zavisno od načina rada i konkretnog mikroprocesora imamo različite maksimalne veličine segmenata.
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
27
Segmentni
registri
Svaka memorijska lokacija u čitavom adresnom prostoru ima dvije adresu: fizičku i logičku. Fizička adresa neke lokacije je stvarna adresa te lokacije u cjelokupnom adresnom prostoru. Dužina fizičke adrese odgovara broju adresnih linija datog mikroprocesora (npr. 20 kod 8086 ili 32 kod 80386). Fizičku adresu formira BIU na bazi početne adrese sadržane u segmentnom registru i offseta (pomjeraja) date lokacije u odnosu na početnu adresu segmenta.
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
28
Segmentni
registri
Primjer: sadržaj segmentnog
registra početna adresa
segmenta završna adresa
segmenta 1000h 10000h 1FFFFh
1001h 10010h 2000Fh
1234h 12340h 2233Fh AB00h AB000h BAFFFh
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
29
Segmentni
registri
64k
segm
ent
00000h
10000h
1F000h
1FFFFh
FFFFFh
1 0 0 0 segmentni registar
F 0 0 0 offset
logička adresa
1 0 0 0 F 0 0 0
15 0
seg. registar offset
fizička adresa
1 0 0 0F 0 0 0
0
1 F 0 0 0
seg * 16
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
30
Segmentni
registri
DS
registar definiše početnu adresu memorijskog segmenta (data segment) u kojem se nalaze podaci. Za veličinu segmenta važe ista ograničenja kao i za code segment.Segment podataka –
DS.
ES
registar definiše početnu adresu dodatnog memorijskog segmenta (extra segment) koji se koristi za različite namjene, uglavnom za podatke.Dodatni segment –
ES.
SS
registar definiše početnu adresu memorijskog segmenta u kojem se realizuje stek (stack segment). Segment steka –
SS.
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
31
Registri EAX, EBX, ECX i EDX su višenamjenski
registri koji mogu da se koriste kao:
• 32-bitni (EAX, EBX, ECX i EDX),• 16-bitni (AX, BX, CX
i DX)
ili • 8-bitni (AH, AL, BH, BL, CH, CL, DH, DL).
Registri opšte namjene
EAX AH AL EBX BH BL ECX CH CL EDX DH DL ESP SP EBP BP EDI DI ESI SI
EIP IP
EFLAGS FLAGS CS DS ES SS FS GS
8-bitni 8-bitni
16-bitni
32-bitni
Registri implementirani kod 80386-Pentium Pro
AccumulatorBase index
CountData
Stack PointerBase Pointer
Destination indexSource Index
Instruction PointerFlags
Code SegmentData SegmentExtra SegmentStack Segment
AXBXCXDX
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
32
16-bitni (AX, BX, CX
i DX)
Registri opšte namjene, ili registri podataka, višenamjenski.Koriste se za privremeno memorisanje adresa, podataka.A –
Akumulator
B –
Baza (Base)C –
Brojač
(Count)
D –
Podatak (Data)
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
33
A – Akumulator, služi za aritmetičko logičke operacije
(množenje, dijeljenje, U/I operacije
i operacije
sa nizovima).
B – Baza (Base)
koristi
se kod
pomjeranja
i kao
bazni
pokazivač
zajedno sa DS registromC –
Brojač
(Count) koristi se pri radu sa nizovima i kao
brojač
pri radu sa petljamaD –
Podatak (Data) koristi se pri množenju, dijeljenju U/I operacijama
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
34
16-bitni (SP, BP, DI
i SI)SP, BP –
registri pokazivači.Koriste se kao adresni registri
i to njihov sadržaj predstavlja logičku adresu, a često se to naziva pomjeraj (OFFSET), koja
zajedno sa odgovarajućim SEGMENTNIM REGISTROM
daje stvarnu fizičku adresu za adresiranje odgovarajućeg podatka.
Pokazivači i indeksni registri
EAX AH AL EBX BH BL ECX CH CL EDX DH DL ESP SP EBP BP EDI DI ESI SI
EIP IP
EFLAGS FLAGS CS DS ES SS FS GS
8-bitni 8-bitni
16-bitni
32-bitni
Registri implementirani kod 80386-Pentium Pro
AccumulatorBase index
CountData
Stack PointerBase Pointer
Destination indexSource Index
Instruction PointerFlags
Code SegmentData SegmentExtra SegmentStack Segment
AXBXCXDX
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
35
SP –
STACK POINTER adresira lokaciju u stek memoriji. On pokazuje relativan položaj lokacije u odnosu na SS (stack segment)BP –
BASE POINTER koristi se kod tzv. baznog adresiranja i
takođe radi sa stekom. I kod njega je SS (stack segment) odgovarajući segmentni registar.
EDI i ESI služe za adresiranje odredišnih, odnosno izvornih podataka kod operacija sa nizovima (stringovima), a mogu da se referenciraju kao
• 32-bitni (EDI, ESI) ili • 16-bitni (DI, SI).
Pokazivači i indeksni registri
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
36
DI, SI
Indeksni registri. Omogućavaju indeksno adresiranje kod ovog mikroprocesora.
SI
(source index) Indeksni registar izvora podataka – adresira one podatke nad kojima se izvode operacije.
DI
(destinaton index) Indeksni registar odredišta podataka. Sadržaj ovih registara se automatski uvećava ili umanjuje za jedan nakon upisivanja podataka.
Da li će se uvećati ili smanjiti određuje bit iz skupa bita stanja. To je bit DF.
Pokazivači i indeksni registri
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
37
Registri
specijalne
namjene
(upravljački registri)
• pointer instrukcija (Instruction Pointer - IP)• registar
bita
stanja
(FLAGS).
EAX AH AL EBX BH BL ECX CH CL EDX DH DL ESP SP EBP BP EDI DI ESI SI
EIP IP
EFLAGS FLAGS CS DS ES SS FS GS
8-bitni 8-bitni
16-bitni
32-bitni
Registri implementirani kod 80386-Pentium Pro
AccumulatorBase index
CountData
Stack PointerBase Pointer
Destination indexSource Index
Instruction PointerFlags
Code SegmentData SegmentExtra SegmentStack Segment
AXBXCXDX
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
38
Registri
specijalne
namjene
(upravljački registri)
• pointer instrukcija (Instruction Pointer - IP)• registar
bita
stanja
(FLAGS).
IP
Pointer instrukcija adresira sljedeću instrukciju u code segmentu. Pokazivač
lokacija programa koji se izvršava.Ako μP radi u realnom modu koristi se 16-bitni registar IP, a ako radi u zaštićenom modu koristi se 32-bitni EIP registar. Ne može mu se pristupiti programski.
F (FLAGS) Registar markera (flegova) ili
registar
bita
stanja
pokazuje stanje mikroprocesora nakon procesiranja instrukcije i omogućava upravljanje radom mikroprocesora. Procesori 8086-80286 raspolažu 16-
bitnim registrom (FLAGS), a 80386-Pentium 32-bitnim registrom EFLAGS.
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
39
Registri
specijalne
namjene
(upravljački registri)
F (FLAGS) Registar markera (flegova) ili
registar
bita
stanja
kod
8086 je 16-bitni ali
se ne koriste
svi
biti.Koristi
se 9 bita:CFPFAFZFSFOFi kontrolni
biti
kojim
se upravlja
procesorom(takođe se upisuju i čitaju):DF IFTF
ARHITEKTURA μP i8086
Arhitektura
računarskih sistema i mreža Slajd
40
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
I
D
VIP
VIF
AC
VM
RF N
T IOP 1 0 O D I T S Z A P CEFLAGS
8086-8088 80286
80386-80486
80486 SX
Pentium – Pentium Pro
8086
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
43
Adresiranje:•podataka
•Registarsko adresiranje•Neposredno adresiranje•Direktno adresiranje•Registarsko
indirektno
adresiranje•Registarsko
relativno
adresiranje•Bazno indeksno adresiranje•Relativno bazno indeksno adresiranje•Skalirano indeksno adresiranje
•instrukcija•Direktno
adresiranje
programske
memorije•Relativno adresiranje programske memorije•Indirektno adresiranje programske memorije
•steka
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
44
Adresiranje
podataka:
Intelova familija mikroprocesora raspolaže sa 8 načina adresiranja podataka.
Za ilustraciju svakog pojedinačnog načina adresiranja pogodno je koristiti instrukciju MOV
MOV odredište, izvor
Kojom
se kopira
sadržaj izvorišnog registra ili memorijske lokacije u odredišni registar ili memorijsku lokaciju, pri čemu sadržaj izvora ostaje nepromijenjen.
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
45
Adresiranje
podataka:REGISTARSKO ADRESIRANJE
MOV registar, registar
Najčešći način adresiranjaKoristi se za transfer podataka između registaraOba registra moraju biti iste dužine (oba 8-bitna, oba 16-bitna ili oba 32-bitna)Dozvoljeno je korištenje svih registara programskog modela, ali nije dozvoljen direktan transfer između dva segmentna registraCS ne može biti odredišni registar
Primjer
EAX 0000h 4321hEBX 1234h 5678hECX 8765h 4321h
MOV AX,CX
EA
X
0000h 0000h
EB
X
1234h 5678h
EC
X
8765h 4321h
EAX 0000h 4321hEBX 0000h 4321hECX 8765h 4321h
MOV EBX,EAX
EAX 0000h 4321hEBX 1234h 4343hECX 8765h 4321h
MOV BL,
AH
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
46
Adresiranje
podataka:REGISTARSKO ADRESIRANJEPrimjeri
instrukcija dužina operacijaMOV AL,BL 8 bita kopira sadržaj BL u ALMOV CH,CL 8 bita kopira sadržaj CL u CHMOV AX,CX 16 bita kopira sadržaj CX u AXMOV SP,BP 16 bita kopira sadržaj BP u SPMOV DS,AX 16 bita kopira sadržaj AX u DS
MOV ECX,EBX 32 bita kopira sadržaj EBX u ECX
MOV ESP,EDX 32 bita kopira sadržaj EDX u ESP
MOV ES,DS x ne može iz segmentnog registra u segmentni registar
MOV BL,DX x ne može različita dužina registara
MOV CS,AX x CS ne može biti odredišni registar
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
47
Adresiranje
podataka:Neposredno
(immediate) adresiranje
MOV registar, konstanta
Koristi se za upisivanje konstanti (konkretnih vrijednosti) u registre programskog modela.Heksadecimalne konstante praćene su oznakom "h", a ako počinju nekim od simbola A-F ispred se dodaje "0“
MOV EAX, 123456h EAX 0012h 3456h
MOV AX, 0F2h AX 00h F2h
MOV AL, 10010011b AL 1001 0011
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
48
Adresiranje
podataka:Neposredno
(immediate) adresiranje
MOV registar, konstanta
Decimalne konstante upisuju se bez ikakvih oznaka
MOV AX, 10 AX 00h 0Ah
MOV BX, 0 BX 00h 00h
Znakovne konstante (ASCII) ograničavaju se apostrofima
MOV AL, ‘A’ AL 0100 0001
MOV BX, ‘AB’ BX 0100 0001 0100 0010
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
49
Adresiranje
podataka:Direktno
adresiranje
MOV registar, adresaMOV adresa,
registar
Postoje dva oblika: Akumulatorsko
transfer podataka između memorijske lokacije u okviru data segmenta i akumulatora (AL, AX ili EAX) trobajtne instrukcije
Na bazi
pomjeraja
(displacement)
transfer podataka između memorijske lokacije u okviru data segmenta
i odgovarajućeg registra
četvorobajtne instrukcije
MOV AX, DS:[1000]MOV AX, [1000]MOV AX, broj16
MOV CX, broj16MOV BX, ES:[0200]
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
50
Adresiranje
podataka:Direktno
adresiranje
broj32
87h65h43h21h
broj1643h21h
broj8 21h
DS
MOV AL, broj8AL 21h
MOV AX, broj16AX 43h 21h
MOV EAX, broj32EAX 8765h 4321h
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
51
Adresiranje
podataka:Direktno
adresiranje
broj32(11234h)
87h65h43h21h
broj1643h21h
broj821hMOV broj8, AL
MOV broj16, AX
MOV [1234h], EAX
EAX 87h 65h 43h 21h
MOV DS:[1234h], 1234h
MOV DS:[broj16], AX
DS: 1000h10000h
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
52
Adresiranje
podataka:Direktno
adresiranje
87h
65h
43h
21h
12003h
12002h
12001h
12000h
DS: 1000h
MOV BL, [2000h]BL 21h
SI 43h 21hMOV SI, DS:[2000h]
EDX 8765h 4321hMOV EDX, [2000h]
10000h
Moguće je koristiti i segment sadržan u nekom drugom segmentnom registru, ali tada se taj registar mora eksplicitno navesti:
MOV EDI,
ES:[1234h]
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
53
Adresiranje
podataka:Direktno
adresiranjePrimjeri:
instrukcija dužina operacija
MOV CH, broj 8 bita kopira 8-bitni sadržaj lokacije broj u CH
MOV CL, [1000h] 8 bita kopira 8-bitni sadržaj lokacije s offsetom 1000h u CL
MOV ES, data16 16 bita kopira 16-bitni sadržaj lokacije data16 u ES
MOV data16, BX 16 bita kopira sadržaj BX na lokaciju data16
MOV data32, EBX 32 bita kopira sadržaj EBX na lokaciju data32
MOV [1000h], data32 x ne može iz memorijske lokacije u memorijsku lokaciju
MOV addr1, addr2 x ‘’
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
54
Adresiranje
podataka:Registarsko
indirektno
adresiranjeMOV registar, [registar]MOV [registar],
registar
Omogućava adresiranje bilo koje memorijske lokacije u okviru datog segmenta pomoću offseta sadržanog u nekom od registara BP, BX, DI ili SI (8086-80286), odnosno bilo kojem extended registru (80386-Pentium)
MOV AX, [BX]MOV AX, DS:[BX]43h
21h
12001h
12000h
DS: 1000h
AX 43h 21h
10000h
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
55
Adresiranje
podataka:Registarsko
indirektno
adresiranje
Ako se koristi BX, DI ili SI,
pomjeraj se odnosi na početnu adresu data segmenta (bazna adresa sadržana je u DS)
MOV AX, [BX]
MOV AX, DS:[BX]MOV [SI], CL
MOV DS:[SI], CLMOV DX, [DI]
MOV DX, DS:[DI]
Ako se koristi BP,
pomjeraj se odnosi na početnu adresu stack segmenta (bazna adresa sadržana je u SS)
MOV AX, [BP]
MOV AX, SS:[BP]
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
56
Adresiranje
podataka:Registarsko
indirektno
adresiranjePrimjeri:
instrukcija dužina operacija
MOV CX, [BX] 16 bitakopira u CX riječ
(16 bita) iz data
segmenta s lokacije čiji je offset sadržan u BX
MOV DL, [BP] 8 bita kopira u DL bajt (8 bita) iz stack segmenta s lokacije čiji je offset sadržan u BP
MOV [BP],
BH 8 bita kopira bajt iz BH u stack segment na lokaciju čiji je offset sadržan u BP
MOV AL, [EDX] 8 bita kopira u AL bajt iz data segmenta s lokacije čiji je offset sadržan u EDX
MOV ECX, [EBX] 32 bitakopira u ECX dvostruku riječ
(32 bita) iz data segmenta s lokacije čiji je offset sadržan u EBX
MOV [DI], [BX] x kopiranje iz memorije u memoriju nije dozvoljeno (osim kod stringova)
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
57
Registarsko
relativno
adresiranje
MOV registar, [registar
+ offset]
Omogućava adresiranje neke memorijske lokacije u okviru datog segmenta
pomoću offseta sadržanog u nekom od registara BP, BX, DI ili SI (8086-80286), odnosno bilo kojem extended registru uvećanog ili umanjenog za određenu konstantu.
MOV AX, [BX + 02h]
43h
21h
12003h
12002h
12001h
12000h
DS: 1000h10000h
Podrazumijevajući segment je data segment (BX, DI ili SI), odnosno stack segment (BP)
BX 20h 00h
AX 43h 21h
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
58
Registarsko
relativno
adresiranje
pomjeraj se može definisati i/ili korišćenjem simboličkog imena (varijable)
MOV AH, NIZ [SI + 01h]
21h12101h
12100h
12000h
DS: 1000h
AH 21h
10000h
SI 01h 00h
NIZ
NIZ + 100h
NIZ + 101h
…… …
…… …MOV AH, DS:NIZ [SI + 01h]
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
59
Bazno
indeksno
adresiranje
MOV registar, [bazni
registar
+ ind. registar]
Koristi se za indirektno adresiranje memorijske lokacije pomoću jednog baznog (BP ili BX) i jednog indeksnog registra (DI ili SI) kod mikroprocesora 8086-80286, odnosno bilo kojeg extended registra osim ESP i jednog indeksnog
registra kod mikroprocesora 80386-Pentium
MOV AX, [BX + SI]
43h
21h
12003h
12002h
12001h
12000h
DS: 1000h
AX 43h 21h
10000h
Podrazumijevajući segment je data segment (BX, DI ili SI), odnosno stack segment (BP)
SI 00h 02h
BX 20h 00h
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
60
Bazno
indeksno
adresiranjePrimjeri:
instrukcija dužina operacija
MOV CX, [BX+DI] 16 bitakopira u CX riječ
iz data segmenta s lokacije čiji je offset [BX]+[DI] u odnosu na početnu adresu segmenta
MOV CH, [BP+SI] 8 bita kopira u CH bajt iz stack segmenta s lokacije čiji je offset [BP+SI]
MOV [BX+SI],
SP 16 bita kopira sadržaj SP u data
segment na lokaciju čiji je offset [BX+SI]
MOV CL, [EDX+EDI] 8 bita kopira u CL bajt iz data segmenta s lokacije čiji je offset [EDX+EDI]
MOV [EAX+EBX], ECX 32 bita kopira sadržaj ECX u
data segment na lokaciju čiji je offset [EAX+EBX]
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
61
Relativno
bazno
indeksno
adresiranjeMOV registar, [bazni
registar
+ ind. registar
+
offset]
•Slično je bazno indeksnom adresiranju, jedino što se sadržaju baznog i indeksnog registra dodaje odgovarajući pomjeraj•Efikasno se koristi kod adresiranja dvodimenzionalnih nizova
MOV BL, [BX + DI + 01h]
21h10803h
10802h
10801h
10800h
DS: 1000h
BL 21h
10000h
BX 08h 00h
DI 00h 02h
Podrazumijevajući segment je data segment (BX, DI ili SI), odnosno stack segment (BP)
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
62
Relativno
bazno
indeksno
adresiranjePrimjeri:
instrukcija dužina operacija
MOV DH, [BX+DI+20h] 8 bita kopira u DH bajt iz data segmenta s lokacije čiji je offset [BX+DI]+20h
MOV AX, BROJ [BX+DI] 16 bita kopira u AX riječ
iz data segmenta s lokacije čiji je offset broj+[BX+DI]
MOV BROJ[BX+DI],
CL 16 bita kopira sadržaj CL u data
segment na lokaciju čiji je offset broj+[BX+DI]
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
63
Skalirano
indeksno
adresiranjeMOV registar,
[bazni
reg. + scale*ind.reg. + offset]
Slično je relativnom bazno indeksnom adresiranju, s tom razlikom što se ovdje vrši skaliranje sadržaja indeksnog registra (množenje odgovarajućim faktorom: 1, 2, 4 ili 8)
Pogodno kod manipulacije nizovima riječi i dvostrukih riječi
Primjeri:
instrukcija dužina
MOV AX, [EBX+2*EDI+100h] 16 bita
MOV EAX, NIZ [4*ECX] 32 bita
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
64
ADRESIRANJE INSTRUKCIJA (PROGRAMSKE MEMORIJE)
Adresiranje instrukcija (programske memorije) pojavljuje se u tri oblika •direktno, •indirektno,•relativno
Izvodi se korišćenjem instrukcija•JMP•CALL
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
65
DIREKTNO
(NEPOSREDNO)
ADRESIRANJE PROGRAMSKE MEMORIJE
•Rjeđe se koristi od indirektnog i relativnog adresiranja•Instrukcije koje se koriste za direktno adresiranje pored opkoda
(opcode –
operacija koja se izvršava) sadrže adresu na koju će se izvršiti grananje•Adresa se sastoji od segmentnog i offset dijela
1000
00
00
EA
JMP FAR PTR skok
CS: 1000
IP: 0000
opcode
Ovaj način adresiranja omogućava tzv. intersegmentne
skokove
(skok na bilo koju lokaciju u memoriji)
skok
= 10000h
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža Slajd
66
RELATIVNO ADRESIRANJE PROGRAMSKE MEMORIJE
•Termin "relativno" podrazumijeva relativno u odnosu na pointer instrukcija (IP)•Pomjeraj može biti jednobajtni ili dvobajtni•Jednobajtni pomjeraj predstavlja kratki (short) skok •Dvobajtni pomjeraj predstavlja bliski (near) skok ili intrasegmentni skok
(skok u okviru istog segmenta)•Za specifikaciju pomjeraja koriste se označeni brojevi
90
02
EB
04
00
E9
JMP $+400h$ = 02000h
02001h
02002h
JMP $+2
NOP...
90
$ = 02000h
02001h
02400h NOP
JMP SHORT hereJMP here
here:
there:
JMP NEAR PTR thereJMP there
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža
INDIREKTNO ADRESIRANJE PROGRAMSKE MEMORIJE
Referenciranje adrese vrši se pomoću sadržaja nekog od 16-bitnih registara (AX, BX, CX, DX, SI, DI, SP, BP) ili relativnog registra ([BP], [BX],
[SI] ili [DI]) ili relativnog registra s pomjerajem.
instrukcija operacija
JMP AX skače u okviru datog code segmenta na lokaciju adresiranu sadržajem AX registra
JMP WORD
PTR [BX]skače u okviru datog code segmenta na lokaciju adresiranu sadržajem memorijske lokacije iz data segmenta adresirane pomoću BX registra
JMP TABELA [BX]skače u okviru datog code segmenta na lokaciju adresiranu sadržajem memorijske lokacije iz data segmenta adresirane pomoću tabele uvećane za BX
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža
ADRESIRANJE STEKA
Stek je LIFO (Last In First Out) memorijska strukturaStek se puni PUSH, a prazni POP
instrukcijamaPodaci na steku adresiranju se pomoću SS
i SP
registaraSP
pokazuje na lokaciju na kojoj je raspoloživ podatak
SPSP -
1SP -
2
Podaci
na
steku
...
SS 2000h 20000h
Stack Size (100h)
200FFh200FEh200FDh200FCh200FBh200FAh
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža
ADRESIRANJE STEKA
Stavljanje
podataka
na
stek
SP
...
SS 3000h 30000h
Stack Size (200h)
301FFh301FEh301FDh301FCh301FBh301FAh
12h34h SP
PUSH AX
AX 12h 34h
Uvijek se stavlja riječ, prvo viši bajt (na SP-1), pa niži bajt (na SP-2)
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža
ADRESIRANJE STEKA
Uzimanje
podataka
sa
steka
SP
...
SS 3000h 30000h
Stack Size (200h)
301FFh301FEh301FDh301FCh301FBh301FAh
12h34h
POP
DX
DX 12h 34h
SP
ADRESIRANJE μP i8086
Arhitektura
računarskih sistema i mreža
ADRESIRANJE STEKA
PUSH
i POP
uvijek barataju sa riječima, a ne bajtovima (8086-80286), a noviji mikroprocesori mogu i sa dvostrukim riječima
Na stek može biti ostavljen sadržaj bilo kojeg registra
Sa steka se može uzeti podatak i staviti u bilo koji registar osim u CS
instrukcija operacija
PUSHF kopira flegove na stek
POPF uzima riječ
sa steka i puni registar FLAGS
PUSHFD kopira EFLAGS na stek
POPFD uzima dvostruku riječ
sa steka i puni EFLAGS
PUSH AX kopira sadržaj AX na stek
POP AX uzima riječ
sa steka i puni AX
PUSH DS kopira sadržaj DS na stek
POP DS uzima riječ
sa steka i puni DS
PUSH 1234h stavlja na stek konstantu 1234h