71
ARHITEKTURA RAČUNARSKIH SISTEMA I MREŽA mr Goran Đukanović, dipl.inž.el [email protected] Arhitektura računarskih sistema i mreža Slajd 1

Arsim Jednoprocesorski Racunarski Sistemi I Dio

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

[email protected]

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.

MIKROPROCESOR INTEL 8086

Arhitektura

računarskih sistema i mreža Slajd

16

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

ARHITEKTURA μP i8086

Arhitektura

računarskih sistema i mreža Slajd

41

ARHITEKTURA μP i8086

Arhitektura

računarskih sistema i mreža Slajd

42

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