Instrukcije za mp intel 8085 i 8086

Page 1

Instrukcije za mikroprocesor Intel 8085 i 8086

1


Istoriski razvoj i proeđenje MP 8085 i 8086 

  

MP Intel 8085 izlazi 1977 godine i prestavlja nadograđenu verziju prcesora 8080. Ovaj procesor je posljedni 8-bitni razvijeni mikroprocesor razvijen od strane Intela. Procesor 8085 je 30% brži od svoga prethodnika (8080). Dodaju se i dvije nove instrukcije za obezbeđenje prekida. Glavne prednosti 8085 su unutrašnji generator takta, interni sistemski kontroler i viša frekfencija rada

VIŠA TEHNIČKA ŠKOLA

2


Istoriski razvoj i proeđenje MP 8085 i 8086 

 

1978 godine Intel prestavlja novu verziju mikroprocesora odnosno nadogradnju MP 8085. Novi Intelov MP 8086 je bio 16-bitni procesor koji je sadržavao 29000 tranzistora i radio je na taktu od 5 MHz. 8086 je bio u stanju da adresira 1 MB memorije. Imao je mali 4 ili 6 bajrni instrukcijski keš koji je dobavljao instrukcije prije nego što bi bile izvršene. 16-bitni mikroprocesor je omogućavao veće interne registre (16bitne).

VIŠA TEHNIČKA ŠKOLA

3


Instrukcije za MP Intel 8085

Programski model za MP Intel 8085

VIŠA TEHNIČKA ŠKOLA

4


Instrukcije za MP Intel 8085

Blok šema mikroprocesora VIŠA TEHNIČKA ŠKOLA

5


Instrukcije za MP Intel 8085

Programski model MP Intel 8085 

Programski model procesora čine oni registri procesora koji su dostupni programeru, tj. čiji se sadržaj mijenja izvršavanjem instrukcija programa ili se može stopirati pomoću instrukcija programa. U te registre spadaju:    

akumulator adresni registru registri opće namjene registri bita stanja

VIŠA TEHNIČKA ŠKOLA

6


Instrukcije za MP Intel 8085

Programski model MP 8085

gdje je: A – akumulator CCR – registar bita stanja BCDEHL – registri opće namjene PC, SP – adresni registri IE – bit maske prekida VIŠA TEHNIČKA ŠKOLA

7


Instrukcije za MP Intel 8085 

Akumulator je registar u kojem se uvijek nalazi jedan podatak, odnosno operand koji se koristi pri realizovanju aritmetičke ili logičke operacije u aritmetičko-logičkom sklopu. Takođe se rezultat izvršavanja aritmetičke ili logičke operacije upisuje u akumulator. Pokazivač steka (SP), Stek je memorijska struktura LIFO tipa (last in, first out) što znaći da se onaj podatak koji je posljednji upisan prvi očitava.Ta struktura se koristi kod procesora i računara da bi se omogućilo korištenje potprograma i prekida, jer pri korištenju potprograma i prekida se mijenja redoslijed izvršavanja instrukcija tako što procesor prelazi na izvršavanje potprograma ili programa za obradu prekida. Blok registara opšte namjene je skup registara koji se mogu koristiti za trenutno čuvanje podataka, međurezultata, rezultata i adresa. Njihova svrha je povećanje brzine rada procesora jer se sa podacima koji se nalaze u tom bloku registara mnogo brže operiše jer su oni u procesoru, nego sa podacima u adresama koje su u operativnoj memoriji. Kod procesora 8085 to su registri B,C, D,E, H,L. VIŠA TEHNIČKA ŠKOLA

8


Instrukcije za MP Intel 8085 

Registar bita stanja je direktno vezan na vanjske linije podataka na procesoru i preko njega se prenose podaci iz procesora ili u procesor. Preko njega se prenosi i niži bajt adrese kod procesora 8085. Registar bita stanja spada u sastavni dio aritmetičko-logičke jedinice i daje informacije o stanju rezultata nakon izvršavanja aritmetičke ili logičke instrukcije. Uobičajeni biti stanja koji postoje kod procesora su:      

