You are on page 1of 73

ARHITEKTURA RAUNARSKIH SISTEMA I MREA

mr Goran ukanovi, dipl.in.el djukanovicg@gmail.com

Arhitektura raunarskih sistema i mrea

Slajd 1

II JEDNOPROCESORSKI RAUNARSKI SISTEMI


mr Goran ukanovi, dipl.in.el djukanovicg@gmail.com

Arhitektura raunarskih sistema i mrea

Slajd 2

JEDNOPROCESORSKI RAUNARSKI SISTEMI


PERSONALNI RAUNAR

Arhitektura raunarskih sistema i mrea

Slajd 3

JEDNOPROCESORSKI RAUNARSKI SISTEMI


VON NEUMANNOVA ARHITEKTURA
Korijeni modernog PC raunara idu do 1940-tih godina. John Von Neumann predloio je sledei dizajn: CPU ulaz izlaz radna memorija permanentna memorija
Arhitektura raunarskih sistema i mrea Slajd 4

JEDNOPROCESORSKI RAUNARSKI SISTEMI


VON NEUMANNOVA ARHITEKTURA

Arhitektura raunarskih sistema i mrea

Slajd 5

JEDNOPROCESORSKI RAUNARSKI SISTEMI


VON NEUMANNOVA ARHITEKTURA

Arhitektura raunarskih sistema i mrea

Slajd 6

JEDNOPROCESORSKI RAUNARSKI SISTEMI


VON NEUMANNOVA ARHITEKTURA

Arhitektura raunarskih sistema i mrea

Slajd 7

JEDNOPROCESORSKI RAUNARSKI SISTEMI


ta ini raunar? Central Processing Unit (CPU)
izvrava programe

Primarna memorija
skladitenje programa i podataka

I/O ureaji
omoguava da CPU komunicira sa vanjskim hardverom

Sistemska magistrala
spaja sve zajedno adrese, podaci, kontrolni signali
Arhitektura raunarskih sistema i mrea Slajd 8

JEDNOPROCESORSKI RAUNARSKI SISTEMI


Memory Processor I/O

Data Bus

Address Bus

Control Bus

Arhitektura raunarskih sistema i mrea

Slajd 9

JEDNOPROCESORSKI RAUNARSKI SISTEMI


upravlja, nadgleda i usklauje djelovanje svih jedinica raunara organizuje prenos podataka raspoznaje i analizira naredbe brine za pravilno izvoenje naredbi

brze memorijske elije, nad kojima ALU izvodi operacije


Izvodi osnovne operacije: aritmetike logike uporeivanje Arhitektura raunarskih sistema i mrea Slajd 10

INTELOVA FAMILIJA MIKROPROCESORA


DESKTOP PROCESORI Mikroprocesor adresira maksimalno 2n razliitih memorijskih lokacija, gdje je n broj bita adresne magistrale.
Procesor 8086 8088 80286 80386SX 80386DX 80486SX 80486DX Godina 1978 1979 1982 1985 1986 1989 1989 Magistrala podataka (bit) 16 8 16 16 32 32 32 Adresna magistral a (bit) 20 (1M) 20 (1M) 24 (16M) 32 (4G) 32 (4G) 32 (4G) 32 (4G) Takt magistral e (MHz) 4.77-8 4.77-8 6-20 16-33 16-33 25-50 25-50 Unutranji takt (MHz) 4.77-8 4.77-8 6-20 16-33 16-33 25-50 25-50

Arhitektura raunarskih sistema i mrea

Slajd 11

INTELOVA FAMILIJA MIKROPROCESORA


DESKTOP PROCESORI Mikroprocesor adresira maksimalno 2n razliitih memorijskih lokacija, gdje je n broj bita adresne magistrale.
Procesor 80486DX2 80486DX4 Pentium Pentium Pro Pentium MMX Pentium II Pentium III Pentium IV Godina 1992 1994 1993 1995 1997 1997 1999 2001 Magistrala podataka (bit) 32 32 64 64 64 64 64 64 Adresna magistrala (bit) 32 (4G) 32 (4G) 32 (4G) 36 (64G) 32 (4G) 36 (64G) 36 (64G) 64 Takt magistrale (MHz) 25-40 25-40 60-66 66 66 66-100 100-133 400-533 Unutranji takt (MHz) 50-80 75-120 60-200 150-200 166-233 233-450 450-1400 1400-

Arhitektura raunarskih sistema i mrea

Slajd 12

INTELOVA FAMILIJA MIKROPROCESORA


SERVER PROCESORI

Procesor Xeon MP Xeon Itanium Itanium II

Godina 2001 2002 2001 2002

Magistrala podataka (bit) 64 64 64 128

