Professional Documents
Culture Documents
Slajd 1
Slajd 2
Slajd 3
Slajd 5
Slajd 6
Slajd 7
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
Data Bus
Address Bus
Control Bus
Slajd 9
Slajd 11
Slajd 12
Adresna Takt magistrala magistrale (bit) (MHz) 36 36 44 50/64 400 400-533 266 400
Slajd 13
Slajd 16
Slajd 17
Slajd 18
ARHITEKTURA P i8086
EU Registri opte namjene BIU Segmentni registri
ALU
Sabirnini meusklop
vanjska magistrala
Registri operanada
Red instrukcija
Upravljaka jedinica
vanjska magistrala
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
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
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
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).
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
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
Slajd 30
ARHITEKTURA P i8086
Segmentni registri
FFFFFh
15 0
1000 F000
64k segment
1 0 0 0 0 F 0 0 0 1 F 0 0 0
seg * 16
10000h
1000
segmentni registar
00000h
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
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)
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
Slajd 35
ARHITEKTURA P i8086
Pokazivai i indeksni registri
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
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)
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
Slajd 39
ARHITEKTURA P i8086
Registri specijalne namjene (upravljaki registri)
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
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
Slajd 42
ARHITEKTURA P i8086
Slajd 43
ARHITEKTURA P i8086
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
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.
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
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
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
AL
1001 0011
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
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
Slajd 51
ADRESIRANJE P i8086
Adresiranje podataka:
Direktno adresiranje
broj8 21h
AL
21h
broj16
AX
43h
21h
broj32
EAX
8765h
4321h
Slajd 52
ADRESIRANJE P i8086
Adresiranje podataka:
Direktno adresiranje
EAX 87h 65h 43h 21h
MOV broj8, AL
21h
broj8
broj16
broj32 (11234h)
DS: 1000h
Slajd 53
ADRESIRANJE P i8086
Adresiranje podataka:
Direktno adresiranje
87h 65h
EDX SI BL
4321h
43h 21h
Mogue je koristiti i segment sadran u nekom drugom segmentnom registru, ali tada se taj registar mora eksplicitno navesti:
10000h DS: 1000h
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
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
AX
43h
21h
DS: 1000h
10000h
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]
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)
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
AX 21h
43h
21h
Podrazumijevajui segment je data segment (BX, DI ili SI), odnosno stack segment (BP)
DS: 1000h
Slajd 59
ADRESIRANJE P i8086
Registarsko relativno adresiranje pomjeraj se moe definisati i/ili korienjem simbolikog imena (varijable)
SI
01h
MOV AH, NIZ [SI + 01h] NIZ + 101h NIZ + 100h NIZ MOV AH, DS:NIZ [SI + 01h]
AH
21h
DS: 1000h
10000h
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
Slajd 61
ADRESIRANJE P i8086
Bazno indeksno adresiranje Primjeri:
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
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
Slajd 63
ADRESIRANJE P i8086
Relativno bazno indeksno adresiranje Primjeri:
instrukcija
duina
operacija
8 bita
16 bita
MOV BROJ[BX+DI], CL
16 bita
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:
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
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
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
90 ... 04
NOP
02001h $ = 02000h
00 E9
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
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
...
SS 2000h
20000h
ADRESIRANJE P i8086
ADRESIRANJE STEKA Stavljanje podataka na stek
PUSH AX 301FFh 301FEh 301FDh 301FCh AX 12h 34h 301FBh 301FAh 12h 34h SP SP
...
SS 3000h
30000h
Uvijek se stavlja rije, prvo vii bajt (na SP-1), pa nii bajt (na SP-2)
ADRESIRANJE P i8086
ADRESIRANJE STEKA Uzimanje podataka sa steka
POP DX 301FFh 301FEh 301FDh 301FCh DX 12h 34h 301FBh 301FAh 12h 34h SP SP
...
SS 3000h
30000h
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