Bit prenosa (Cy) koji pokazuje da li je pri realizovanju prethodne operacije došlo do pojave prenosa ili pozajmice bita. Bit znaka rezultata (S) se koristi pri radu sa podacima sa predznakom (+, -). Tada se najviši bit u akumulatoru koriti kao bit predznaka (S). Bit nule rezultata (N ili Z) pokazuje da je rezultat nula ili ako su u akumulatoru nule onda i ovaj bit pokazuje nulu. Bit prekoračenja (OV) pokazuje da je došlo do prekoračenja opsega u kojem se predstavlja podatak.. Bit poluprenosa (AC) pokazuje da li postoji prenos iz niže u višu polovinu bajta. Bit parnosti (P) pokazje da li je u rezultatu u akumulatoru paran ili neparan broj jedinica. VIŠA TEHNIČKA ŠKOLA

9


Instrukcije za MP Intel 8085

Načini adresiranja 

Način na koji se definiše gdje se nalazi instrukcija za izvršavanje i gdje se nalaze potrebni operandi za vrijeme izvršavanja instrukcije naziva se način adresiranja.U sastavu same riječi instrukcije nalazi se i informacija o načinu adresiranja. Ta informacija je obično u okviru operacionog dijela instrukcije, tako da se onda instrukcija praktično sastoji iz tri dijela:Mikroprcesor 8085 koristi četiri načina adresiranja. Implicitno adresiranja Kod ovoga adresiranja, instrukcija koju treba obaviti implicitno govori gdje se nalazi operant gdje se izvršava operacija. To je obično neki od registara a najčešće akumulator ADD B – (Dodaj akumulatoru sadržaj reistra B)  Neposredno adresiranje Kod ovoga adresiranja drugi i treći bajt instrukcije služi kao fiksni operant kojim se vrši operacija. Koristi se kod punjena registara nekom fiksnom vrednosti. MVI B;10 - (Napuni registar B brojem 10) 

VIŠA TEHNIČKA ŠKOLA

10


Instrukcije za MP Intel 8085 Direktno adresiranja Kod ovoga adresiranja 2. i 3. bajt se koristi za određivanje adrese bajta nad kojim se vrši operacija. LDA 1900H - (Učitaj u akumulator sadržaj koji se nalazi na adresi 1900H ) 

Indirektno adresiranja Kod ovoga adresiranja sadržaj registra koji se ovdje koristi prestavlja adresu operanta nad kojim se vrši operacija a prethodno se u taj registar mora upisati adresa. MOV A,M – ( Pomjeri sadržaj memoriske lokacije čija je adresa upisana u registarskom paru HL u Akumulator.) 

VIŠA TEHNIČKA ŠKOLA

11


Instrukcije za MP Intel 8085

Skup insrtukcija 

Mikroprocesor Intel 8085 koristi oko 80 osnovnih instrukcija. Ove instrukcije se dijele na: Instrukcije prenosa podataka  Instrukcije koje manipulišu sadržajem akumulatora i registara  Instrukcije za upravljane tokom izvršavanja programa  Instrukcije za upravljanje stekom, ulazom i izlazom mikropocesora. 

VIŠA TEHNIČKA ŠKOLA

12


Instrukcije za MP Intel 8085

Instrukcije prenosa podataka Instrukcije za prenos podataka se koriste za kopiranje podataka,odnosno prenošenje iz jedne memorijske lokacije u drugu memorijsku lokaciju, iz jednog registra u drugi registar u procesoru, između registara procesora i memorijskih lokacija, tj. za sve prenose unutar procesora i memorije i unutar memorije. MOV B,D – Pomjeri sadržaj registra D i registar B. Ova naredba je inplicitna i nebriše se sadržaj registra D. MVI B,03 - Napunsi registar B heksadekdnom vrednosti 3 LHLD 1234 – Napuni registarski par HL sa memoriske lokacije 1234 i 1235 LDA 2000 – Učitaj u Akumulator sadržaj memorijske lokacije koja slijedi iza operacijonog koda VIŠA TEHNIČKA ŠKOLA

13


Instrukcije za MP Intel 8085 