Adresna Takt magistrala magistrale (bit) (MHz) 36 36 44 50/64 400 400-533 266 400

Unutranji takt (MHz) 1400-2000 1800733-800 900-1000

Arhitektura raunarskih sistema i mrea

Slajd 13

MIKROPROCESOR INTEL 8086


Spada u mikroprocesore opte namjene. Realizovan je na jednom kolu sa 40 izvoda. Svi unutranji registri su od 16 bita. Mogu se realizovati operacije paralelnog prenosa. Ima 14 internih registara od po 16 bita. Moe 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).
Arhitektura raunarskih sistema i mrea Slajd 14

MIKROPROCESOR INTEL 8086


24 naina adresiranja. Moe da realizuje 8-bitne i 16-bitne aritmetike operacije u binarnom i decimalnom brojnom sistemu ukljuujui i mnoenje i dijeljenje, koristei podatke sa i bez predznaka. Takt frekvencija moe da bude 5, 8 ili 10 MHz. Postoji varijanta koja ima istu strukturu kao 8086, ali komunicira pomou 8-bitne magistrale sa drugim sklopovima. Taj drugi mikroprocesor naziva se 8088.
Arhitektura raunarskih sistema i mrea Slajd 15

MIKROPROCESOR INTEL 8086

Arhitektura raunarskih sistema i mrea

Slajd 16

MIKROPROCESOR INTEL 8086

Arhitektura raunarskih sistema i mrea

Slajd 17

JEDNOPROCESORSKI RAUNARSKI SISTEMI


ULOGA MIKROPROCESORA Dohvati instrukciju iz memorije Dohvati operande instrukcije Dekodiraj instrukciju Izvri instrukciju Izbaci rezultate

Arhitektura raunarskih sistema i mrea

Slajd 18

JEDNOPROCESORSKI RAUNARSKI SISTEMI


Kod standardnih mikroprocesora ove se faze realizuju sekvencijalno (jedna iza druge). Kod 8086 postoji mogunost preklapanja nekih od ovih koraka. Postoji mogunost da se paralelno sa izvravanjem instrukcije u mikroprocesoru pribavlja nova instrukcija iz operativne memorije. Takva mogunost postoji zahvaljujui arhitekturi mikroprocesora, kod koje su pojedini od ovih koraka dodijeljeni posebnim jedinicama mikroprocesora.
Arhitektura raunarskih sistema i mrea Slajd 19

ARHITEKTURA P i8086
EU Registri opte namjene BIU Segmentni registri

ALU

Sabirnini meusklop

vanjska magistrala

Registri operanada

Red instrukcija

Upravljaka jedinica

vanjska magistrala

Arhitektura raunarskih sistema i mrea

Slajd 20

ARHITEKTURA P i8086
Mikroprocesor i8086 ine dvije jedinice: jedinica za povezivanje sa magistralom (bus interface unit BIU) izvrna jedinica (execution unit EU). BIU pribavlja instrukcije iz memorije te prima i predaje podatke. Sainjavaju je segmentni registri, registri pretpribavljenih instrukcija (FIFO) te sabirnini meusklop. EU zaduena je za izvravanje instrukcija. Sastoji se od ALU, registara opte namjene, registara operanada i upravljake jedinice. Komunikacija EU sa "vanjskim svijetom" odvija se preko BIU, koja joj pribavlja instrukcije i podatke.
Arhitektura raunarskih sistema i mrea Slajd 21

ARHITEKTURA P i8086
Ove dvije jedinice mogu raditi nezavisno jedna od druge, paralelno. Dok se izvrava jedna instrukcija, moe se pribavljati sljedea. Na taj nain imamo paralelan rad, pipelining. PREKLAPANJE PRIBAVLJANJA I IZVRAVANJA: PIPELINING. Na ovakav nain magistrala se maksimalno koristi (svo vrijeme je zauzeta) i ubrzava se rad mikroprocesora. EU nema direktnu vezu sa magistralom BIU logika za upravljanje vanjskom magistralom

Arhitektura raunarskih sistema i mrea

Slajd 22

ARHITEKTURA P i8086
32-bitni 8-bitni AX BX CX 16-bitni DX 8-bitni

EAX EBX ECX EDX ESP EBP EDI ESI EIP EFLAGS

AH BH CH DH SP BP DI SI IP FLAGS CS DS ES SS FS GS
Registri implementirani kod 80386-Pentium Pro

AL BL CL DL

Accumulator Base index Count Data Stack Pointer Base Pointer Destination index Source Index Instruction Pointer Flags Code Segment Data Segment Extra Segment Stack Segment

Programski model mikroprocesora sainjavaju "vidljivi" registri mikroprocesora

Arhitektura raunarskih sistema i mrea

Slajd 23

