Upload
milana-stanisic
View
1.036
Download
24
Embed Size (px)
Citation preview
VIŠA TEHNIČKA ŠKOLA
DOBOJ
SEMINARSKI RADNačin adresiranja mikroprocesora i8086
PROFESOR: Dr Zlatko Bundalo STUDENT: Stanišić Milana ASISTENT: Dipl. ing Gordana Jotanović INDEKS: 949/01
SADRŽAJ
Mikroprocesor i8086.............................................................................. 2
Arhitektura i8086……………………………………………............... 3
Format instrukcija i način izvršavanja................................................... 6
Načini adresiranja.................................................................................. 7
Adresiranje podataka........................................................................ 8
Registarsko adresiranje.......................................................... 9
Neposredno adresiranje......................................................... 10
Direktno adresiranje.............................................................. 11
Registarsko-indirektno adresiranje....................................... 12
Bazno-relativno adresiranje.................................................. 14
Direktno-indeksno adresiranje.............................................. 15
Bazno-indeksno adresiranje.................................................. 16
Skalarno-indeksno adresiranje.............................................. 17
Adresiranje instrukcija.................................................................... 18
Direktno adresiranje........................................................ 18
Indirektno adresiranje...................................................... 19
Relativno adresiranje....................................................... 20
Adresiranje steka............................................................................. 21
Peimjer asamblerskog programa.......................................................... 23
Literatura.............................................................................................. 24
1
Mikroprocesor i8086
Mikroprocesor i8086 je prvi Intelov 16-bitni mikroprocesor, proizveden 1978. godine. On je
omogućio kompatibilnost prethodne 8-bitne familije (Intel 8080/8085), ali i znatno bolje
performanse koje su se ogledale u ubrzanju izvršavanja programa. Arhitektura je poboljšana i
većim brojem radnih registara nego kod 8-bitnih mikroprocesora. Procesor koji vrši obradu
podataka u mikroračunaru naziva se mikroprocesor. Jedna od osnovnih karakteristika
mikroprocesora je dužina podatka kojeg obrađuje u jednom trenutku. Uobičajene dužine su 4,
8, 16, 32.... Prema ovome svi mikroprocesori se mogu podijeliti na četvorobitne, osmobitne,
šesnaestobitne itd. . Ova podijela nije striktna. Postoje neki mikroprocesori koji po nekim
karakteristikama pripadaju i osmobitnim i šesnaestobitnim, odnosno šesnaestobitnim i
tridesetdvobitnim.
Intel 8086 realizovan je u jednom integrisanom sklopu sa 40 pinova. Posjeduje 16-bitnu
magistralu podataka i 20-bitnu adresnu magistralu. Ovakav način realizovanja magistrale
omogućava adresiranje od jednog miliona bajtova memorijskih lokacija. Takođe, znatno su
proširene mogućnosti adresiranja ulazno/izlaznih uređaja za koje je namijenjen adresni
prostor od 64 KB. Radi uštede broja spoljnih pinova izvršeno je mutipleksiranje magistrale
podataka i adresne magistrale tj. ovaj mikroprocesor u jednom trenutku prenosi adrese i tada
ne može prenositi podatke, a u drugom trenutku vrši prenos podataka.
Intel 8086 nije imao mogućnost rada sa operacijama sa pokretnim zarezom, ali se mogao
spojiti sa matematičkim koprocesorom da bi mu se omogućila
ta sposobnost.
Dio adresnog prostora memorije koristi se za posebne svrhe,
kao što je to prikazano na slici. Gornjih 16 bajtova se koristi za
smještanje informacije o inicijalnom automatskom puniocu,
kao i informacije o adresi na kojoj započinje izvršavanje, nakon
pojave RESET signala. Donji 1 KB se podijeli u 4-bajtne
pokazivače (pointere) na rutine za obradu 256 mogućih tipova
prekida. Od ukupno 32 bita ovih pokazivača, 16 se koristi za
adresu segmenta, a 16 predstavljaju odsječak unutar segmenta.
Svi ovi pokazivači moraju da budu inicijalizovani pre nego što
Adresni prostor memorije se prekidi pojave.
2
Arhitektura i8086
Mikroprocesor i8086 sastoji se od dvije jedinice: izvršna jedinica i jedinica interfejsa
magistrale. Ove dvije jedinice operišu asinhrono. Cjelokupna komunikacija sa perifernim
jedinicama i osnovnom memorijom odvija se preko jedinice interfejsa magistrale. Izvršna
jedinica sastoji se od opštih registara i aritmetičko – logičke jedinice, dok jedinicu interfejsa
magistrale čine segmentni registri, unutrašnji komunikacioni registri i skup bajtova koji služe
za uvođenje instrukcija. Sve ove komponente povezane su unutrašnjim magistralama širine
od 16 do 20 bita.
Pokazivački i indeksni registri omogućavaju razne vrste adresiranja unutar segmenta. Sadržaj
pokazivača se tretira kao odsječak u odnosu na tekuću vrednost pokazivača steka (SS), a
sadržaj indeksnih registara kao odsječak unutar tekućeg segmenta podataka. Ovi registri su
BP - pokazivač baze, SP – pokazivač steka, SI – izvorni indeks i DI – indeks odredišta.
3
Važnu ulogu ima treća grupa registara: segmentni registri. Ovi registri učestvuju u svim
izračunavanjima adresa, pa se sve instrukcije uzimaju relativno u odnosu na sadržaj
segmentnog registra koda. Sličnu ulogu imaju i ostali registri koji služe za rad sa podacima.
Programi koji ne mjenjaju sadržaj segmentnog registra su dinamički relokatibilni, te se mogu
prekidati, premještati na druge lokacije i ponovo startovati sa novom vrijednošću segmentnog
registra. Segmentni registri su CS – kodni segment, DS – segment podataka, SS – stek
segment, ES – ekstra segment.
Adresni prostor memorije dijeli se na segmente dužine po 64 KB, a oni se mogu dodijeliti
kodu, podacima i steku. Donja četiri bita segmentnih registara imaju vrijednost nula, tako da
početak svakog segmenta može da bude samo na adresama koje su umnošci broja 16.
Segmenti se mogu preklapati.
Fizička adresa se formira sabiranjem odsječka sa vrijednošću izabranog segmentnog registra.
Na slici prikazan je način formiranja 20-bitne fizičke memorijske adrese. Iako se za pristup
podacima iz instrukcije normalno koristi registar segmenta koda, ovo može da se uradi i sa
drugim segmentnim registrima. Prilikom adresiranja ulaza/izlaza, segmentni registri ne
učestvuju u formiranju efektivne adrese. U tom slučaju, fizička adresa jednaka je vrijednosti
odsječka odgovarajućeg registra iz grupe pokazivača i indeksnih registara.
Formiranje fizičke adrese
4
Primjer:
Pretpostavimo da je u segmentntnom registru broj 6020H i da je dodatak 4267. Fizička adresa
se dobija na sledeći način.
Segment *10H 60200 H 1
+ dodatak 4267 H
20-bitna adresa 64467 H
Mikroprocesor i8086 ima četrnaest 16-bitnih registara, i to dvanaest registara za podatke i
adrese, jedan pokazivač instrukcija i statusni registar. Registri adresa i podataka su podjeljeni
u tri skupa sa po 4 registra: segmentni registri, registri podataka i pokazivački i indeksni
registri.
Pored ove tri grupe imamo i fleg registar i IP.
IP – pokazivač instrukcija čuva dodatak koji treba dodati sadržaju registra kodnog segmenta
da bi se formirala fizička adresa instrukcije koja treba sledeća da se izvrši.Statusni registar
sadrži zastavice (flags) koje mogu biti podignute ili spuštene. Jednu zastavicu predstavlja
jedna ćelija.
5
Ako je sadržaj ćelije 1, zastavica je podignuta, u suprotnom je spuštena. Flegovi kod i8086
su: CF – fleg prenosa, PF – fleg parnosti, AX – pomoćni fleg prenosa, ZF – nula fleg, SF –
fleg znaka, TF – zamka-fleg, IF – fleg osposobljavanja prekida, DF – fleg pravca, OF – fleg
prekoračenja.
Format instrukcija i način izvršavanja
Programer pristupa mikroprocesoru preko instrukcija (komandi), koje izdaje mikroprocesoru.
Instrukcije se u memoriji računara predstavljaju u binarnom obliku, tj. pomocu cifara 0 i 1.
Jedino u ovom obliku one su prihvatljive za mikrokontroler. Preko magistrala podataka i
adresnih magistrala, instrukcije se, u ovom obliku, dovode u mikroprocesor. U okviru svake
instrukcije razlikuju se dva glavna dijela: operacioni kod (opkod) i adresni dio. Operacioni
kod određuje vrstu operacije, koju treba da obavi mikroprocesor, a adresni dio ukazuje na
adrese sa kojih treba uzeti podatke za operisanje ili na koje treba da se pređe tokom
izvršavanja programa. Opkod mora postojati u svakoj instrukcij, dok adresni dio može da
bude prazan.
Pošto binarni oblik instrukcija nije pogodan za čovjeka uvode se skraćenice za pregledniji
zapis opkodova i adresnog dijela. Za opkodove se, skoro redovno, koriste skraćenice
engleskih riječi, a adrese se zamjenjuju raznim simboličnim imenima. Za ovako zapisane
instrukcije kaže se da su zapisane u simbiličnom obliku i nazivaju se asemblerskim
instrukcijama.
Između asemblerskih i mašinskih instrukcija postoji jednoznačna korespodencija.
Asemblerske instrukcije za i8086 mogu biti bez adrese, sa jednom adresom ili sa dve adrese,
tj. mogu imati jedan od oblika:
Opkod
Opkod Adresa
Opkod Adresa 1, Adresa 2
6
Adrese u instrukcijama mogu biti: adrese memorijskih lokacija, imena registara ili neposredni
podaci.
Primejri instrukcija bez adresa:
NOP ; Instrukcija bez dejstva, omogućava generisanje kratkih pauza
CLD ; Instrukcija za brisanje D flega.
Primjeri instrukcija sa jednom adresom su:
INC CX ; Uvećava sadržaj CX za 1
JMP Labela ; Bezuslovni skok na Labela.
Primjeri instrukcija sa dvije adrese:
MOV AX, Labela1 ; Premješta sadržaj lokacije Labela1 u AX
ADD DX, Labela2 ; Sabira sadržaj lokacije Labela2 i DX i upisuje u DX
Primjeri instrukcija koje na mjestu druge adrese imaju neposredni podatak:
MOV AL, 32 ; Upisuje 32 u AL
MOV AX, 543 ; Upisuje 534 u AX
Operandi u instrukcijama mogu biti dužine jednog bajta ili dužine jedne reči.
Načini adresiranja
Instrukcije i podaci čuvaju se u memoriji računara. Da bi instrukcija mogla da se izvrši, mora
biti dovedena iz memorije u mikroprocesor. Položaj instrukcije u memoriji određen je
sadržajem registara: CS i IP. Ukoliko u instrukciji treba operisati i sa nekim podacima,
moguće je da su podaci sadržani u samoj instrukciji, da se nalaze u nekom registru
7
mikroprocesora ili u memoriji računara. Ukoliko su podaci sadržani u instrukciji, ili se nalaze
u nekom registru mikroprocesora, njima se lako pristupa jer su, praktično, u samom
mikroprocesoru. Međutim, ako su podaci u memoriji (ili ih treba upisati u memoriju),
mikroprocesor mora da se obrati nekoj memorijskoj lokaciji. Postoji više načina za obraćanje
mikroprocesora nekoj memorijskoj lpkaciji. U zavisnosti od toga gdje se nalazi podatak i
kako se vrši obraćanje memorijskoj lokaciji, adresni djelovi instrukcija pojavljuju se u
različitim oblicima.
Razlikujemo adresiranje podataka, instrukcija i steka.
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 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.
MOV odredište, izvor
Kod adresiranja podataka razlikujemo sledeće načine adresiranja:
Registarsko
Neposredno
Direktno
Registarsko – indirektno
Bazno – relativno
Direktno – indeksno
Bazno – indeksno
Skalirano – indeksno
Registarsko i neposredno adresiranje razlikuju se od ostalih oblika adresiranja jer se ovde ne
zahtjeva obraćanje memorijskim lokacijama. Kod ostalih oblika adresiranja neophodno je
obraćanje memorijskim lokacijama. U ovom slučaju, da bi se odredila efektivna adresa
podatka, koristi se sadržaj nekog od segmentnih registara (DS, ES ili SS) i određen dodatak
(pomjeranje). Sadržaj segmentnog registra se množi sa 16 i određuje početnu adresu segmenta
u memoriji. Dodatak (pomjeranje) određuje položaj podataka unutar segmenta i on je
8
definisan načinom adresiranja. Za svaki način adresiranja poznato je iz kog segmenta se
uzimaju podaci.
Primer:
MOV Labela, AL
Pomoću ove instrukcije vrši se upis sadržaja AL-registra u memorijsku lokaciju pod nazivom
Labela. Ovde simboličko ime Labela predstavlja 16-bitnu adresu i određuje položaj podatka
unutar segmenta podataka. Da bi mikroprocesor mogao da upiše sadržaj AQL-registra u
memoriju, mora da odredi efektivnu adresu (apsolutnu adresu u memoriji) lokacije u kojoj se
vrši upis. To postiže množeći sadržaj DS-registra sa 16 i dodsavanjem vrednosti simboličkog
imena Labela.
Registarsko adresiranje
Ovo je jedna od najjednostavnijih metoda adresiranja i svodi se na preuzimanje sadržaja
registra i njegovog smeštanja u odredište.Ograničenje ovog načina adresiranja je da oba
registra moraju biti iste dužine, zatim da SЅ registar ne može biti odredište, kao i da nije
dozvoljen transfer podataka između dva segmentna registra.
Primjeri:9
instrukcija dužina operacija
MOV AL,BL 8 bita kopira sadržaj BL u AL
MOV CH,CL 8 bita kopira sadržaj CL u CH
MOV AX,CX 16 bita kopira sadržaj CX u AX
MOV SP,BP 16 bita kopira sadržaj BP u SP
MOV 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 ne može iz segmentnog registra u
segmentni registar
MOV BL,DX ne može različita dužina registara
MOV CS,AX CS ne može biti odredišni registar
Neposredno adresiranje
Ovo je najjednostavnija metoda adresiranja. Kao što joj ime kaže, radi se o neposrednoj
dodjeli vrijednosti. Kada se instrukcija, koja koristi ovo adresiranje, prevede u mašinski oblik,
neposredno iza koda operacije nalaziće se zadata konstanta.
Koristi se za upisivanje konstanti (konkretnih vrijednosti) u registre programskog
modela
MOV registar, konstanta
Heksadecimalne konstante praćene su oznakom "h", a ako počinju nekim od
simbola A-F ispred se dodaje "0"
Konstante praćene su oznakom "b"
10
Decimalne konstante upisuju se bez ikakvih oznaka
Znakovne konstante (ASCII) ograničavaju se apostrofima
Direktno adresiranje
To je metoda adresiranja koja podrazumijeva da joj je parametar adresa na kojoj se nalazi
vrijednost koju treba preuzeti. Postoji direktno i na bazi pomjeranja. U mašinskom formatu
adresa lokacije se nalazi kao neposredni operand i uvijek je 16-bitna vrijednost.
Pretpostavimo da je broj1 lokacija na kojoj se nalazi vrijednost A1h. Tada će instrukcija:
MOV AL, broj1
u AL upisati vrijednost A1h. Ovo je direktni način.
Na bazi pomjeranja imamo slučaj da je adresa određena sadržajem odgovarajućeg registra.
Npr. neka imamo instrukciju:
MOV BX, [2000h].
11
Ovo [2000h] nam definiše vrijednost pomjeraja u odnosu na vrijednost početka segmenta
podataka.
Primjeri :
MOV AL, [8088h]
MOV [1234h], AX
Stvarna adresa formira se na osnovu sadržaja DS registra pomnoženog sa 10h, na koji se
dodaje pomenuta vrijednost pomjeraja. Treba reći da se kod ove metode adresiranja kao
segmentni registar podrazumijeva DS, ali je to moguće predefinisati kao u narednim
primjerima :
MOV AL, ES:[0234h]
MOV AX, CS:[0452h]
Registarsko – indirektno adresiranje
Sadržaj registra, koji je naveden između uglastih zagrada, tumači se kao adresa na kojoj se
nalaze podaci. Registarsko-indirektno adresiranje omogućava adresiranje memorijske lokacije
u okviru datog segmenta pomoću offset-a (pomjeraja) sadržanog u nekom od sledećih
registara: BP, BX, DI i SI. 12
Registarsko-indirektno adresiranje
Primjeri:
MOV AL, [BX]
MOV AL, [BP]
MOV AL, [SI]
MOV AL, [DI]
Treba naglasiti da se prilikom upotrebe registara BX, SI i DI za računanje efektivne adrese
koristi segmentni registar DS, dok se za BP koristi SS. Eksplicitnim navođenjem segmentnih
registara moguće je uticati na računanje efektivne vrednosti, kao u sledećim primjerima :
MOV AL, CS:[BX]
MOV AL, DS:[BP]
MOV AL, ES:[SI]
MOV AL, SS:[DI]
13
Bazno – relativno adresiranje
Bazno – relativno adresiranje omogućava adresiranje memorijske lokacije u okviru datog
segmenta pomoću offset-a sadržanog u nekom od registara uvećanog ili umanjenog za
određenu konstantu. Ovdje se koriste BX i BP registri. Ako se koristi registar BP, podatak je
u stek – segmentu, u suprotnom je u segmentu sa podacima.
Bazno-relativno adresiranje
Primjer:
MOV AX, [BX+100h]
Efektivna adresa se formira sabiranjem vrijednosti registra i navedene konstante, pa se sa
lokacije, koju određuje efektivna adresa, uzima podatak ili se on u nju smiješta.
14
Sledeći primjeri prikazuju dozvoljene načine zapisa instrucija:
MOV AL, 20h[BP] ili
MOV AL, [BP+20h] ili
MOV AL, [BP]+ 20h
MOV DL, 78 [BX] ili
MOV DL, [BX+78] ili
MOV DL, [BX]+ 78
Direktno-indeksno adresiranje
Direktno-indeksno adresiranje se koristi za indirektno adresiranje memorijske lokacije
pomoću jednog od indeksnih registara (DI i SI).
Oblici adresa u ovom načinu adresiranja su sledeći:
[DI] + disp
[SI] + disp
15
Dodatak se dobija sabiranjem sadržaja SI ili DI sa nekim brojem (disp).
Primjer:
MOV SI, disp
MOV AX, NIZ [SI]
U akumulator će biti upisan član niza NIZ na koji pokazuje SI (sadržaj SI je disp), s tim što je
NIZ prvi član niza.
Ovaj način adresiranja koristi se pri radu sa nizovima i tabelama.
Bazno-indeksno adresiranje
Bazno-indeksno adresiranje, slično je prethodnom načinu adresiranja, koristi se za indirektno
adresiranje memorijske lokacije pomoću jednog od baznih registara u kombinaciji sa jednim
od indeksnih registara (DI i SI), a po potrebi sve se sabira sa nekim dodatnim brojem.
Bazno-indeksno adresiranje
Primjer:
MOD AL, disp [BX][SI]
MOV AL, disp [BX + DI]
16
Za formiranje dodatka, u ovom slučaju koristi se DS – registar (operandi su u segmentu sa
podacima).
MOV AL, [BP + SI + disp]
MOV AL, [BP][DI] [disp]
U ovom slučaju koristi se SS – registar (stek – segment) za formiranje dodatka.
Npr. Neka je u BP 1000h, BX sadrži 2000h, SI 120h, I DI sadrži 5.
Tada instrukcija MOV AL, 10h[BX + SI] učitava u AL sa adrese na koju pokazuje DS, a to je
2130; MOV CH, 125h[BP + DI] učitava u CH sa lokacije na koju pokazuje SS, a to je 112A.
Skalarano – indeksno adresiranje
Skalirano indeksno adresiranje je indeksno adresiranje kod kojeg se vrši skaliranje sadržaja
indeksnog registra, tj. množenje sa 1, 2, 4 ili 8.
Primjer:
MOV AX, [BX][2*CX+20h]
17
Adresiranje instrukcija
Adresiranje instrukcija (programske memorije) pojavljuje se u tri oblika i to:
Direktno
Indirektno
Relativno
Izvodi se korišćenjem JMP i CALL instrukcija.
Direktno adresiranje
Radi se o metodi adresiranja koja podrazumeva da joj je parametar adresa na kojoj se nalazi
vrijednost koju treba preuzeti. U mašinskom formatu adresa lokacije se nalazi kao neposredni
operand i uvek je 16-bitna vrednost. Direktno adresiranje u okviru instrukcija za skok
(grananje) pored operacionog koda sadrži i adresu naredne instrukcije.
Primjer:
JMP 1200h
Direktno adresiranje
18
rjeđe se koristi od indirektnog i relativnog adresiranja
instrukcije koje se koriste za direktno adresiranje pored opkoda (opcode)
sadrže adresu na koju će se izvršiti grananje
ovaj način adresiranja omogućava tzv. intersegmentne skokove (skok na bilo
koju lokaciju u memoriji)
Indirektno adresiranje
Adresiranje se vrši tako što se adresa dobija na osnovu sadržaja jednog od 16-bitnih registara
ili relativnih registara.
• 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
19
Primjer:
JMP AX
JMP NEAR PTR[BX]
Relativno adresiranje.
• 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
20
Primjer:
JMP [6h]
znači šest mjesta u odnosu na ono što bi pokazivao pokazivač instrukcije.
Adresiranje steka
• stek je LIFO (Last In First Out) memorijska struktura
• stek se puni PUSH, a prazni POP instrukcijama
• podaci na steku adresiranju se pomoću SS i SP registara
• SP pokazuje na lokaciju na kojoj je raspoloživ podatak
• stavljanje podataka na stek
uvijek se stavlja riječ, prvo viši bajt (na SP-1), pa niži bajt (na SP-2)
• uzimanje podataka sa steka
21
uvijek se uzima riječ, prvo niži bajt (sa SP), pa viši bajt
• 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
Primjeri:
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
22
Primjer asamblerskog programa
Primjer asemblerskog programa koji definiše odgovarajući niz, zatim puni registre određenim
vrijednostima i manipuliše sadržajem registara koristeći opisane načine adresiranja:
podaci segment 'data'
niz db 96 dup (?)
podaci ends
kod segment 'code'
assume ds:podaci, cs:kod
start: mov ax, podaci
mov ds, ax
mov al, 65
mov cl, 10h
mov di, 20
mov niz, al
mov bx, offset niz
mov [niz+10], cl
mov di, 20
mov [bx][di], cl
mov [bx][di+1], cl
mov ah, 4ch
int 21h
kod ends
end star
23
LITERATURA:
Dušan Tošić “Mikroprocesori sa elementima programiranja”
Dr Zoran Salčić “ Mikroračunarski sistemi ” - 1982. god
Gabro Smiljanić “Mikroračunala” - 1985.god
www.intel.co
24