Instrukcije koje manipulišu sadržajem akumulatora i registara Ove instrukcije mogu biti: - aritmetičke - logičke Aritmetičke instrukcije su sabiranje, oduzimanje,implement, dekrement i decimalno podešavanje akumulatora. Oni utiču na stanje registara bita satanja sa određenim izuzecima (INR, DCR, INIX, DCX, DAD) . ADD B – Saberi sadržaj registra B sa akumulatorom Logičke instrukcije su NE, ILI, I, EXILI, ciklična pomjeranja, komplemetiranje sadržaja akumulatora, operacije nad bitom stanja. I ove instrukcije djeluju na registar bita stanja sa određenim izuzecima ANI podatak – Pomnoži jednobajtni podatak sa akumulatorom, rezultat se smješta u akumulator VIŠA TEHNIČKA ŠKOLA

14


Instrukcije za MP Intel 8085

Instrukcije za upravljanje tokom izvršavanja programa Instrukcije za upravljanje i izvršavanje programa mijenjaju redoslijed izvršavanja instrukcija programa. Tu spadaju instrukcije skokova ili grananja u programu. Postoje dva tipa takvih instrukcija:  bezuslovne i  uslovne Kod bezuslovnih instrukcija grananje ili skok se realizuje bez obzira na stanje procesora, odnosno programa. Kod uslovnih instrukcija skok ili grananje će bii realizovano jedino ako je ispunjen odgovarajući uslov koji se tom instrukcijom ispituje. JMP 1111 – Bezuslovan skok na instrukciju koja se nalazi na adresi 1111 JC 13F4 – Skoči na adresu 13F4 ako je bit prenosa jednak 1 VIŠA TEHNIČKA ŠKOLA

15


Instrukcije za MP Intel 8085

Instrukcije za upravljanje stekom, ulazom i izlazom mikroprocesora Ulazno/izlazne instrukcije realizuju prenos podataka između procesora i U/I sklopova.Postoje posebne ulazne i posebne izlazne instrukcije jer je prenos podataka jednosmjeran.Ulazne instrukcije tipa ''IN'' realizuju prenos od ulaznog sklopa ka procesoru a izlazne instrukcije tipa ''OUT'' realizuju prenos od procesora u izlazni sklop. PUSH B - Registarski par B&C pohraniti na stek POP D - Napuniti registarski par D&E pohraniti sa steka IN - Ulaz OUT - Izlaz VIŠA TEHNIČKA ŠKOLA

16


MOVE, LOAD, STORE – INSTRUKCIJE UPISIVANJAI ČITANJA MOV r1,r2 napuni registar iz registra MOV M,r napuni memoriju iz registra MOV r,M napuni memoriju iz reistra MVI r napuni registar neposredno MVI M 36 napuni memoriju neposredno LXI B 01 registarski par B&C napuniti neposredno LXI D 11 registarski par D&E napuniti neposredno LXI H 21 registarski par H&L napuniti neposredno STAX B 02 pohraniti sadržaj akumulatora indirektno STAX D 12 pohraniti sadržaj akumulatora indirektno LDAX B 0A napuniti akumulator indirektno LDAX D 1A napuniti akumulator indirektno STA 32 pohrani sadržaj akumulatora direktno LDA 3A napuni akumulator direktno SHLD 22 pohrani sadržaj H&L direktno LHLD 2A napuni H&L direktno XCHG EB zamjeni sadržaj D&E i H&L

STACK – INSTRUKCIJE ZA MANIPULACIJU STEKOM PUSH B C5 registarski par B&C pohraniti na stek PUSH D D5 registarski par D&E pohraniti na stek PUSH H E5 registarski par H&L pohraniti na stek PUSH PSW F5 pohraniti akumulator i bite stanja na stek POP B C1 napuniti registarski par B&C pohraniti sa steka POP D D1 napuniti registarski par D&E pohraniti sa steka POP H E1 napuniti registarski par H&L pohraniti sa steka POP PSW F1 napuniti akumulator i bite stanja sa steka XTHL E3 zamjeni H&L i vrh steka SPHL F9 prenjeti H&L i vrh steka LXI SP 31 prenjeti sadržaj H&L u SP INX SP 33 napuniti neposredno SP DCX SP 3B dekrementirati SP VIŠA TEHNIČKA ŠKOLA

17