ARHITEKTURA P i8086
AX BX CX DX 8-bitni 16-bitni 8-bitni

AH BH CH DH SP BP DI SI IP FLAGS CS DS ES SS

AL BL CL DL

Accumulator Base index Count Data Stack Pointer Base Pointer Destination index Source Index Instruction Pointer Flags Code Segment Data Segment Extra Segment Stack Segment

Arhitektura raunarskih sistema i mrea

Slajd 24

ARHITEKTURA P i8086
Programski model mikroprocesora
Mikroprocesor sadri 14 unutranjih 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 pokazivai i indeksni registri (SP, BP, DI, SI) 4 segmentna registra (CS, DS, ES, SS) pokaziva instrukcije (IP) registar bita stanja (F)
Arhitektura raunarskih sistema i mrea Slajd 25

ARHITEKTURA P i8086
Programski model mikroprocesora
Pomenuti registri ine programski model mikroprocesora jer im se moe pristupiti programski pomou odreenih instrukcija. Postoje jo neki drugi registri u mikroprocesoru koji slue za sinhronizaciju podataka (prenosa) i nisu dostupni programeru.
Arhitektura raunarskih sistema i mrea Slajd 26

ARHITEKTURA P i8086
SEGMENTNI REGISTRI

U 8086 postoje 4 segmentna registra (po 16 bita): CS, DS, ES, SS. Segmentni registri u kombinaciji sa ostalim registrima slue za generisanje adresa.
32-bitni

FS i GS registri su dva dodatna segmentna registra koja omoguavaju adresiranje dva dodatna memorijska segmenta. Prisutni su samo kod 32-bitnih mikroprocesora (80386-Pentium).

16-bitni 8-bitni 8-bitni AX BX CX DX

EAX EBX ECX EDX ESP EBP EDI ESI EIP EFLAGS

AH BH CH DH

AL BL CL DL

SP BP DI SI IP FLAGS CS DS ES SS FS GS
Registri implementirani kod 80386-Pentium Pro

Accumulator Base index Count Data Stack Pointer Base Pointer Destination index Source Index Instruction Pointer Flags Code Segment Data Segment Extra Segment Stack Segment

Arhitektura raunarskih sistema i mrea

Slajd 27

ARHITEKTURA P i8086
Segmentni registri CS registar definie poetnu adresu memorijskog segmenta (code segment) u kojem se nalazi kod (program, procedure). Segment koda (programa) CS. CS sadri broj segmenta, a adresni prostor je organizovan u obliku segmenata od 64 KB. Prvi megabajt memorije naziva se realna ili konvencionalna memorija. 8086 moe da adresira 1 MB memorije. U realnom modu (real mode) maksimalna veliina segmenta je 64k bajtova. Zavisno od naina rada i konkretnog mikroprocesora imamo razliite maksimalne veliine segmenata.
Arhitektura raunarskih sistema i mrea Slajd 28

ARHITEKTURA P i8086
Segmentni registri

Svaka memorijska lokacija u itavom adresnom prostoru ima dvije adrese: fiziku i logiku. Fizika adresa neke lokacije je stvarna adresa te lokacije u cjelokupnom adresnom prostoru. Duina fizike adrese odgovara broju adresnih linija datog mikroprocesora (npr. 20 kod 8086 ili 32 kod 80386). Fiziku adresu formira BIU na bazi poetne adrese sadrane u segmentnom registru i offseta (pomjeraja) date lokacije u odnosu na poetnu adresu segmenta.
Arhitektura raunarskih sistema i mrea Slajd 29

ARHITEKTURA P i8086
Segmentni registri

Primjer:
sadraj segmentnog registra 1000h 1001h 1234h AB00h poetna adresa memorijskog segmenta 10000h 10010h 12340h AB000h zavrna adresa memorijskog segmenta 1FFFFh 2000Fh 2233Fh BAFFFh

Arhitektura raunarskih sistema i mrea

Slajd 30

ARHITEKTURA P i8086
Segmentni registri
FFFFFh
15 0

logika adresa 1FFFFh 1F000h F000 offset fizika adresa

1000 F000

seg. registar offset

64k segment

1 0 0 0 0 F 0 0 0 1 F 0 0 0

seg * 16

10000h

1000

segmentni registar

00000h

Arhitektura raunarskih sistema i mrea

Slajd 31

ARHITEKTURA P i8086
Segmentni registri DS registar definie poetnu adresu memorijskog segmenta (data segment) u kojem se nalaze podaci. Za veliinu segmenta vae ista ogranienja kao i za code segment. Segment podataka DS. ES registar definie poetnu adresu dodatnog memorijskog segmenta (extra segment) koji se koristi za razliite namjene, uglavnom za podatke.Dodatni segment ES. SS registar definie poetnu adresu memorijskog segmenta u kojem se realizuje stek (stack segment). Segment steka SS.
Arhitektura raunarskih sistema i mrea Slajd 32

ARHITEKTURA P i8086
Registri opte namjene

Registri EAX, EBX, ECX i EDX su vienamjenski 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).
32-bitni 16-bitni 8-bitni 8-bitni AX BX CX DX

EAX EBX ECX EDX ESP EBP EDI ESI EIP EFLAGS

AH BH CH DH

AL BL CL DL

SP BP DI SI IP FLAGS CS DS ES SS FS GS
Registri implementirani kod 80386-Pentium Pro

Accumulator Base index Count Data Stack Pointer Base Pointer Destination index Source Index Instruction Pointer Flags Code Segment Data Segment Extra Segment Stack Segment

Arhitektura raunarskih sistema i mrea

Slajd 33

ARHITEKTURA P i8086
16-bitni (AX, BX, CX i DX) Registri opte namjene, ili registri podataka, vienamjenski. Koriste se za privremeno memorisanje adresa, podataka. A Akumulator B Baza (Base) C Broja (Count) D Podatak (Data)

Arhitektura raunarskih sistema i mrea

Slajd 34

ARHITEKTURA P i8086
A Akumulator, slui za aritmetiko logike operacije (mnoenje, dijeljenje, U/I operacije i operacije sa nizovima). Baza (Base) koristi se kod pomjeranja i kao bazni pokaziva zajedno sa DS registrom Broja (Count) koristi se pri radu sa nizovima i kao broja pri radu sa petljama Podatak (Data) koristi se pri mnoenju, dijeljenju U/I operacijama

B C D

Arhitektura raunarskih sistema i mrea

Slajd 35

ARHITEKTURA P i8086
Pokazivai i indeksni registri

16-bitni (SP, BP, DI i SI)


SP, BP registri pokazivai. Koriste se kao adresni registri i to njihov sadraj predstavlja logiku adresu, a esto se to naziva pomjeraj (OFFSET), koja zajedno sa odgovarajuim SEGMENTNIM REGISTROM daje stvarnu fiziku adresu za adresiranje odgovarajueg podatka.
32-bitni 16-bitni 8-bitni 8-bitni AX BX CX DX

EAX EBX ECX EDX ESP EBP EDI ESI EIP EFLAGS

AH BH CH DH

AL BL CL DL

SP BP DI SI IP FLAGS CS DS ES SS FS GS
Registri implementirani kod 80386-Pentium Pro

Accumulator Base index Count Data Stack Pointer Base Pointer Destination index Source Index Instruction Pointer Flags Code Segment Data Segment Extra Segment Stack Segment

Arhitektura raunarskih sistema i mrea

Slajd 36

ARHITEKTURA P i8086
Pokazivai i indeksni registri

SP STACK POINTER adresira lokaciju u stek memoriji. On pokazuje relativan poloaj lokacije u odnosu na SS (stack segment) BP BASE POINTER koristi se kod tzv. baznog adresiranja i takoe radi sa stekom. I kod njega je SS (stack segment) odgovarajui segmentni registar. EDI i ESI slue za adresiranje odredinih, odnosno izvornih podataka kod operacija sa nizovima (stringovima), a mogu da se referenciraju kao 32-bitni (EDI, ESI) ili 16-bitni (DI, SI).
Arhitektura raunarskih sistema i mrea Slajd 37

ARHITEKTURA P i8086
Pokazivai i indeksni registri

DI, SI Indeksni registri. Omoguavaju 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 odredita podataka. Sadraj ovih registara se automatski uveava ili umanjuje za jedan nakon upisivanja podataka. Da li e se uveati ili smanjiti odreuje bit iz skupa bita stanja. To je bit DF.
Arhitektura raunarskih sistema i mrea Slajd 38

ARHITEKTURA P i8086
Registri specijalne namjene (upravljaki registri)

pointer instrukcija (Instruction Pointer - IP) registar bita stanja (FLAGS).


32-bitni 16-bitni 8-bitni 8-bitni AX BX CX DX

EAX EBX ECX EDX ESP EBP EDI ESI EIP EFLAGS

AH BH CH DH

AL BL CL DL

SP BP DI SI IP FLAGS CS DS ES SS FS GS
Registri implementirani kod 80386-Pentium Pro

Accumulator Base index Count Data Stack Pointer Base Pointer Destination index Source Index Instruction Pointer Flags Code Segment Data Segment Extra Segment Stack Segment

Arhitektura raunarskih sistema i mrea

Slajd 39

ARHITEKTURA P i8086
Registri specijalne namjene (upravljaki registri)

pointer instrukcija (Instruction Pointer - IP) registar bita stanja (FLAGS).