JUMP – INSTRUKCIJE UPRAVLJANJA TOKOM IZVRŠAVANJA PROGRAMA JMP C3 bezuslovni skok JC DA skok ako postoji prenos JNC D2 skok ako ne postoji prenos JZ CA skok ako je rezultat nula JNZ C2 skok ako rezultat nije nula JP F2 skok ako je rezultat pozitivan JM FA skok ako je rezultat negativan JPE EA skok ako postoji parnost JPO E2 skok ako ne postoji parnost PCHL E9 H&L u programski brojač

CALL – INSTRUNKCIJE ZA POZIV POTPROGRAMA CAL CD bezuslobni poziv CC DC poziv ako postoji prenos CNC D4 poziv ako ne postoji prenos CZ CC poziv ako je rezultat nula CNZ C4 poziv ako rezultat nije nula CP F4 poziv ako ako je rezultat pozitivan CM FC poziv ako je rezultat negativan CPE EC poziv ako postoji parnost CPO E4 poziv ako ne posroji parnost

VIŠA TEHNIČKA ŠKOLA

18


SUBSTACT – ODUZIMANJE SUB r oduzeti registar od akumulatora SBB r oduzeti registar i posudbu od akumulatora SUB M 96 oduzeti memorisku likaciju od akumulatora SBB M 9E oduzeti memorisku lokaciju i posudbu od akumulatora SUI D6 oduzeti od akumulatora neposredno SBI DE zajedno s posudbom oduzeti od akumulatora neposredno Instrukcijski set za mikroprocesor INTEL 8085

2

RETURN – INSTKCIJE ZA POVRATAK IZ POTPROGRAMA RET C9 povratak RC D8 povratak ako postoji prenos RNC D0 povratak ako ne postoji prenos RZ C8 povratak ako je rezultat nula RNZ C0 povratak ako rezultat nije nula RP F0 povratak ako ako je rezultat pozitivan RM F8 povratak ako je rezultat negativan RPE E8 povratak ako postoji parnost RPO E0 povratak ako postoji parnost 

RESTART RST

restart

VIŠA TEHNIČKA ŠKOLA

19


INCREMENT, DECREMENT – ARITMETIČKE OPERACIJE INR r inkrementitati registar ☻ DCR r dekrementirati registar ☻ INR M 34 inkrementirati memorisku lokaciju ☻ DCR M 35 dekrementirati memorisku lokaciju ☻ INX B 03 inkrementirati registar B&C ☻ INX D 13 inkrementirati registar D&E ☻ INX H 23 inkrementirati registar H&L ☻ DCX B 0B dekrementirati registar B&C ☻ DCX D 1B dekrementirati registar D&E ☻ DCX H 2B dekrementirati registar H&L ☻

ADD – SABIRANJE ADD r dodati registar akumulatoru ADC r dodati registar i bit prenosa akumulatoru ADD M 86 dodati memorisku lokaciju akumulatoru ADC M 8E dodati memorisku lokaciju i bit prenosa akumulatoru ADI C6 dodati akumulatoru neposredno ACI CE zajedno s bitom prenosa dodati akumulatoru DAD B 09 dodati B&C u H&L ☻ DAD D 19 dodati D&E u H&L ☻ DAD H 29 dodati H&L u H&L ☻ DAD SP 39 dodati SP u H&L ☻

INPUT, OUTPUT- ULAZNO-IZLAZNE INSTRUKCIJE IN DB ulaz OUT D3 izlaz Instrukcijski set za mikroprocesor INTEL 8085

VIŠA TEHNIČKA ŠKOLA

3

20