IP Pointer instrukcija adresira sljedeu instrukciju u code segmentu. Pokaziva lokacija programa koji se izvrava.Ako P radi u realnom modu koristi se 16-bitni registar IP, a ako radi u zatienom modu koristi se 32-bitni EIP registar. Ne moe mu se pristupiti programski. F (FLAGS) Registar markera (flegova) ili registar bita stanja pokazuje stanje mikroprocesora nakon procesiranja instrukcije i omoguava upravljanje radom mikroprocesora. Procesori 8086-80286 raspolau 16bitnim registrom (FLAGS), a 80386-Pentium 32-bitnim registrom EFLAGS.
Arhitektura raunarskih sistema i mrea Slajd 40

ARHITEKTURA P i8086
Registri specijalne namjene (upravljaki 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: CF PF AF ZF SF OF i kontrolni biti kojim se upravlja procesorom(takoe se upisuju i itaju): DF IF TF

Arhitektura raunarskih sistema i mrea

Slajd 41

ARHITEKTURA P i8086
8086
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

EFLAGS

V V I A V R I I D C MF P F

N IOP OD I T S Z T 1 0

8086-8088 80286 80386-80486 80486 SX Pentium Pentium Pro

Arhitektura raunarskih sistema i mrea

Slajd 42

ARHITEKTURA P i8086

Arhitektura raunarskih sistema i mrea

Slajd 43

ARHITEKTURA P i8086

Arhitektura raunarskih sistema i mrea

Slajd 44

ADRESIRANJE P i8086
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

Arhitektura raunarskih sistema i mrea

Slajd 45

ADRESIRANJE P i8086
Adresiranje podataka:
Intelova familija mikroprocesora raspolae sa 8 naina adresiranja podataka. Za ilustraciju svakog pojedinanog naina adresiranja pogodno je koristiti instrukciju MOV MOV odredite, izvor Instrukcijom MOV kopira se sadraj izvorinog registra ili memorijske lokacije u odredini registar ili memorijsku lokaciju, pri emu sadraj izvora ostaje nepromijenjen.

Arhitektura raunarskih sistema i mrea

Slajd 46

ADRESIRANJE P i8086
Adresiranje podataka:
REGISTARSKO ADRESIRANJE
MOV registar, registar

Najei nain adresiranja Koristi se za transfer podataka izmeu registara Oba registra moraju biti iste duine (oba 8-bitna, oba 16-bitna ili oba 32-bitna) Dozvoljeno je koritenje svih registara programskog modela, ali nije dozvoljen direktan transfer izmeu dva segmentna registra CS ne moe biti odredini registar
Primjer:
MOV AX,CX EAX EBX ECX 0000h 1212h 1313h 0000h 4578h 4321h EAX EBX ECX 0000h 1234h 8765h MOV EBX,EAX 4321h 5678h 4321h EAX EBX ECX 0000h 0000h 8765h MOV BL, AH 4321h 4321h 4321h EAX EBX ECX 0000h 1234h 8765h 4321h 4343h 4321h

Arhitektura raunarskih sistema i mrea

Slajd 47

ADRESIRANJE P i8086
Adresiranje podataka:
REGISTARSKO ADRESIRANJE
Primjeri instrukcija
MOV AL,BL MOV CH,CL MOV AX,CX MOV SP,BP MOV DS,AX MOV ECX,EBX MOV ESP,EDX MOV ES,DS MOV BL,DX MOV CS,AX

duina
8 bita 8 bita 16 bita 16 bita 16 bita 32 bita 32 bita x x x

operacija
kopira sadraj BL u AL kopira sadraj CL u CH kopira sadraj CX u AX kopira sadraj BP u SP kopira sadraj AX u DS kopira sadraj EBX u ECX kopira sadraj EDX u ESP ne moe iz segmentnog registra u segmentni registar ne moe razliita duina registara CS ne moe biti odredini registar

Arhitektura raunarskih sistema i mrea

Slajd 48

ADRESIRANJE P i8086
Adresiranje podataka:
Neposredno (immediate) adresiranje MOV registar, konstanta Koristi se za upisivanje konstanti (konkretnih vrijednosti) u registre programskog modela. Heksadecimalne konstante praene su oznakom "h", a ako poinju nekim od simbola A-F ispred se dodaje "0
MOV EAX, 123456h MOV AX, 0F2h EAX 0012h AX 00h 3456h F2h

MOV AL, 10010011b

AL

1001 0011

Arhitektura raunarskih sistema i mrea

Slajd 49

ADRESIRANJE P i8086
Adresiranje podataka:
Neposredno (immediate) adresiranje Decimalne konstante upisuju se bez ikakvih oznaka
MOV AX, 10 MOV BX, 0 AX BX 00h 00h 0Ah 00h

MOV registar, konstanta

Znakovne konstante (ASCII) ograniavaju se apostrofima


MOV AL, A MOV BX, AB BX AL 0100 0001 0100 0001 0100 0010

Arhitektura raunarskih sistema i mrea

Slajd 50

ADRESIRANJE P i8086
Adresiranje podataka:
Direktno adresiranje MOV registar, adresa MOV adresa, registar

Postoje dva oblika: Akumulatorsko transfer podataka izmeu memorijske lokacije u okviru data segmenta i akumulatora (AL, AX ili EAX) trobajtne instrukcije
MOV AX, DS:[1000] MOV AX, [1000] MOV AX, broj16

Na bazi pomjeraja (displacement)


transfer podataka izmeu memorijske lokacije u okviru data segmenta i odgovarajueg registra etvorobajtne instrukcije
MOV CX, broj16 MOV BX, ES:[0200]

Arhitektura raunarskih sistema i mrea

Slajd 51

ADRESIRANJE P i8086
Adresiranje podataka:
Direktno adresiranje

broj8 21h

MOV AL, broj8

AL

21h

broj16

43h 21h 87h 65h 43h 21h

MOV AX, broj16

AX

43h

21h

broj32

MOV EAX, broj32


DS

EAX

8765h

4321h

Arhitektura raunarskih sistema i mrea

Slajd 52

ADRESIRANJE P i8086
Adresiranje podataka:
Direktno adresiranje
EAX 87h 65h 43h 21h

MOV broj8, AL

21h

broj8

MOV broj16, AX MOV DS:[broj16], AX

43h 21h 87h 65h 43h 21h

broj16

MOV [1234h], EAX MOV DS:[1234h], 1234h


10000h

broj32 (11234h)

DS: 1000h

Arhitektura raunarskih sistema i mrea

Slajd 53

ADRESIRANJE P i8086
Adresiranje podataka:
Direktno adresiranje

12003h 12002h 12001h 12000h

87h 65h

MOV EDX, [2000h] MOV SI, DS:[2000h]

EDX SI BL

8765h 43h 21h 21h

4321h

43h 21h

MOV BL, [2000h]

Mogue je koristiti i segment sadran u nekom drugom segmentnom registru, ali tada se taj registar mora eksplicitno navesti:
10000h DS: 1000h

MOV EDI, ES:[1234h] Slajd 54

Arhitektura raunarskih sistema i mrea

ADRESIRANJE P i8086
Adresiranje podataka:
Direktno adresiranje Primjeri:
instrukcija MOV CH, broj MOV CL, [1000h] MOV ES, data16 MOV data16, BX MOV data32, EBX MOV [1000h], data32 MOV addr1, addr2 duina 8 bita 8 bita 16 bita 16 bita 32 bita x x operacija kopira 8-bitni sadraj lokacije broj u CH kopira 8-bitni sadraj lokacije s offsetom 1000h u CL kopira 16-bitni sadraj lokacije data16 u ES kopira sadraj BX na lokaciju data16 kopira sadraj EBX na lokaciju data32 ne moe iz memorijske lokacije u memorijsku lokaciju

Arhitektura raunarskih sistema i mrea

Slajd 55

ADRESIRANJE P i8086
Adresiranje podataka:
Registarsko indirektno adresiranje MOV registar, [registar] MOV [registar], registar

Omoguava adresiranje bilo koje memorijske lokacije u okviru datog segmenta pomou offseta sadranog u nekom od registara BP, BX, DI ili SI (8086-80286), odnosno bilo kojem extended registru (80386-Pentium)

12001h 12000h

43h 21h

MOV AX, [BX] MOV AX, DS:[BX]

AX

43h

21h

DS: 1000h

10000h

Arhitektura raunarskih sistema i mrea

Slajd 56

ADRESIRANJE P i8086
Adresiranje podataka:
Registarsko indirektno adresiranje Ako se koristi BX, DI ili SI, pomjeraj se odnosi na poetnu adresu data segmenta (bazna adresa sadrana je u DS) MOV AX, [BX] MOV [SI], CL MOV DX, [DI] MOV AX, DS:[BX] MOV DS:[SI], CL MOV DX, DS:[DI]

Ako se koristi BP, pomjeraj se odnosi na poetnu adresu stack segmenta (bazna adresa sadrana je u SS) MOV AX, [BP] MOV AX, SS:[BP]

Arhitektura raunarskih sistema i mrea

Slajd 57

ADRESIRANJE P i8086
Adresiranje podataka:
Registarsko indirektno adresiranje Primjeri:
instrukcija MOV CX, [BX] MOV DL, [BP] MOV [BP], BH MOV AL, [EDX] MOV ECX, [EBX] duina 16 bita 8 bita 8 bita 8 bita 32 bita operacija kopira u CX rije (16 bita) iz data segmenta s lokacije iji je offset sadran u BX kopira u DL bajt (8 bita) iz stack segmenta s lokacije iji je offset sadran u BP kopira bajt iz BH u stack segment na lokaciju iji je offset sadran u BP kopira u AL bajt iz data segmenta s lokacije iji je offset sadran u EDX kopira u ECX dvostruku rije (32 bita) iz data segmenta s lokacije iji je offset sadran u EBX kopiranje iz memorije u memoriju nije dozvoljeno (osim kod stringova)

MOV [DI], [BX]

Arhitektura raunarskih sistema i mrea

Slajd 58

ADRESIRANJE P i8086
Registarsko relativno adresiranje MOV registar, [registar + offset] Omoguava adresiranje neke memorijske lokacije u okviru datog segmenta pomou offseta sadranog u nekom od registara BP, BX, DI ili SI (8086-80286), odnosno bilo kojem extended registru uveanog ili umanjenog za odreenu konstantu.

BX

20h

00h 12003h 12002h 12001h 12000h 10000h 43h

MOV AX, [BX + 02h]

AX 21h

43h

21h

Podrazumijevajui segment je data segment (BX, DI ili SI), odnosno stack segment (BP)

DS: 1000h

Arhitektura raunarskih sistema i mrea

Slajd 59

ADRESIRANJE P i8086
Registarsko relativno adresiranje pomjeraj se moe definisati i/ili korienjem simbolikog imena (varijable)

SI

01h

00h 12101h 12100h 12000h 21h

MOV AH, NIZ [SI + 01h] NIZ + 101h NIZ + 100h NIZ MOV AH, DS:NIZ [SI + 01h]

AH

21h

DS: 1000h

10000h

Arhitektura raunarskih sistema i mrea

Slajd 60

ADRESIRANJE P i8086
Bazno indeksno adresiranje MOV registar, [bazni registar + ind. registar] Koristi se za indirektno adresiranje memorijske lokacije pomou 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] SI 00h 02h 12003h 12002h BX 20h 00h 12001h 12000h 10000h 43h AX 21h 43h 21h

Podrazumijevajui segment je data segment (BX, DI ili SI), odnosno stack segment (BP)

DS: 1000h

Arhitektura raunarskih sistema i mrea

Slajd 61

ADRESIRANJE P i8086
Bazno indeksno adresiranje Primjeri:

instrukcija MOV CX, [BX+DI]

duina 16 bita

operacija kopira u CX rije iz data segmenta s lokacije iji je offset [BX]+[DI] u odnosu na poetnu adresu segmenta kopira u CH bajt iz stack segmenta s lokacije iji je offset [BP+SI] kopira sadraj SP u data segment na lokaciju iji je offset [BX+SI] kopira u CL bajt iz data segmenta s lokacije iji je offset [EDX+EDI] kopira sadraj ECX u data segment na lokaciju iji je offset [EAX+EBX]

MOV CH, [BP+SI] MOV [BX+SI], SP MOV CL, [EDX+EDI] MOV [EAX+EBX], ECX

8 bita 16 bita 8 bita 32 bita

Arhitektura raunarskih sistema i mrea

Slajd 62

ADRESIRANJE P i8086
Relativno bazno indeksno adresiranje MOV registar, [bazni registar + ind. registar + offset] Slino je bazno indeksnom adresiranju, jedino to se sadraju baznog i indeksnog registra dodaje odgovarajui pomjeraj Efikasno se koristi kod adresiranja dvodimenzionalnih nizova
MOV BL, [BX + DI + 01h] 10803h DI BX 00h 08h 02h 00h 10802h 10801h 10800h 10000h 21h BL 21h