LOGICAL – LOGIČKE OPERACIJE ANA r «logičko I» akumulatora i registra XRA r «EX ILI» akumulatora i registra ORA r «logičko ILI» akumulatora i registra (logičko sabiranje) CMP r poređenje registra s akumulatorom ( vrši se oduzimanje kao oduzimanje registra od akumulatora) ANA M A6 «logičko I « memoriske lokacije i akumulatora XRA M AE «EX ILI» memoriske lokacije i akumulatora ORA M B6 «logičko ILI»memoriske lokacije i akumulatora CMP M BE poređenje memoriske lokacije s akumulatorom ANI E6 «logičko I» s akumulatorom neposredno XRI EE «EX ILI» s akumulatorom neposredno ORI F6 «logičko ILI» s akumulatorom neposredno (logičko množenje) CPI FE poređenje s akumulatorom neposredno ROTATE – INSTRUKCIJE ZA ROTIRANJE RLC 07 rotiraj akumulator u lijevo(množenje sa dva) ☻ RRC 0F rotiraj akumulator u desno RAL 17 rotiraj akumulator u lijevi preko bita prenosa ☻ RAR 1F decimalno podešavanje akumulatora ☻ SPECIJALS – SPECIJALNE INSTRUKCIJE CMA 2F komplementirati akumulator ☻ STC 37 postaviti bit prenosa ☻ CMC 3F komplementirati bit prenosa ☻ DAA 27 decimalno podešavanje akumulatora CONTROL – KONTROLNE INSTRUKCIJE EI FB omogućiti prekid DI F3 onemogućit prekid NOP 00 nema operacije HLT 76 zaustavljaje NEW 8085 INSTRUCTIONS – NOVE 8085 INSTRUKCIJE RIM 20 očitavanje maske prekida SIM 30 postavljanje maske prekida OZNAKE: SSS .- oznaka za izvorni registar DDD – oznaka za ciljni registar B=000, C=001, D=010, E=011, H=100, L=101, M(memorija)=110, A(akumulator)=111 VIŠA TEHNIČKA ŠKOLA

21


Instrukcije za MP Intel 8086

Programski model MP Intel 8086

VIŠA TEHNIČKA ŠKOLA

22


Instrukcije za MP Intel 8086

Blok šema mikroprocesora VIŠA TEHNIČKA ŠKOLA

23


Instrukcije za MP Intel 8086

Programski model MP Intel 8086

VIŠA TEHNIČKA ŠKOLA

24


Instrukcije za MP Intel 8086

Instrukcije za MP Intel 8086 

Registri mikroprocesora 8086 mogu biti 16-bitni i 8-bitni kao što je prikazano na programskim modelu procesora. Regisri ovoga mikroprocesora su:  Indikaorski registri  Registri opšte namjene  Programski brojač  Segmentni registri

VIŠA TEHNIČKA ŠKOLA

25


Instrukcije za MP Intel 8086 

Indikatorski registri sadrži informacije o stanju mikroprocesora i omogućava upravljanje njegovim radom. To je 16-bitni registar, sastoji se od indikatora (flegova-zastavica) koje se postavljaju u zavisnosti od rezultata izvršavanja pojedinihinstrukcija.      

C (carry) - sadrzi prenos ili pozajmicu sa pozicije sa najve´om tezinom nakon izvrs avanja aritmetickih operacija. P (parity) - ima vrednost 0 za neparnu parnost i 1 za parnu parnost. Parnost predstavlja broj jedinica u nekom binarnom broju. A (auxiliary carry) - sadrzi prenos ili pozajmicu prilikom izvrs avanja aritmetickih operacija između trećeg i četvrtog bita Z (zero) - govori da li je rezultat aritmeticke ili logicke operacije jednak nuli. Imavrednost 0 ako rezultat nije jednak nuli, a 1 ako jeste S (sign) - sadrzi predznak rezultata nakon aritmeticke ili logicke I (interrupt) - određuje nacin rada INTR (interrupt request) ulazne nozice mikroprocesora. Ukoliko je I=1, omogućen je pristup INTR nozici, tj mikroprocesor će reagovati na spoljasnje prekide. U protivnom, reagova će samo na NMI( nemaskirani prekid). VIŠA TEHNIČKA ŠKOLA

26


Instrukcije za MP Intel 8086 

D (direction) - određuje nacin promene DI i/ili SI registara prilikom izvrsavanja instrukcija koje rade sa stringovima. Instrukcija kojom se ovaj fleg postavlja na vrednost 1 je STD, a na 0 sa CLD. O (overflow) - Prekoracenje se javlja prilikom izvrs avanja aritmetickih operacija nadbrojevima sa predznakom. Njegova pojava oznacava da je vrednost rezultata izvan opsega koji se moze prikazati na datoj masini. Ova greška se javlja kada npr. prilikom sabiranja pozitivnih brojeva dobijemo negativan rezultat, ili obrnuto, kada sabiranjem negativnih brojeva dobijemo pozitivan broj. Dobijeni rezultat je tada netacan i postavljen fleg prekoracenja oznacava greš ku.