Podrazumijevajui segment je data segment (BX, DI ili SI), odnosno stack segment (BP)

DS: 1000h

Arhitektura raunarskih sistema i mrea

Slajd 63

ADRESIRANJE P i8086
Relativno bazno indeksno adresiranje Primjeri:

instrukcija

duina

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 sadraj CL u data segment na lokaciju iji je offset broj+[BX+DI]

Arhitektura raunarskih sistema i mrea

Slajd 64

ADRESIRANJE P i8086
Skalirano indeksno adresiranje MOV registar, [bazni reg. + scale*ind.reg. + offset]

Slino je relativnom bazno indeksnom adresiranju, s tom razlikom to se ovdje vri skaliranje sadraja indeksnog registra (mnoenje odgovarajuim faktorom: 1, 2, 4 ili 8) Pogodno kod manipulacije nizovima rijei i dvostrukih rijei Primjeri:

instrukcija MOV AX, [EBX+2*EDI+100h] MOV EAX, NIZ [4*ECX]

duina 16 bita 32 bita

Arhitektura raunarskih sistema i mrea

Slajd 65

ADRESIRANJE P i8086
ADRESIRANJE INSTRUKCIJA (PROGRAMSKE MEMORIJE)

Adresiranje instrukcija (programske memorije) pojavljuje se u tri oblika direktno, indirektno, relativno Izvodi se korienjem instrukcija JMP CALL

Arhitektura raunarskih sistema i mrea

Slajd 66

ADRESIRANJE P i8086
DIREKTNO (NEPOSREDNO) ADRESIRANJE PROGRAMSKE MEMORIJE

Rjee se koristi od indirektnog i relativnog adresiranja Instrukcije koje se koriste za direktno adresiranje pored opkoda (opcode operacija koja se izvrava) sadre adresu na koju e se izvriti grananje Adresa se sastoji od segmentnog i offset dijela
JMP FAR PTR skok skok = 10000h 10 00 00 00 EA opcode IP: 0000 Ovaj nain adresiranja omoguava tzv. intersegmentne skokove (skok na bilo koju lokaciju u memoriji) CS: 1000

Arhitektura raunarskih sistema i mrea

Slajd 67

ADRESIRANJE P i8086
RELATIVNO ADRESIRANJE PROGRAMSKE MEMORIJE
Termin "relativno" podrazumijeva relativno u odnosu na pointer instrukcija (IP) Pomjeraj moe 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 oznaeni brojevi

there: 02400h here: 02002h 02001h $ = 02000h 90 02 EB NOP

90 ... 04

NOP

JMP $+2 JMP SHORT here JMP here

02001h $ = 02000h

00 E9

JMP $+400h JMP NEAR PTR there JMP there Slajd 68

Arhitektura raunarskih sistema i mrea

ADRESIRANJE P i8086
INDIREKTNO ADRESIRANJE PROGRAMSKE MEMORIJE Referenciranje adrese vri se pomou sadraja 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 JMP AX

operacija skae u okviru datog code segmenta na lokaciju adresiranu sadrajem AX registra skae u okviru datog code segmenta na lokaciju adresiranu sadrajem memorijske lokacije iz data segmenta adresirane pomou BX registra skae u okviru datog code segmenta na lokaciju adresiranu sadrajem memorijske lokacije iz data segmenta adresirane pomou tabele uveane za BX

JMP WORD PTR [BX]

JMP TABELA [BX]

Arhitektura raunarskih sistema i mrea

ADRESIRANJE P i8086
ADRESIRANJE STEKA Stek je LIFO (Last In First Out) memorijska struktura Stek se puni PUSH, a prazni POP instrukcijama Podaci na steku adresiranju se pomou SS i SP registara SP pokazuje na lokaciju na kojoj je raspoloiv podatak
200FFh 200FEh

Podaci na steku

200FDh 200FCh 200FBh 200FAh SP SP - 1 SP - 2

Stack Size (100h)

...

SS 2000h

20000h

Arhitektura raunarskih sistema i mrea

ADRESIRANJE P i8086
ADRESIRANJE STEKA Stavljanje podataka na stek
PUSH AX 301FFh 301FEh 301FDh 301FCh AX 12h 34h 301FBh 301FAh 12h 34h SP SP

Stack Size (200h)

...

SS 3000h

30000h

Uvijek se stavlja rije, prvo vii bajt (na SP-1), pa nii bajt (na SP-2)

Arhitektura raunarskih sistema i mrea

ADRESIRANJE P i8086
ADRESIRANJE STEKA Uzimanje podataka sa steka
POP DX 301FFh 301FEh 301FDh 301FCh DX 12h 34h 301FBh 301FAh 12h 34h SP SP

Stack Size (200h)

...

SS 3000h

30000h

Arhitektura raunarskih sistema i mrea

ADRESIRANJE P i8086
ADRESIRANJE STEKA
PUSH i POP uvijek barataju sa rijeima, a ne bajtovima (8086-80286), a noviji mikroprocesori mogu i sa dvostrukim rijeima Na stek moe biti ostavljen sadraj bilo kojeg registra Sa steka se moe uzeti podatak i staviti u bilo koji registar osim u CS
instrukcija PUSHF POPF PUSHFD POPFD PUSH AX POP AX PUSH DS POP DS PUSH 1234h operacija kopira flegove na stek uzima rije sa steka i puni registar FLAGS kopira EFLAGS na stek uzima dvostruku rije sa steka i puni EFLAGS kopira sadraj AX na stek uzima rije sa steka i puni AX kopira sadraj DS na stek uzima rije sa steka i puni DS stavlja na stek konstantu 1234h

Arhitektura raunarskih sistema i mrea

You might also like