VIŠA TEHNIČKA ŠKOLA

27


Instrukcije za MP Intel 8086 

Registri opšte namjene, postoji osam šesnaestobitnih registara opšte namene. U svaki od njih moguće je smestiti proizvoljnu šesnaestobitnu vrednost. Osim toga, registrima AX,BX,CX i DX moze se pristupati i na nivou bajta, tj. mogu se koristiti i u radu sa osmobitnim operandima. (kompatibilnost sa MP 8086). Mogu se koristiti za upis ili citanje memorije, ili za smes taj operanada i rezultata aritmetickih i logickih operacija. Pored toga, pojedine registre iz ove grupe odlikuju specificne osobine, koje uticu na njihovu primenu. 

AX registar se često naziva i akumulator. Uvijek se koristi prilikom množenja i djeljenja i najefikasni je registar kada su upitanju aritmetičke, logičke i operacije kojima se vrši prenos. Bx registar se može koristit kao pokazivač ne memorijekse lokacije, drugim riječima šesnestobitna vrijednost smještena u BX registar moze da sluzi kao deo adresememorijske lokacije kojoj se pristupa. CX registar namenjen je za brojanje. Pos to su petlje uobicajeni elementi programa, u skupu instrukcija mikroprocesora 8086 postoji specijalna instrukcija LOOP, koja omogu´ ava brze i kompaktnije pisanje petlji. Ona u sus tini oduzima 1 od sadrzaja CX registra i "skace" ukoliko dobijeni rezultat nije jednak nuli. VIŠA TEHNIČKA ŠKOLA

28


Instrukcije za MP Intel 8086 

DX registar je jedini registar koji se moze koristiti za smes tanje IO adrese u instrukcijama IN i OUT. Pored toga, DX registar se koristi kao produzetak akumulatora kod mnozenja i deljenja. Na primer, kada mnozimo dva šesnaestobitna broja, gornjih s esnaest bita proizvoda su smešteni u DX registru, a donjih šesnaest su u AX registru.

VIŠA TEHNIČKA ŠKOLA

29


Instrukcije za MP Intel 8086

Indeksni registri  SI registar kao i BX registar, i ovaj registar se moze koristiti kao

pokazivac na memorijske lokacije. SI registar se cesto koristi kod instrukcija koje rade sa stringovima i najcesće sluzi kao pokazivac na lokacije sa kojih treba uzeti podatke (Source Index). DI registar je slican SI registru, jer se moze koristiti kao pokazivac na memoriju i što se koristi sa instrukcijama koje rade sa stringovima. Obicno se koristi kao pokazivac na memorijske lokacije na koje treba upisati podatke (Destination Index).

VIŠA TEHNIČKA ŠKOLA

30


Instrukcije za MP Intel 8086

Programski brojač Uu svakom trenutku sadrzi ofset memorijske lokacije na kojoj se nalazi instrukcija, koja treba da se izvrs i u narednom instrukcijskom ciklusu. Nakon s to se izvrs i jedna instrukcija, sadrzaj programskog brojaca se menja tako da pokazuje na instrukciju koja se nalazi na slede´oj memorijskoj adresi. Drugim recima, programski brojac se inkrementira. Ukoliko se izvrs ava instrukcija kao s to je poziv procedure ili skok, u sadrzaj programskog brojaca se postavlja nova vrednost. U ovaj registar se ne moze upisivati direktno, niti se iz njega moze direktno citati vrednost. U njega mogu da upisuju samo instrukcije skoka i to posredno.

VIŠA TEHNIČKA ŠKOLA

31


Instrukcije za MP Intel 8086

Segmentni registri Procesor 8086 moze da adresira 1MB (megabajt) memorije. Da bi to bio u stanju, potrebno je da ima dvadesetobitne adrese. Međutim, do sada smo videli da su pokazivacki registri ovog procesora velicine šesnaest bita. Zbog toga se adrese ovog mikroprocesora formiraju kombinovanjem sadrzaja šesnaestobitnih pokazivackih (ofset) registara i šesnaestobitnih segmentnih registara. U segmentne registre spadaju CS, DS, ES i SS registri.

VIŠA TEHNIČKA ŠKOLA

32


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.