Praktikumide juhendmaterjal

Size: px
Start display at page:

Download "Praktikumide juhendmaterjal"

Transcription

1 Arvo Toomsalu, 2017 TALLINNA TEHNIKAÜLIKOOL Arvutisüsteemide instituut Praktikumide juhendmaterjal IAY0520 Arvo Toomsalu 1

2 P1. Mikroprotsessor Intel 8085 (1976) Inteli käsustikupõhise arhitektuuriga mikroprotsessor 8085 sobib lihtsate skalaarsete Princetoni arhitektuurile põhinevate mikroprotsessorsüsteemide loomiseks. Mikroprotsessori tehnilisi näitajaid Tehnoloogia 3-mikroniline HCMOS tehnoloogia (6500 transistori); Protsessorisõna pikkus 8 kahendjärku; Protsessori taktsagedus 3 MHz, 5 MHz, 6 MHz; Protsessori käsutsükli kestus 1,3 µs, 0,8 µs, 0,67 µs; Protsessori toitepinge - +5V; Protsessori keskmine energiatarve 1,5W; Protsessorkiibi sisend-väljundviikude arv 40; Multiplekseeritav (ühitatud) aadressi (16-järguline) ja andmesiin (8-järguline); Otseadresseeritav mäluruum 2 16 aadressi (64K aadressi); Protsessorkiibis sisaldub taktigeneraator (vajalik on ainult kas väline kvartsresonaator, LC- või RC-lülitus); Katkestused 4 vektorkatkestust (RST 7.5, RST 6.5, RST 5.5, TRAP ja protsessoriga 8080 ühilduv maskitav katkestus INTR; Füüsilised pordid jadaport; Loogilised pordid 256 porti (juhitakse käskudega In ja Out); Registrid 12 adresseeritavat 8-järgulist registrit: Ühilduvus täielik programne ühilduvus mikroprotsessori 8080 käsustikuga. 2

3 Mikroprotsessori Intel 8085 struktuurskeem 3

4 Mikroprotsessorkiibi 8085 viikude ja neil olevate signaalide paigutus Mikroprotsessorkiipide 8085 taktsagedused 8085A, 8085AH 3 MHz 8085AH-2 5 MHz 8085AH-1 6 MHz Keraamilises korpuses mikroprotsessorkiip

5 Mikroprotsessori 8085 talitluse ajastamine Protsessori käsutsükkel //instruction cycle// hõlmab käsuvõttu ja käsu töötlust. Iga käsutsükkel koosneb ühest või enamast masinatsüklist //machine cycle//. Masinatsükkel käivitub iga kord kui protsessor alustab kas käsuvõttu, mälupöördust, sisend-väljundoperatsiooni, reageerib katkestusnõudlusele või tema sisemine 8-bitine andmesiin on jõudeolekus. Masinatsükkel sisaldab tüüpiliselt kolme takti //state// (T 1, T 2, T 3 ), välja arvatud käsuvõtuga seotud masinatsükkel, mis tavaliselt sisaldab neli (T 1, T 2, T 3, T 4 ), kusjuures takti (T4) ajal toimub käsuregistrisse (IR) sisestatud käsu käsukoodi dekodeerimine või mõnede käskude korral kuus takti (T 1, T 2, T 3, T 4, T 5, T 6 ). Takt on protsessori tegevuses väikseim ühik, mis on määratletud kui ajavahemik kahe teineteisele järgneva taktsignaali esifrondi vahel. Mikroprotsessori 8085 masinatsüklid (M i ) ja oleku- ja juhtsignaalide kodeerimine OF käsukoodi võtt; MR lugemine mälust; MW- salvestus mällu; IOR S/Vseadmest info lugemine; IOW S/V-seadmesse info salvestamine; INA katkestuse tuvastus; BI siini jõudeolek; IO/ M, S1, S2 juhtsignaalid, mis näitavad protsessori olekut; RD juhtsignaal, mis näitab lugemisoperatsiooni toimumist; WR juhtsignaal, mis näitab salvestusoperatsiooni toimumist; INTA juhtsignaal, mis näitab, et katkestusnõudlus on protsessoris vastu võetud; TS siini kõrgeimpetantsiline //three-sate// olek (Z-olek). 5

6 Mikroprotsessori 8085 ajaline talitlus käskude täitmisel Masinatsükkel M1 Masinatsükkel M2 Masinatsükkel M3 Käsuvõtt Lugemine Salvestus Käsuvõtt mälust mälust S/V-porti CLK taktsignaal; A 8 -A 15 mälu aadressisõna kõrgemad (vanemad) 8 järku, mis väljastatakse läbi ühesuunalise aadressipuhvi; AD 0-7 multipleksitava aadressisõna (aadressi madalamad (nooremad) kaheksa järku A 0 A 7 ) või andmesõna (D 0 -D 7 ), mis läbivad kahesuunalise andme/aadressipuhvri; ALE juhtsignaal, mis lubab väljastatud aadressisõna salvestamist kiibivälises aadressiregistris; RD lugemissignaal; WR salvestussignaal; IO/ M juhtsignaal, mis määrab kindlaks, kas operatsioon toimub sisend-väljundkanalis (signaali kõrge nivoo) või mäluga (signaali madal nivoo). Signaali kasutatakse koos kas signaaliga RD või signaaliga WR; M 1, M 2, M 3 masinatsüklid M 1, M 2 ja M 3 ; PC H, PC L Käsuloenduri olek, vastavalt käsuloenduri kõrgemad 8 järku (PC H ) ja käsuloenduri madalamad 8 järku (PC L ). Pärast protsessori lähtestust (signaali RESET abil) salvestatakse käsuloendurisse kood PC:= 0000h, st andme-, aadressi- ja juhtsiini liinid on kõrgeimpetantsilises olekus (TS) ja protsessori sisemiste registrite (sh lipuregister) olekud ei ole määratud (olek X ). 6

7 Mikroprotsessori 8085 programmistimudel Mikroprotsessoris saab programselt moodustada 16-bitiseid registripaare BC, DE ja HL, mida kasutatakse 16-bitiste andmete säilitamiseks. Protsessori suhtlusel mäludega salvestatakse registripaari HL pöördutava mälupesa 16-bitine aadressikood. Programmistimudelis ei kajastu kasutajale programselt mitte juhitav-jälgitavad registrid: Temp, W, Z 8-bitised variregistrid. Registrites W ja Z säilitatakse mõningate operatsioonide (käsud XCHG, XTHL, CALL) täitmisel andmeid; IR 8-bitine käsuregister; Soovitatav kirjandus 1. Ajay Wadhwa. Microprocessor Architecture, Programming and Interfacing. PHI Learning Private Ltd., New Dehli, K. U. Kumar, B. S. Umashan. The 8085 Microprocessor, Architecture, Programming and Interfacing: Dorling Kindersley Pvt. Ltd., N. K. Srinath Microprocessor: Programming and Interfacing. Prentice-Hall of India Private Ltd., Ramesh S. Gaonkar. Microprocessor Architecture, Programming, and Applications with the Fifth Ed. Prentice Hall, Võrgumaterjale /8085 Assembly Language Programming Tutorial on Introduction to 8085 Architecture and Programming. 7

8 Lisa Mõisteid Akumulaator arvuti aritmeetika-loogikaseadme eriregister kuhu tavaliselt talletatakse täidetava tehte üks operandidest, mis seejärel asendatakse tehte tulemiga. Aritmeetika-loogikaseade ( ~üksus, ALS) protsessoris aritmeetilisi ja loogikalisi operatsioone sooritav seade. Käsuloendur protsessoris täidetava või täidetavale käsule järgneva käsu aadressi sisaldav eriregister. Käsuregister protsessori eriregister, mis sisaldab täitmisel olevat käsku. Käsuregister on otseselt ühendatud lülitustega, mis interpreteerivad käsku. Lipuregister protsessori eriotstarbeline register, mille kahendjärgud (bitid) seatakse vastavalt etteantud tingimustele, mis võivad täituda käskude täitmise ajal. Pinuviit protsessori eriregister, mis sisaldab pinutipus sisalduva andmeelemendi aadressi. Protsessor arvuti funktsionaalüksus, mis interpreteerib ja täidab käske. Protsessor koosneb vähemalt juhtseadmest ja aritmeetika-loogikaseadmest. Port välisseadmete liitmik protsessori siinil. Puhver (puhvermälu) eriotstarbeline mäluseade või mäluala, mis võimaldab andmete ajutise salvestuse abil vahetada andmeid kahe erineva edastusparameetritega funktsionaalüksuse (seadme) vahel. Tüüpiliselt kasutatakse registripõhiseid puhvreid (nt andmepuhver, aadressipuhver) andmevahetusel põhimälu ja protsessori või protsessori ja välisseadmete vahel. Põhimälu (sisemälu) arvuti mälusüsteemi osa, millesse tuleb laadida käsud ja andmed enne nende järgnevat täitmist (töötlust). Registrikogum (registermälu) üldjuhul ühtse struktuuriga registrite kogum protsessoris. Siin lülitus ja liidestus (juhtmestik), mis ühendab arvuti erinevaid komponente (sõlmi, funktsionaalseid üksusi), tagades nendevahelise infovahetuse. Virtuaalne välisseade välisseade, mille poole saab pöörduda, kuid mida füüsiliselt ei ole olemas. Näiteks võib rakendusprogramm pöörduda läbi jadapordi printeri poole, mida aga tegelikult pole pordiga ühendatud. Printeri talitlust imiteerib jadaporti ühendatud teine arvuti. Välissalvesti mäluseade, millele on protsessoril juurdepääs ainult sisend-väljundkanalite kaudu. Üldregister registrikogumi tavaliselt ilmutatult adresseeritav register, mida saab kasutada mitmesuguseks otstarbeks. 8

9 P2. Mikroprotsessori 8085 käsustik I Programmi jõudlus See kuidas programmid on koostatud, mõjutab otseselt arvutisüsteemi jõudlust: 1 Jõudlus =. Töötlusaeg Programmi koostamisel tuleb tagada, et see oleks kiire ja talitleks korrektselt kõikides rakendustingimustes. Efektiivselt töötava programmi koostamisel on oluline, et: oleksid valitud õiged algoritmid ja andmestruktuurid, programmi lähtekood peab olema selline, et kompilaator suudaks seda transleerida efektiivseks objektkoodiks. Tavaliselt iseloomustatakse programme kahe üldise näitajaga koodi mahukus (programmiridade arv ehk LOC //lines of program//) ja koodi keerukus. Kui lähtekood on assembleris, siis sellise koodi mahukust lihtne mõõta, sest selles vastab üks programmirida ühele käsule. Programmi jõudluse maksimeerimiseks, peavad nii programmist kui ka kompilaator arvesse võtma konkreetse arvuti iseärasusi, eeskätt seda, kuidas arvutis toimub käskude töötlemine ja täidetavate operatsioonide ajalisi parameetrid. Programmi jõudlus sõltub selle koostamisel kasutatud algoritmist, programmeerimiskeelest, translaatorist ja arvuti arhitektuursest lahendusest. Jõudluse komponent Mida jõudluse komponent mõjutab Algoritm Programmeerimiskeel Kompilaator Käsustiku arhitektuur (ISA) Käskude arvu programmis Kaudselt keskmist taktide arvu ühe käsu kohta ehk CPI-d Käskude arvu programmis CPI-d Käskude arvu programmis CPI-d Käskude arvu programmis CPI-d Taktsagedust 9

10 Mikroprotsessoris saab kasutada järgmiseid andmeformaate: 1. ASCII - koodi 8-bitised tärgid; 2. BCD ehk kahend-kümnendkoodi 4-bitised numbrid (0 kuni 9); 3. Märgita 8-bitised täisarvud (00h kuni ffh); 4. Märgiga 8-bitised täisarvud Märgiga arvude korral kasutatakse andmesõna kõrgeimat kaheksandat järku (D7) märgijärguna. Ülejäänud andmesõna järgud (D6 kuni D0) esindavad andmebitte. Positiivsete arvude korral omistatakse järgule D7 kahendväärtuse 0, st positiivseid arve kujutatakse vahemikus 00h kuni 7fh, negatiivsete arvude korral aga D7:=1, st negatiivseid arve kujutatakse vahemikus 80h kuni ffh. Negatiivseid arve esitatakse protsessoris täiendkoodis. 10

11 Protsessori 8085 käsuklassid Käsud andmete teisalduseks Käsud aritmeetiliste operatsioonide läbiviimiseks Loogiliste operatsioonide käsud Juhtimis-, pinu- ja sisend-väljundoperatsioonide käsud Adresseerimise viisid Mikroprotsessoris 8085 rakendatakse nelja adresseerimisviisi: Vahetu adresseerimine (operand) //immediate// Käsus sisaldub operandi väärtus. ADI data (A) (A)+(byte2) [C6; byte2 (operand)] Otsene adresseerimine (otseaadress) //direct// Käsu 2. (aadressi noorem (madalam) bait) ja 3. baidis (aadressi vanem (kõrgem) bait) sisaldub mälupesa aadress, kus operandi väärtus paikneb. LHLD addr (L) ((byte3)(byte2) [2A; byte2 (operandi aadressi nooremad järgud); byte3 (operandi aadressi vanemad järgud)] (H) ((byte3)(byte2)+1) Fikseeritud adresseerimine (registeraadress) //register// Käsk määrab registri või registripaari, kus operandi väärtus asub. ADD r (A) (A)+(r) [80; (operand asub registris r=b)] Kaudne adresseerimine (register-kaudadresseerimine) //register indirect// Käsus näidatakse registripaar, kuhu on salvestatud mälupesa aadress, milles paikneb operand. Mälupesa adresseerimine toimub nagu see on näidatud kolmebaidise käsu üldvormingus. Näiteks registripaari HL korral on mälupesa aadressi vanem aadressibait registris H ja noorem bait registris L. ADD M (A) (A)+((H)(L)) [86; (mälupesa aadress, kus paikneb operand, sisaldub registripaaris HL] 11

12 Lipuregister Lipuregister sisaldab viite ühebitist lippu S, Z, AC, P ja CY. S märk //sign// Kui operatsiooni tulemi vanima järgu väärtus on 1 (D7:=1), siis S:=1, vastasel korral S:=0. Märgi lippu kasutatakse opereerimisel märgiga arvudega. Märgita arvude korral lippu S ei kasutata. Z null //zero// Kui operatsiooni tulemi väärtus on 0, siis Z:=1, vastasel korral Z:=0. AC - abiülekanne //auxiliary carry// Kui käsu täitmisel esineb ülekanne operandi (tulemi) 3-st järgust 4-sse järku (D3 D4), siis AC:=1, vastasel korral AC:=0. P paarsus //parity// Kui operatsiooni tulemi väärtus mod2 on võrdne 0-ga, siis P:=1, vastasel korral P:=0. CY ülekanne //carry// Kui operatsiooni tulemusena tekib tulemi vanimast järgust (D7) ülekanne (liitmise operatsioon) või vanimas järgus tekib laenu //borrow// vajadus (lahutamise operatsioon), siis CY:=1, vastasel korral CY:=0. Lippude kodeering tingimuslikes siirdekäskudes Tingimus Kahendkood CCC NZ mitte null (Z: = 0) 000 Z null (Z:= 1) 001 NC ülekanne puudub (CY:=0) 010 C ülekanne (CY:=1) 011 PO paaritu (P:=0) 100 PE paaris (P:=1) 101 P pluss (S:=0) 110 M miinus (S:=1)

13 Mikroprotsessori 8085 käskude kirjeldused Käsustiku kirjelduses kasutatud tähistused PC käsuloendur SP pinuviit acc akumulaatorregister addr 16-bitine aadressisõna data 8-bitine operand data bitine andmesõna port 8-bitine pordi aadress byte 2 käsu teine bait byte 3 käsu kolmas bait r, r1, r2 register (A, B, C, D, E; H või L) rl register, mis sisaldab 16-bitise andmesõna madalamaid järke rh register, mis sisaldab 16-bitise andmesõna kõrgemaid järke r m andmebiti järk (number) registris Z nulli lipp S märgi lipp P paarsuse lipp CY ülekande lipp AC abiülekande lipp n restardi (algkäivituse) number (n = 0,..., 7) NNN restardi numbri kahendkood (NNN = 000,..., 111) - inversioon & - konjunktsioon v disjunktsioon + - liitmine - - lahutamine Registrite (r) koodid DDD sihtregister; SSS allikregister DDD või SSS kahendkood Register 111 A 000 B 001 C 010 D 011 E 100 H 101 L 13

14 Registripaaride (rp) koodid Registripaaris osundab esimese registri mnemooniline tähis vanemaid andmejärke sisaldavat registrit (registrid B, D, H) ja teise registri mnemooniline tähis osundab nooremaid andmejärke sisaldavale registrile (registrid C, E, L). B-C madalamad (nooremad) andmejärgud kõrgemad (vanemad) andmejärgud rp kahendkood Registripaar 00 BC 01 DE 10 HL 11 SP ehk PSW Programmi olekusõna //PSW Program Status Word// 15 A F 7 0 Programmi olekusõna esitatakse registripaarina, mille kõrgemad kaheksa bitti sisaldavad akumulaatoris (A) sisalduva koodi ja madalamad kaheksa bitti esitavad lipuregistri (F) lippude olekuid. Programmi olekusõna juhitakse käskudega POP PSW ja PUSH PSW. Käskude kirjeldustes on käsukoodid esitatud kuueteistkümnendkoodis. 14

15 Andmeedastuse käsud MOV r1, r2 Edastus registrist (Move Register) (r1) (r2) Allikregistris (r2) sisalduv kood edastatakse sihtregistrisse (r1). Andmeedastuse käskude täitmisel säilivad allikregistritesse salvestatud andmed muutumatuna. mov r1, r2 0 1 D D D S S S Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: - Käsukoodide variandid Sihtregister (r1) Allikregister (r2) B C D E H L A B C A 4B 4C 4D 4F D E A 5B 5C 5D 4F H L A 6B 6C 6D 6F A A 7B 7C 7D 7F MOV r, M Edastus mälust (Move from memory) (r) ((H)(L)) Mälupesas, mille aadress asub registripaaris HL, sisalduv kood edastatakse registrisse r. mov r, m 0 1 D D D Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: - Käsukoodide variandid B C D E H L A 46 4E 56 5E 66 6E 7E 15

16 MOV M, r Salvestus mällu (Move to memory) ((H)(L)) (r) Registris r sisalduv kood edastatakse mälupessa, mille aadress asub registripaaris HL. mov m, r S S S Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: - Käsukoodide variandid B 70 C 71 D 72 E 73 H 74 L 75 A 77 MVI r, data Operandi salvestus (Move Immediate) (r) (bait 2) Käsu teise baidi (operandi) väärtus edastatakse registrisse r. mvi r, data D D D operand Masinatsükleid: 2 Takte: 7 Adresseerimine: operand Lipud: - Käsukoodide variandid Register Käsukood B 06 C 0E D 16 E 1E H 26 L 2E A 3E 16

17 MVI M, data Operandi salvestus mällu (Move to memory immediate) ((H)(L)) (bait 2) Käsu teise baidi (operandi) väärtus edastatakse mälupessa, mille aadress asub registripaaris HL. mvi m, data operand Masinatsükleid: 3 Takte: 10 Adresseerimine: operand / kaudaadress Lipud: - Käsukood: 36 LXI rp, data bitise operandi edastus registripaari (Load register pair immediate) (rh) (bait 3) (rl) (bait 2) Käsu kolmas bait (operandi kõrgemad järgud) edastatakse registripaari rp kõrgematesse järkudesse (rh) ja käsu teine (operandi madalamad järgud) edastatakse registripaari rp madalamatesse järkudesse (rl). lxi rp, data r p operandi madalamad järgud operandi kõrgemad järgud Masinatsükleid: 3 Takte: 10 Adresseerimine: operand Lipud: - Käsukoodide variandid Registripaar Käsukood BC 01 DE 11 HL 21 SP 31 17

18 LDA addr Operandi edastus akumulaatorisse (Load Accumulator direct) (A) ((bait 3)(bait 2) Mälupesa, mille aadress on määratud käsu kolmanda (aadressi kõrgemad järgud) ja teise (aadressi madalamad järgud) baidi väärtustega, sisalduv kood edastatakse akumulaatorisse (A). lda addr aadressi madalamad järgud aadressi kõrgemad järgud Masinatsükleid: 4 Takte: 13 Adresseerimine: otseaadress Lipud: - Käsukood: 3A STA addr Akumulaatori sisu salvestus mällu (Store Accumulator direct) ((bait3)(bait 2) (A) Akumulaatoris (A) sisalduv kood edastatakse mälupessa, mille aadress on määratud käsu kolmanda (aadressi kõrgemad järgud) ja teise (aadressi madalamad järgud) baidi väärtustega. sta addr aadressi madalamad järgud aadressi kõrgemad järgud Masinatsükleid: 4 Takte: 13 Adresseerimine: otseaadress Lipud: - Käsukood: 32 18

19 P3. Mikroprotsessori 8085 käsustik II LHLD addr Mälupesa sisu edastus registripaari HL (Load H and L direct) (L) ((bait 3)(bait 2)) (H) ((bait 3)(bait 2) + 1) Mälupesas, mille aadress on määratud käsu kolmanda (aadressi kõrgemad järgud) ja teise (aadressi madalamad järgud) baidi väärtustega, sisalduv kood edastatakse registrisse L. Antud aadressile järgneva aadressiga mälupesas sisalduv kood edastatakse registrisse H. lhld addr aadressi madalamad järgud aadressi kõrgemad järgud Masinatsükleid: 5 Takte: 16 Adresseerimine: otseaadress Lipud: - Käsukood: 2A SHLD addr Registripaari HL sisu salvestus mällu (Store H and L direct) ((bait 3 (bait 2)) (L) ((bait 3)(bait 2) + 1) (H) Registris L sisalduv kood edastatakse mälupessa, mille aadress on määratud käsu kolmanda (aadressi kõrgemad järgud) ja teise (aadressi madalamad järgud) baidi väärtustega. Registris H sisalduv kood edastatakse antud aadressile järgneva aadressiga mälupessa. shld addr aadressi madalamad järgud aadressi kõrgemad järgud Masinatsükleid: 5 Takte: 16 Adresseerimine: otseaadress Lipud: - Käsukood: 22 19

20 LDAX rp Mälupesa, mille aadress on registripaaris rp, sisu salvestus akumulaatorisse ((Load accumulator indirect) (A) ((rp)) Mälupesas, mille aadress asub registripaaris rp, sisalduv kood edastatakse akumulaatorisse (A). Adresseerimiseks saab kasutada üksnes registripaare BC ja DE. ldax rp 0 0 r p Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: - Käsukoodide variandid Registripaar Käsukood BC 0A DE 1A STAX rp Akumulaatori sisu salvestus mälupessa, mille aadress asub registripaaris rp (Store accumulator indirect) ((rp)) (A) Akumulaatoris (A) sisalduv kood edastatakse mälupessa mille aadress asub registripaaris rp. Adresseerimiseks saab kasutada üksnes registripaare BC ja DE. stax rp 0 0 r p Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: - Käsukoodide variandid Registripaar Käsukood BC 02 DE 12 20

21 XCHG Registripaari HL sisu vahetus registripaariga DE (Exchange H and L with D and E) (H) (D) (L) (E) Registripaarides HL ja DE sisalduvad koodid vahetatakse omavahel. xchg Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: - Käsukood: EB Aritmeetikakäsud ADD r Liita akumulaatori ja registri sisud (Add Register) (A) (A) + (r) Registris r sisalduvale koodile liidetakse akumulaatoris (A) sisalduv kood. Tulem salvestatakse akumulaatorisse. add r S S S Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z, S,P, CY, AC Käsukoodide variandid Register Käsukood B 80 C 81 D 82 E 83 H 84 L 85 A 87 21

22 ADD M Liita akumulaatori ja mälupesa sisud (Add memory) (A) (A) + ((H)(L)) Mälupesas, mille aadress asub registripaaris HL, sisalduvale koodile liidetakse akumulaatoris (A) sisalduv kood Tulem salvestatakse akumulaatorisse. add m Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: Z; S; P; CY; AC Käsukood: 86 ADI data Liita akumulaatori sisule operand (Add immediate) (A) (A) + (bait 2) Käsu teise baidi väärtus liidetakse akumulaatoris (A) sisalduvale koodile. Tulem salvestatakse akumulaatorisse. adi data operand Masinatsükleid: 2 Takte: 7 Adresseerimine: operand Lipud: Z, S; P; CY, AC Käsukood: C6 ADC r Liita akumulaatori sisule registri ja ülekandelipu sisud (Add Register with carry) (A) (A) + (r) + (CY) Registris r sisalduv kood ja ülekandelipu (CY) väärtus liidetakse akumulaatoris (A) sisalduvale koodile. Tulem salvestatakse akumulaatorisse. 22

23 adc r S S S Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z; S; P; CY; AC Käsukoodide variandid Register Käsukood B 88 C 89 D 8A E 8B H 8C L 8D A 8F ADC M Liita akumulaatori sisule mälupesa ja ülekandelipu sisud (Add memory with carry) (A) (A) + ((H)(L)) + (CY) Mälupesas, mille aadress asub registripaaris HL, sisalduv kood ja ülekandelipu väärtus liidetakse akumulaatoris (A) sisalduvale koodile. Tulem salvestatakse akumulaatorisse. adc m Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: Z; S; P; CY; AC Käsukood: 8E ACI data Liita akumulaatori sisule operand ja ülekandlipu sisu (Add immediate with carry) (A) ((A) + (bait 2) + (CY) Käsu teise baidi (operand) ja ülekandelipu (CY) väärtused liidetakse akumulaatoris (A) sisalduvale koodile. Tulem salvestatakse akumulaatorisse. 23

24 aci data operand Masinatsükleid: 2 Takte: 7 Adresseerimine: operand Lipud: Z; S; P; CY; AC Käsukood: CE SUB r Akumulaatori sisust registri sisu lahutamine (Subtract Register) (A) (A) (r) Registris r sisalduv kood lahutatakse akumulaatoris (A) sisalduvast koodist. Tulem salvestatakse akumulaatorisse. sub r S S S Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z; S; P; CY; AC Käsukoodide variandid Register Käsukood B 90 C 91 D 92 E 93 H 94 L 95 A 97 SUB M Akumulaatori sisust mälupesa sisu lahutamine (Subtract memory) (A) (A) ((H)(L)) Mälupesas, mille aadress asub registripaaris HL, sisalduv kood lahutatakse akumulaatoris (A) sisalduvast koodist. Tulem salvestatakse akumulaatorisse. 24

25 sub m Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: Z; S; P; CY; AC Käsukood: 96 SUI data Akumulaatori sisust operandi lahutamine (Subtract immediate) (A) (A) (bait 2) Käsu teise baidi (operand) väärtus lahutatakse akumulaatoris (A) sisalduvast koodist. Tulem salvestatakse akumulaatorisse. sui data operand Masinatsükleid: 2 Takte: 7 Adresseerimine: operand Lipud: Z; S; P; CY; AC Käsukood: D6 SBB r Akumulaatori sisust lahutada registris ja ülekandelipus olevad väärtused (Subtract Register with borrow) (A) (A) - (r) (CY) Registris r sisalduv kood ja ülekandelipu (CY) sisu lahutatakse akumulaatoris (A) sisalduvast koodist. Tulem salvestatakse akumulaatorisse. sbb r S S S Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z; S; P; CY; AC 25

26 Käsukoodide variandid Register Käsukood B 98 C 99 D 9A E 9B H 9C L 9D A 9F SBB M Akumulaatori sisust mälupesa ja ülekandelipus olevad väärtused (Subtract memory with borrow) (A) (A) ((H)(L)) (CY) Mälupesas, mille aadress asub registripaaris HL, sisalduv kood ja ülekandelipu (CY) väärtus lahutatakse akumulaatoris (A) sisalduvast koodist. Tulem salvestatakse akumulaatorisse. sbb m Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: Z; S; P; CY; AC Käsukood: 9E SBI data Akumulaatori sisust operandi ja ülekande lipu väärtused (Subtract immediate with borrow) (A) (A) (bait 2) (CY) Käsu teise baidi (operand) ja ülekandlipu (CY) väärtused lahutatakse akumulaatoris (A) sisalduvast koodist. Tulem salvestatakse akumulaatorisse. sbi data operand Masinatsükleid: 2 Takte: 7 Adresseerimine: operand Lipud: Z; S; P; CY; AC Käsukood: DE 26

27 INR r Registri sisu inkrementeerimine (Increment Register) (r) (r) + 1 Registris r sisalduvat koodi inkrementeeritakse 1 võrra. inr r 0 0 D D D Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z; S; P; AC Käsukoodide variandid Register Käsukood B 04 C 0C D 14 E 1C H 24 L 2C A 3C INR M Mälupesa sisu inkrementeerimine (Increment memory) ((H)(L)) ((H)(L)) + 1 Mälupesas, mille aadress asub registripaaris HL, sisalduvat koodi inkrementeeritakse 1 võrra. inr m Masinatsükleid: 3 Takte: 10 Adresseerimine: kaudaadress Lipud: Z; S; P; AC Käsukood: 34 DCR r Registri sisu dekrementeerimine (Decrement Register) (r) (r) - 1 Registris r sisalduvat koodi dekrementeeritakse 1 võrra. 27

28 dcr r 0 0 D D D Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z; S; P; AC Käsukoodide variandid Register Käsukood B 05 C 0D D 15 E 1D H 25 L 2D A 3D DCR M Mälupesa sisu dekrementeerimine (Decrement memory) ((H)(L)) ((H)(L)) - 1 Mälupesa, mille aadress asub registripaaris HL, sisalduvat koodi dekrementeeritakse 1 võrra. dcr m Masinatsükleid: 3 Takte: 10 Adresseerimine: kaudaadress Lipud: Z; S; P; AC Käsukood: 35 INX rp Registripaari sisu inkrementeerimine (Increment register pair) (rh)(rl) (rh)(rl) +1 Registripaaris rp sisalduvat koodi inkrementeeritakse 1 võrra. inx rp 0 0 r p

29 Masinatsükleid: 1 Takte: 6 Adresseerimine: registeraadress Lipud: - Käsukoodide variandid Registripaar Käsukood BC 03 DE 13 HL 23 SP 33 DCX rp Registripaari sisu dekrementeerimine (Decrement register pair) (rh)(rl) (rh)(rl) 1 Registripaaris rp sisalduvat koodi dekrementeeritakse 1 võrra. dcx rp 0 0 r p Masinatsükleid: 1 Takte: 6 Adresseerimine: registeraadress Lipud: - Käsukoodide variandid Registripaar Käsukood BC 0B DE 1B HL 2B SP 3B DAD rp Registripaari sisu liitmine registripaarile HL (Add register pair to H and L) (H)(L) (H)(L) + (rh)(rl) Registripaaris HL sisalduvale koodile liidetakse registripaaris rh, rl sisalduv kood. Tulem salvestatakse registripaaris HL. dad rp 0 0 r p Masinatsükleid: 3 29

30 Takte: 10 Adresseerimine: registeraadress Lipud: CY Käsukoodide variandid Registripaar Käsukood BC 09 DE 19 HL 29 SP 39 DAA Akumulaatoris oleva koodist kahend-kümnendkoodiarvu moodustamine (Decimal adjust Accumulator) Akumulaatoris (A) sisalduvast 8-bitisest binaarkoodist moodustatakse kaks 4-bitist kahend-kümnendkoodi arvu. daa Masinatsükleid: 1 Takte: 4 Lipud: Z; S; P; CY; AC Käsukood: 27 30

31 P4. Mikroprotsessori 8085 käsustik III Loogikaoperatsioonide käsud ANA r Akumulaatori ja registri sisude konjunktsioon (AND register) (A) (A) & (r) Registris r sisalduva koodi ja akumulaatoris (A) sisalduva koodi loogiline korrutamine Tulem salvestatakse akumulaatorisse. ana r S S S Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z; S; P; CY; AC Käsukoodide variandid Register Käsukood B A0 C A1 D A2 E A3 H A4 L A5 A A7 ANA M Akumulaatori ja mälupesa sisude konjunktsioon (AND memory) (A) (A) & ((H)(L)) Mälupesas, mille aadress asub registripaaris HL, sisalduva koodi ja akumulaatoris (A) sisalduva koodi loogiline korrutamine. Tulem salvestatakse akumulaatorisse. ana m Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: Z; S; P; CY; AC Käsukood: A6 31

32 ANI data Akumulaatori sisu ja operandi konjunktsioon (AND immediate) (A) (A) & (bait 2) Käsukoodi teises baidi (operand) väärtuse ja akumulaatoris (A) sisalduva koodi loogiline korrutamine. Tulem salvestatakse akumulaatorisse. ani data operand Masinatsükleid: 2 Takte: 7 Adresseerimine: operand Lipud: Z; S; P; CY; AC Käsukood: E6 XRA r Akumulaatori ja registri sisude välistav-või (Exclusive OR Register) (A) (A) ө (r) Registris r sisalduva koodi ja akumulaatoris (A) sisalduva koodi välistav-või. Tulem salvestatakse akumulaatorisse. xra r S S S Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z; S; P; CY; AC Käsukoodide variandid Register Käsukood B A8 C A9 D AA E AB H AC L AD A AF 32

33 XRA M Akumulaatori ja mälupesa sisude välistav-või (Exclusive OR memory) (A) (A) ө ((H)(L)) Mälupesas, mille aadress asub registripaaris HL, sisalduva koodi ja akumulaatoris (A) sisalduva koodi välistav-või. Tulem salvestatakse akumulaatorisse. xra m Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: Z; S; P; CY; AC Käsukood: AE XRI data Akumulaatori sisu ja operandi välistav-või (Exclusive OR immediate) (A) (A) ө (bait 2) Käsu teise baidi (operand) väärtuse ja akumulaatoris (A) sisalduva koodi välistav-või. Tulem salvestatakse akumulaatorisse. xri data operand Masinatsükleid: 2 Takte: 7 Adresseerimine: operand Lipud: Z; S; P; CY; AC Käsukood: EE ORA r Akumulaatori ja registri sisude disjunktsioon (OR Register) (A) (A) v (r) Registris r sisalduva koodi ja akumulaatoris (A) sisalduva koodi loogiline liitmine. Tulem salvestatakse akumulaatorisse. ora r S S S 33

34 Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z; S; P; CY; AC Käsukoodide variandid Register Käsukood B B0 C B1 D B2 E B3 H B4 L B5 A B7 ORA M Akumulaatori ja mälupesade sisude disjunktsioon (OR memory) (A) (A) v ((H)(L)) Mälupesas, mille aadress asub registripaaris HL, sisalduva koodi ja akumulaatoris (A) sisalduva koodi loogiline liitmine. Tulem salvestatakse akumulaatorisse. ora m Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: Z; S; P; CY; AC Käsukood: B6 ORI data Akumulaatori sisu ja operandi disjunktsioon (OR immediate) (A) (A) v (bait 2) Käsu teises baidis (operand) sisalduva koodi ja akumulaatoris (A) sisalduva koodi loogiline liitmine. Tulem salvestatakse akumulaatorisse. ori data operand 34

35 Masinatsükleid: 2 Takte: 7 Adresseerimine: operand Lipud: Z; S; P; CY; AC Käsukood: F6 CMP r Akumulaatori sisu võrdlus registri sisuga (Compare Register) (A) (r) Registris r sisalduv kood lahutatakse akumulaatoris (A) sisalduvast koodist. Akumulaatori algne sisu säilib, kuid lahutamise tehte tulemusena väärtustatakse lipud. Z:=1 kui (A) = (r) ja CY:=1 kui (A)<(r). cmp r S S S Masinatsükleid: 1 Takte: 4 Adresseerimine: registeraadress Lipud: Z; S; P; CY; AC Käsukoodide variandid Register Käsukood B B8 C B9 D BA E BB H BC L BD A BF CMP M Akumulaatori sisu võrdlus mälupesa sisuga (Compare memory) (A) ((H)(L)) Mälupesas, mille aadress asub registripaaris HL, sisalduv kood lahutatakse akumulaatoris (A) sisalduvast koodist. Akumulaatori algne sisu säilib, kuid lahutamise tehte tulemusena väärtustatakse lipud. Z:=1 kui (A) = ((H)(L)) ja CY:=1 kui (A)<((H)(L)). 35

36 cmp m Masinatsükleid: 2 Takte: 7 Adresseerimine: kaudaadress Lipud: Z; S; P; CY; AC Käsukood: BE CPI data Akumulaatori sisu võrdlus operandiga (Compare immediate) (A) (bait 2) Käsu teise baidi (operand) väärtus lahutatakse akumulaatoris (A) sisalduvast koodist. Akumulaatori algne sisu säilib, kuid lahutamise tehte tulemusena väärtustatakse lipud. Z:=1 kui (A) = (operand) ja CY:=1 kui (A)<(operand). cpi data operand Masinatsükleid: 2 Takte: 7 Adresseerimine: operand Lipud: Z; S; P; CY; AC Käsukood: FE RLC Nihe vasakule (Rotate left) (A n+1 ) (A n ); (A 0 ) (A 7 ) (CY) (A 7 ) Akumulaatoris (A) sisalduvat koodi nihutatakse vasakule ühe positsiooni võrra. rlc Masinatsükleid: 1 Takte: 4 Lipud: CY Käsukood: 07 36

37 RRC Nihe paremale (Rotate right) (A n ) (A n+1 ); (A 7 ) (A 0 ) (CY) (A 0 ) Akumulaatoris (A) sisalduvat koodi nihutatakse paremale ühe positsiooni võrra. rrc Masinatsükleid: 1 Takte: 4 Lipud: CY Käsukood: 0F RAL Nihe vasakule läbi ülekandelipu (Rotate left through carry) (A n+1 ) (A n ); (CY) (A 7 ) (A 0 ) (CY) Akumulaatoris (A) sisalduvat koodi nihutatakse, läbi ülekandelipu (CY), ühe positsiooni võrra vasakule. ral Masinatsükleid: 1 Takte: 4 Lipud: CY Käsukood: 17 RAR Nihe paremle läbi ülekandelipu (Rotate right through carry) (A n ) (A n+1 ); (CY) (A 0 ) (A 7 ) (CY) Akumulaatoris (A) sisalduvat koodi nihutatakse, läbi ülekandelipu (CY), ühe positsiooni võrra paremale. rar Masinatsükleid: 1 Takte: 4 Lipud: CY Käsukood: 1F 37

38 CMA Akumulaatori sisu inversioon (Complement accumulator) (A) ( A) Akumulaatoris (A) sisalduv kood inverteeritakse. cma Masinatsükleid: 1 Takte: 4 Lipud: - Käsukood: 2F CMC Ülekandlipu sisu inversioon (Complement carry) (CY) ( CY) Ülekandlipu (CY) väärtus inverteeritakse. cmc Masinatsükleid: 1 Takte: 4 Lipud: CY Käsukood: 3F STC Ülekandelipu väärtustamine (Set carry) (CY) 1 Ülekandlipu (CY) väärtuseks omistatakse 1. stc Masinatsükleid: 1 Takte: 4 Lipud: CY Käsukood: 37 38

39 Hargnemiskäsud JMP addr Sundsiire (Jump) (PC) (bait 3)(bait 2) Juhtimine (PC kood) antakse üle käsule, mille aadress on määratud käsu kolmanda (aadressi kõrgemad järgud) ja teise (aadressi madalamad järgud) baitide väärtustega. jmp addr aadressi madalamad järgud aadressi kõrgemad järgud Masinatsükleid: 3 Takte: 10 Adresseerimine: operand Lipud: - Käsukood: C3 JC Tingimussiire (Conditional jump) Kui (CCC), siis (PC) (bait 3)(bait 2) Kui valitud tingimus on täidetud, siis juhtimine (PC kood) antakse üle käsule, mille aadress on määratud käsu kolmanda (aadressi kõrgemad järgud) ja teise (aadressi madalamad järgud) baidi väärtustega. jc addr 1 1 C C C aadressi madalamad järgud aadressi kõrgemad järgud Masinatsükleid: 2/3 Takte: 7/10 [7 takti kui siirde tingimus ei ole täidetud / 10 takti kui siirde tingimus on täidetud] Adresseerimine: operand Lipud: - 39

40 Käsukoodide variandid Mnemoonika Tingimus Käsukood JC CY=1 DA JNC CY=0 D2 JP S=0 F2 JM S=1 FA JPE P=1 EA JPO P=0 E2 JZ Z=1 CA JNZ Z=0 C2 CALL addr Kutse (Call) ((SP) 1) (PCH) ((SP) 2) (PCL) (SP) (SP) 2 (PC) (bait 3)(bait 2) Esmalt suunatakse antud käsule järgneva käsu aadressi kõrgemate järkude väärtus mälupessa, mille aadress on ühe võrra väiksem kui pinuviida (SP) väärtus ja aadressi madalamad järgud mälupessa, mille aadress on kahe võrra väiksem kui pinuviida väärtus. Seejärel vähendatakse pinuviida väärtust kahe võrra. Juhtimine (PC kood) suunatakse käsule, mille aadress on määratud käsu kolmanda (aadressi kõrgemad järgud) ja teise (aadressi madalamad järgud) baidi väärtustega. call addr aadressi madalamad järgud aadressi kõrgemad järgud Masinatsükleid: 5 Takte: 18 Adresseerimine: operand/kaudaadress Lipud: - Käsukood: CD CC Tingimuslik kutse (Condition call) Kui (CCC), siis ((SP) 1) (PCH) ((SP) 2) (PCL) (SP) (SP) 2 (PC) (bait 3)(bait 2) 40

41 Kui valitud tingimus (CCC) on tõene, siis toimub käsu täitmine analoogiliselt käsule CALL addr, vastasel korral asutakse täitma käsku, mille aadressi väärtus on 1 võrra suurem kui jooksval käsul. cc addr 1 1 C C C aadressi madalamad järgud aadressi kõrgemad järgud Masinatsükleid: 2/5 Takte: 9/18 Adresseerimine: operand/kaudaadress Lipud: - Käsukoodide variandid Mnemoonika Tingimus Käsukood CC CY=1 DC CNC CY=0 D4 CP S=0 F4 CM S=1 FC CPE P=1 EC CPO P=0 E4 CZ Z=1 CC CNZ Z=0 C4 RET Naasmine (Return) (PCL) ((SP)); (PCH) ((SP) + 1); (SP) (SP) + 2; Mälupesas, mille aadress on määratud pinuviida (SP) väärtusega, sisalduv kood suunatakse käsuloenduri (PC) madalamatesse järkudesse ja mälupesas, mille kood on 1 võrra suurem pinuviida väärtusest, suunatakse käsuloenduri kõrgematesse järkudesse. Seejärel suurendatakse pinuviida väärtust 2 võrra. ret Masinatsükleid: 3 Takte: 10 Adresseerimine: kaudaadress Lipud: - Käsukood: C9 41

42 RC Tingimuslik naasmine (Conditional return) Kui (CCC); siis (PCL) ((SP)); (PCH) ((SP) + 1); (SP) (SP) + 2; Kui valitud tingimus (CCC) on tõene, siis toimub käsu täitmine analoogiliselt käsule RET, vastasel korral asutakse täitma käsku, mille aadressi väärtus on 1 võrra suurem kui jooksval käsul.. rc 1 1 C C C Masinatsükleid: 1/3 Takte: 6/12 Adresseerimine: kaudaadress Lipud: - Käsukoodide variandid Mnemoonika Tingimus Käsukood RC CY=1 D8 RNC CY=0 D0 RP S=0 F0 RM S=1 F8 RPE P=1 E8 RPO P=0 E0 RZ Z=1 C8 RNZ Z=0 C0 RST n Restart (taaskäivitus) (Restart) ((SP) 1) (PCH) ((SP) 2) (PCL) (SP) (SP) 2 (PC) 8 (NNN) Käsku kasutatakse protsessoriväliste riistvaraliselt genereeritud katkestusnõudluste töötluse korraldamisel. Käsu täitmisel suunatakse esmalt antud käsule järgneva käsu aadressi kõrgemate järkude väärtus mälupessa, mille aadress on ühe võrra väiksem kui pinuviida (SP) väärtus ja aadressi madalamad järgud mälupessa, mille aadress on kahe võrra väiksem kui pinuviida väärtus. Seejärel vähendatakse pinuviida väärtust kahe võrra. Juhtimine (PC kood) suunatakse käsule, mille aadressi väärtus on kaheksa korda suurem koodi NNN (NNN = 000,..., 111) väärtusest. 42

43 rst n 1 1 N N N Masinatsükleid: 3 Takte: 12 Adresseerimine: kaudaadress Lipud: - Käsukoodide variandid Mnemoonika Käsukood Restardi aadress RST 0 C7 0000h RST 1 CF 0008h RST 2 D7 0010h RST 3 DF 0018h RST 4 E7 0020h RST 5 EF 0028h RST 6 F7 0030h RST 7 FF 0038h Lisaks protsessorivälistele katkestustele on kasutusel veel neli vektorkatkestust millede nõudluste tekitamiseks ei ole vaja välist riistvara. Tarkvaraliste katkestuste restardi-aadressid on järgmised: Käsukoodide variandid Katkestus Restardi aadress TRAP 24h RST5.5 2Ch RST6.5 34h RST7.5 3Ch PCHL Siire registripaaris HL sisalduvale aadressile (Jump H and L indirect move H and L to PC) (PCH) (H) (PCL) (L) Registris (H) sisalduv kood edastatakse käsuloenduri (PC) kõrgematesse järkudesse (PCH) ja registris (L) sisalduv kood edastatakse käsuloenduri madalamatesse (PCL) järkudesse. 43

44 pchl Masinatsükleid: 1 Takte: 6 Adresseerimine: registeraadress Lipud: - Käsukood: E9 44

45 P5. Mikroprotsessori 8085 käsustik IV Juhtimis-, pinu- ja sisend-väljundkäsud PUSH rp Registripaari sisu salvestus pinusse (Push) ((SP) 1) (rh) ((SP) 2) (rl) ((SP) (SP) - 2 Registripaaris rp sisalduva koodi kõrgemaid järke sisaldavast registrist (rh) suunatakse kood mälupessa, mille aadressi väärtus on 1 võrra väiksem pinuviida (SP) väärtusest. Koodi madalamaid väärtusi sisaldavast registrist (rl) suunatakse kood mälupessa, mille aadressi väärtus on 2 võrra väiksem pinuviida väärtusest. Seejärel vähendatakse pinuviida väärtust 2 võrra. push rp 1 1 r p Masinatsükleid: 3 Takte: 12 Adresseerimine: kaudaadress Lipud: - Käsukoodide variandid Registripaar Käsukood BC C5 DE D5 HL E5 PUSH PSW Protsessori olekusõna salvestus pinusse (Push processor status word 1 ) ((SP) 1) (A) ((SP) 2) 0 (CY), ((SP) - 2) 1 X ((SP) 2) 2 (P), ((SP) 2) 3 X ((SP) 2) 4 (AC), ((SP) - 2) 5 X ((SP) 2) 6 (Z), ((SP) - 2) 7 (S) (SP) (SP) 2 X määratlemata väärtus 1 Masina olek süsteemi (arvutisse) kuuluvate kõigi registrite olekud olenemata sellest, kas registrid on programmistile kättesaadavad või mitte. Protsessori olek protsessoris olevate registrite olekud. Protsessori olekusõna sõna, mis sisaldab protsessoris kasutatavate lippude olekud. 45

46 Akumulaatoris (A) sisalduv kood suunatakse mälupessa, mille aadress on 1 võrra väiksem pinuviida (SP) väärtusest. Lippude olekutest moodustatakse protsessoriolekusõnad, mis salvestatakse mälupessa mille aadress on 2 võrra väiksem pinuviida väärtusest. Seejärel vähendatakse pinuviida väärtust 2 võrra. push psw Masinatsükleid: 3 Takte: 12 Adresseerimine: kaudaadress Lipud: - Käsukood: F5 POP rp Registripaari väärtuse ennistamine pinust (Pop) (rl) ((SP)) (rh) ((SP) + 1) (SP) (SP) + 2 Mälupesast, mille aadress on määratud pinuviida (SP) väärtusega, edastatakse kood registripaari rp madalamaid järke sisaldavasse registrisse (rl) ja mälupesast, mille aadress on 1 võrra suurem pinuviida väärtusest, edastatakse kood registripaari kõrgemaid järke sisaldavasse registrisse (rh). Seejärel suurendatakse pinuviida väärtust 2 võrra. Registripaarina, kuhu andmed mälust suunatakse, ei saa kasutada registripaari SP. pop rp 1 1 r p Masinatsükleid: 3 Takte: 10 Adresseerimine: kaudaadress Lipud: - Käsukoodide variandid Registripaar Käsukood BC C1 DE D1 HL E1 46

47 POP PSW Protsessori olekusõna ennistamine pinumälust (Pop processor status word) (CY) ((SP)) 0 (P) ((SP)) 2 (AC) ((SP) 4 (Z) ((SP)) 6 (S) ((SP)) 7 (A) ((SP) + 1) (SP) (SP) + 2 Mälupesast, mille aadress on määratud pinuviida (SP) väärtusega, edastatakse protsessoriolekusõna kood vastavatesse lippudesse (CY, P, AC, Z, S). Mälupesast, mille aadress on 1 võrra suurem pinuviida väärtusest, suunatakse kood akumulaatorisse (A). Seejärel suurendatakse pinuviida väärtust 2 võrra. pop psw Masinatsükleid: 3 Takte: 10 Adresseerimine: kaudaadress Lipud: Z; S; P; CY; AC Käsukood: F1 XTHL Pinumäluviida (SP) väärtuse vahetamine registripaari HL sisuga (Exchange stack Top with HL) (L) ((SP)) (H) ((SP) + 1) Registris L sisalduv kood vahetatakse koodiga mälupesast, mille aadress on määratud pinuviida (SP) väärtusega. Registris H sisalduv kood vahetatakse koodiga mälupesast, mille aadress on määratud 1 võrra suurema pinuviida (SP) väärtusega. xthl Masinatsükleid: 5 Takte: 16 Adresseerimine: kaudaadress Lipud: - Käsukood: E3 47

48 SPHL Registripaari HL sisu salvestus pinuviita SP (Move HL to SP) (SP) (H)(L) Registripaaris HL sisalduv 16-bitine kood edastatakse pinuviita (SP) sphl Masinatsükleid: 1 Takte: 6 Adresseerimine: registeraadress Lipud: - Käsukood: F9 IN port Andmete sisestus pordist (Input) (A) (andmed) 8-bitised andmed edastatakse protsessori andmesiinilt akumulaatorisse (A) läbi pordi, mille number on määratud käsu teises baidis (port). in port port Masinatsükleid: 3 Takte: 10 Adresseerimine: operand Lipud: - Käsukood: DB OUT port Andmete väljastus pordist (Output) (andmed) (A) 8-bitised andmed väljastatakse akumulaatorist (A) protsessori andmesiinile läbi pordi, mille number on määratud käsu teises baidis (port). out port port Masinatsükleid: 3 48

49 Takte: 10 Adresseerimine: operand Lipud: - Käsukood: D3 EI Katkestuste lubamine (Enable interrupts) Protsessor reageerib katkestusnõudlustele alates antud käsule järgnevast käsust. Käsu EI töötluse ajal protsessor katkestusnõudlustele ei reageeri. ei Masinatsükleid: 1 Takte: 4 Lipud: - Käsukood: FB DI Katkestuste blokeerimine (Disable interrupts) Protsessor ei reageeri katkestusnõudlustele alates antud käsule järgnevast käsust. Käsu DI töötluse ajal protsessor katkestusnõudlustele ei reageeri. di Masinatsükleid: 1 Takte: 4 Lipud: - Käsukood: F3 HLT Protsessori talitluse peatus (Stopp) (Halt) Protsessori talitluse peatamine. hlt Masinatsükleid: 1+ Takte: 5 Lipud: - Käsukood: 76 49

50 NOP Tühikäsk (No operation) Tühikäsk, toimub vaid käsuloendurisse (PC) salvestatud koodi suurendamine 1 võrra. nop Masinatsükleid: 1 Takte: 4 Lipud: - Käsukood: 00 RIM Katkestuste maskide lugemine (Read Interrupt Masks) Mitmeotstarbeline käsk, mida rakendatakse katkestusnõudluste RST7.5, RST6.5, RST5.5 ja jadamisi sisestatavate andmete töötlemisel. Käsu täitmisel edastatakse akumulaatorisse (A) katkestusnõudluste RST7.5, RST6.5 ja RST5.5 maski väärtus, katkestusnõudluste lubamise lipu (IE) väärtus, info eelseisvatest (seni veel mitte teenindatud) katkestusnõudluste (I7, I6, I5) kohta ja jadamisi sisestatud andmebiti (SID) väärtused. rim Masinatsükleid: 1 Takte: 4 Lipud: - Käsukood: 20 SIM Katkestuste maskimine (Set Interrupt Masks) Käsus kasutatakse akumulaatoris (A) sisalduvat infot katkestuste RST7.5, RST6.5, RST5.5 ja jadamisi väljastatavate andmete töötluse korraldamiseks. Akumulaator sisaldab teavet katkestusnõudluste maskide (M7.5, M6.5, M5.5), maskimise lipu (MSE) oleku, katkestusnõudluse RST7.5 lähtestuse trigeri (R7.5) oleku, andmete jadaedastuse lubamise trigeri (SDE) ja jadamisi väljastatava andmebiti (SOD) oleku kohta. sim Masinatsükleid: 1 Takte: 4 Lipud: - Käsukood: 30 50

51 Mikroprotsessori 8085 katkestustesüsteem. Käsu RSTn täitmine protsessoris a. Programmi töötluse ajal kontrollib protsessor, iga käsu täitmisel, sisendi INTR olekut. b. Kui sellel sisendil on loogiline olek 1 ja katkestused on lubatud, siis lõpetab protsessor antud hetkel töödeldava käsu töötluse (viib selle lõpuni), blokeerib edasiste katkestusnõudluste vastuvõtu ja väljastab aktiivse signaali INTA //Interrupt Acknowledge//. Pärast seda ei reageeri protsessori katkestuste töötlemise üksus edaspidi saabuvatele katkestusnõuetele seni, kuni katkestusnõudlused pole taas programselt lubatud käsuga EI ( ei ) //EI - Enable Interrupt//. c. Signaali INTA toimel väljastab kaktkestusnõudluse väljastanud allikas protsessorile vastava RST-käsu (käsukoodi), kasutades selleks protsessorivälist riistvara. d. Kui protsessorisse saabub talle edastatud RST-käsk, siis toimub ISR-rutiini //Interrupt Service Routine// käivitus ning katkestusnõudluse teenindus vastavalt esitatud katkestusnõudlusele. Käsu RSTn ( rstn ) (või käsu CALL ( call )) toimel salvestab ISR-rutiin katkestatud programmi järgmisena täitmisele kuuluva käsu aadressi pinumällu. Käsuloendurisse (PC) laetakse aga RSTn- või CALL -käsu aadress. e. Iga ISR programm sisaldab programmi alguses järgnevate katkestusnõuete keelustamise käsku (käsk DI ( di )) ja programmi lõpus käsku EI ( ei ), millega taas lubatakse katkestusnõuete töötlemine. f. Mikroprotsessori 8085 käsustikku kuulub 8 taaskäivituse ehk RSTn käsku (RST0, RST1, RST2, RST3, RST4, RST5, RST6, RST7). Tegemist on 1-baidiste CALL-tüüpi käskudega, mis suunavad programmi töötlemise kindlale mäluaadressile mäluleheküljel number 00h. Katkestusnõuete INTR teenindusprogrammide algusaadressid Katkestusnõude mnemoonika RST0 RST1 RST2 RST3 RST4 RST5 RST6 RST7 Käsukood (16-kood) C7 CF D7 DF E7 EF F7 FF Katkestusnõude teenindusprogrammi algusaadress (16-kood)

52 Lisaks vektoriseerimata maskitavatele katkestusnõudele (INTR) on mikroprotsessor varustatud veel kolme maskitava vektorkatkestusega (RST7.5, RST6.5 ja RST5.5) ning ühe mittemaskitava (NMI-katkestus) //Non-maskable Interrupt// vektorkatkestusega (TRAP). Nende katkestusnõuete teenindamisel pole vajadust protsessorkiibivälise riistvara järele, et genereerida vastava ISRi algusaadressi. Piisab sellest, et mikroprotsessori vastavale sisendile edastatakse katkestusnõude signaal (RST7.5, RST6.5, RST5.5, TRAP), mille tulemusena automaatselt käivitub arbitreeritud katkestusnõude teenindus. Vektorkatkestuste teenindusprogrammide (ISRi) algusaadressid on järgmised: Katkestusnõue TRAP RST7.5 RST6.5 RST5.5 ISRi algusaadress 0024h 003Ch 0034h 002Ch Kui samaaegselt peaks saabuma mitu vektorkatkestuse nõuet, siis spetsiaalne arbitraažilülitus valib neist välja kõrgeima prioriteediga nõude ja käivitab vastava ISRi. Mikroprotsessoris 8085 on kasutusel järgmine katkestusnõuete prioriteetide süsteem: TRAP => RST7.5 => RST6.5 =>RST5.5 => INTR Kõrgeim Madalaim prioriteet prioriteet 52

53 53

54 Näide Mikroprotsessor on lõpetamas katkestusnõude RST7.5 töötlemist. Kontrollida, kas samaaegselt on ootel katkestusnõue RST6.5. Kui see katkestusnõue on ootel, siis lubada järgnevalt, pärast RST7.5 teeninduse lõpetamist, RST6.5 katkestuse töötlemine. Kui RST6.5 ootel ei ole, siis pöörduda tagasi RST7.5 poolt peatatud programmi töötlemisele. rim mov b,a ani 20h jnz NEXT ei ret NEXT: mov a,b ani 0dh ori 08h sim lubamine jmp SRV ; Lugeda katkestusnõuete mask ; Salvestada maski väärtus registrisse b ; Kontrollida kas RST6.5 on ootel ; Kui nõue on ootel, siis siire märgendile NEXT ; Lubada katkestused ; Katkestatud programmi töötlusele naasmine ; RIM-käsu koodi ennistus registrisse a, Lubada katkestus RST6.5, väärtustades biti D1:=0 ; Lubada SIM-käsk, väärtustades biti D3:=1 ; SIM-käsus katkestusnõuete RST7.5, RST6.5 ja RST5.5 ning maski lubamine MSE:=1 ; Siire katkestuse RST6.5 teenindusprogrammi, mis asub aadressil SRV Tarkvaraliselt ohjatavad asünkroonsed sisend-väljundoperatsioonid Mikroprotsessoril on kaks sisend-väljundviiku (SID //Serial Input Data// ja SOD //Serial Output Data//), mille abil toimub andmete, tarkvaraliselt juhitav, asünkroonne jadamisi toimuv sisestus- või väljastusoperatsioon. Jadaandmevahetust, erinevalt rööpsest andmevahetusest, korraldatakse erikäskudega SIM ja RIM. Andmete asünkroonsel jadaväljastusel, mis toimub läbi viigu SOD, tuleb väljastatav andmebait eelnevalt salvestada akumulaatorisse (A), kust see siis käsu SIM abil kantakse, ühe biti haaval, väljundviigule SOD. Alljärgnev koodifragment kirjeldab, kuidas väljastada läbi jadakanali ühebitist kahendarvu 1 : mvi a, c0h ; akumulaatorregistri järkudele D7 ja D6 omistatakse väärtus 1 sim ; akumulaatorregistris olev kood (D7:=1) edastatakse väljundile SOD, ; ühtlasi lubati andmete jadaväljastus (SDE:=1) 54

55 D7 D6 D5 D4 D3 D2 D1 D0 SOD SDE SIM Jadamisi väljastatav andmebitt Andmete jadaedastus lubatud "1" Jadamisi saabuvate andmete sisestamiseks kasutatakse mikroprotsessori sisendit SID. Andmete sisestamine toimub käsuga RIM. D7 D6 D5 D4 D3 D2 D1 D0 SID RIM Jadamisi sisestatav andmebitt Käsu RIM täitmise tulemusena suunatakse sisendil SID olev andmebitt akumulaatorregistri järku D7. Kui toimub andmete jadasisestus RIM-käsuga, siis tuleb silmas pidada, et akumulaatorregistrisse kantaks mitte üksnes sisestatud andmebiti (D7-järgu) väärtus, vaid samuti käsu ülejäänud järkudes (D6-D0) sisalduvate bittide väärtused. Soovitus Lisamaterjalis Lisa001.pdf on toodud täiendavalt ülesandeid, et harjutada assemblerkoodis programmeerimist ja valmistuda praktikumides lahendatavate ülesannete edukaks täitmiseks. Harjutusülesannete juures on esitatud ka mõned variandid, kuidas võiks üht või teist ülesannet programmeerida. Milliseid paremaid programmide lahendusi võiks (tuleks) kasutada, seda proovigu igaüks ise järele. 55

56 Masinatsüklite (Mi) //machine cycles// tähistused: F neljataktiline käsuvõtt I S/V-kanalist lugemine S kuuetaktiline käsuvõtt O S/V-kanalisse salvestamine R mälust lugemine B sisesiin on jõudeolekus (Z-olek) W mällu salvestamine 56

57 P6. Programmide koostamine mikroprotsessorile Pinumälu ohje Pinu organiseeritakse protsessori põhimälu fikseeritud aadressiruumi osas, kusjuures pinu mäluruumi adresseerimine toimub 16-bitise pinuviida-registri abil (SP stack pointer). Pinumälu korraldatakse LIFO-registri //Last IN First Out// põhimõttel. Pinuviit osutab pinutipu //stack top// aadressile (viimati pinumälus kasutatud aadressile). Informatsiooni salvestamisel ja selle lugemisel pinust, toimub nö. tagurpidi adresseerimine pinusse info salvestamisel aadresside väärtused vähenevad, pinust informatsiooni lugemisel aadresside väärtused suurenevad. Pinusse salvestamise käsk PUSH ja pinust lugemise käsk POP on kasutavad ainult registripaaridel. Näide Käsk PUSH BC täidetakse järgmiselt: 1. Dekrementeerida pinuviida väärtust (SP:=SP-1) väärtust, salvestada registri B sisu pinuviidaga määratud aadressile. 2. Dekrementeerida pinuviida väärtust (SP:=SP-1) väärtust, salvestada registri C sisu pinuviidaga määratud aadressile. Käsk POP BC täidetakse järgmiselt: 1. Salvestada pinuviidaga (SP) määratud pinupesast info registrisse C, inkrementeerida pinuviida väärtust (SP:=SP+1). 2. Salvestada pinuviidaga (SP) määratud pinupesast info registrisse B, inkrementeerida pinuviida väärtust (SP:=SP+1). CALL ja RET käskude sidumine pinuoperatsioonidega CALL ja RET käskude kasutamisel toimuvad pinuoperatsioonid kindlas järjekorras. Esmalt salvestatakse pinusse protsessori olek PUSH käskudega ja seejärel toimub käsuga CALL siire alamprogrammi. Alamprogrammist naasmisel RET käsu abil taastatakse protsessori olek, rakendades selleks käske POP. 57

58 Näide Käskude järjestus, millega salvestati pinusse protsessori olek, enne alamprogrammi siirdumist käsuga CALL oli: 1. PUSH BC 2. PUSH DE 3. PUSH PSW PSW programmi olekusõna, mis moodustub akumulaatori ja lippude registrite väärtustest. Pärast alamprogrammist RET-käsuga tagasipöördumist, tuleb pinusse salvestatud informatsioon taastada järgmises (vastupidises) järjestuses. 1. POP PSW 2. POP DE 3. POP BC Programmi olekusõna PSW taastamine toimub käsuga POP PSW: PUSH rp ((SP)-1) (rh) ((SP)-2) (rl) (SP) (SP)-2 POP rp (rl) ((SP)) (rh) ((S)+1) (SP) ((SP)+2) Alamprogrammid ja makrod Alamprogramm programmi osa, mis täidab teatavat funktsiooni ja mida saab põhiprogrammis välja kutsuda (ka korduvalt) igal vajaliku juhul. Makro (makroprogramm) programmi rutiin (alamprogramm) või käskude plokk, mis on identifitseeritav kas märgendiga või nimega. Programmeerimisel tuleb otsustada, kas konkreetses programmis on otstarbekam kasutada alamprogramme või makrosid ehk siis mõlemaid. Alamprogrammid ja makrod võivad olla küll ühesuguse funktsionaalsusega, kuid samas on neil spetsiifilisi omadusi, millega peab arvestama nende rakendamisel programmides. Alamprogramm Makro CALL <nimi> MACRO <nimi> (parameetrid) RET ENDM 58

59 Parameetrite edastamine alamprogrammidele Parameetrite edastamine alamprogrammidele võib toimuda erinevalt: 1. Kasutades globaalandmeid Globaalandmed on andmed, mida säilitatakse mälus (põhimälus) tüüpiliselt kindla aadressiga mälupesades, kust neid saavad kasutada nii programm kui ka selle alamprogrammid. 2. Kasutades protsessori siseregistreid Kuna protsessor siseregistrite arv on piiratud, siis see määrab kasutatavate parameetrite arvu. Erinevalt mälus säilitatavatest parameetritest on protsessori siseregistreis asuvate parameetrite edastamine alamprogrammidele kiirem. 3. Mälus spetsiaalse parameetrite ala kasutamine Mälus eraldatakse teatav osa aadressiruumist parameetrite säilitamiseks. Alamprogrammi väljakutsuv programm kannab enne alamprogrammi väljakutset sellesse parameetrite alasse vastava alamprogrammi parameetrite väärtused. 4. Kasutades pinumälu Kui alamprogramme on palju, siis jaotatakse pinumälu segmentideks (kaadriteks) //frame//, milledest igaüht kasutab kindel alamprogramm. Meetodit on otstarbekas kasutada juhul, kui protsessoris on mitu registrit, mida saab rakendada pinuviida funktsioonis. Ajaliste viidete programmeerimine Iga käsu töötlemiseks kulutab protsessor teatava arvu protsessori takte //state//. Teades käsku ja protsessori taktsagedust, saab leida kui kaua kestab üksiku käsu või käskude jada töötlemine protsessoris. Pikemate programsete ajaintervallide programmeerimisel kasutatakse tüüpiliselt programseid tsükleid. Näiteks järgneva programmifragmendi töötlemiseks kuluv aeg on võrdne: mvi c, 0ffh Loop: dcr c jnz Loop 7 takti 5 takti 7/10 takti Tähistame T L programsete tsüklite kestus silmuses T p protsessoritakti kestus T Ln protsessori taktide arv mida kulutatakse üht tsüklit moodustavate käskude töötlusele n tsükli korduste arv (kümnendsüsteemi arv) silmuses 59

60 Antud näites korratakse tsüklit Loop 254 korda, kuna tsükli korduste arvu määravasse registrisse C on salvestatud konstant väärtusega ff 16 = Silmuse tsüklite töötlemisele kuluv aeg on leitav seosest: T L = T p (T Ln n) Toodud näites sisaldab tsükkel kaht käsku dcr c ja jnz Loop, millede täitmiseks kulutab protsessor vastavalt 5 ja 7/10 takti. Käsule jnz vastavalt 7 takti kui siirde tingimus ei ole täidetud ja 10 takti, kui siirde tingimus on täidetud. Siiret tsükli algusesse (märgendile Loop) korratakse seni, kuni registris C pole, käsu dcr c täitmisel, moodustunud kood 00h. Siis omistatakse lipule Z väärtus Z:=1 (väljutakse tsüklist). Seega on protsessortaktide arv nende käskude täitmisel võrdne: Programmifragmendi töötlemine kestab T Ln1 = = 15 takti (n 1 = 254) T Ln2 = 5+7 = 12 takti (n 2 = 1). T L = T p ( ) = T p 3829 ajaühikut Pikemate ajaintervallide moodustamiseks kasutatakse tavaliselt tsüklite korduvat silmustamist. Järgnevas näites rakendatakse kahte tsüklit: Loop1 ja Loop2 mvi c, 0ffh Loop1: dcr c jz End mvi d, 0ffh Loop2: dcr d jnz Loop2 jmp Loop1 End:... ; Välistsükkel (n 1 korda) ; Sisetsükkel (n 2 korda) Toodud näites on tsükliliselt täidetavate programmiosade töötluseks kuluv leitav seosega: T L = T n 1 (T Ln1 + T Ln2 n 2 ) Parameetrid (n 1, T Ln1 ) ja (n 2, T Ln2 ) iseloomustavad vastavalt tsükleid Loop1 ja Loop2. 60

61 61

62 62

63 Assemblerikeelne programm Programmi kirjutamisel assemblerikeeles ei ole vaja määrata absoluutseid aadresse. Absoluutsete aadresside asemel kasutatakse sümbol- ja suhtaadresse. Sümboladresseerimisel antakse käsule või muutujale (operandile) nimi märgend, millega edaspidi opereeritakse. Sümbolaadressile (märgendile) seatakse vastavusse absoluutne (füüsiline) aadress assembleriprogrammi transleerimise käigus. Suhtadresseerimisel ei määrata aadresse mitte mäluruumi alguse suhtes, st mitte absoluutaadressides, vaid teatava eelnevalt kokku lepitud baasi suhtes. Assemblerikeelne programm koosneb lausetest, iga lause omakorda sisaldab teatavaid välju. Tüüpiliselt kasutatakse assembleris järgmisi välju: Märgendiväli; Märgendiväljas paikneb märgend. Märgendiväli lõpeb eraldajaga, enamasti kasutatakse selleks koolonit ( : ). Käsukoodiväli; Käsukoodiväli sisaldab masinakäsu mnemoonilise tähistuse. Käsukoodi väli lõpeb tavaliselt tühikuga. Operand väli; Operandiväljas esitatakse kas operandi (operandide) arvväärtus (näidates ühtlasi ära selle esitusel rakendatava kasutatava arvusüsteemi), nimed (märgendiviited) või avaldised. Avaldised defineeritakse eraldi ning nad võivad sisaldada märgendeid, konstante ja aritmeetilisi või loogilisi tehteid. Avaldisi kasutatakse operandi väärtuse või selle aadressi arvutamiseks. Kommentaariväli. Kommentaarivälja eraldab operandiväljast teatav sümbol, enamasti on selleks semikoolon ( ; ). Kommentaariväljas esitatakse tavaliselt tekst, mis selgitab antud lauses käsuga täidetavaid tegevusi programmi seisukohalt, mitte aga niivõrd käsu täitmise kirjeldust. Kommentaari välja lõpetab tavaliselt reavahetus (klahv Enter ). 63

64 Märkus Selleks, et assembler saaks kirjeldada programmi käskude järjestust lähtekoodist objektkoodi moodustamisel, varustatakse assemblerprogrammi read assembleri aadressiloenduri poolt aadressi järjekorranumbriga, mis võtab arvesse seda, mitu mälusõna (baiti) ühe või teise käsu kirjeldus hõivab programmimälus, näiteks: 00: sta 0202h (3-baidine käsk, hõivab kolm järjestikuste aadressidega 8-bitist mälupesa) 03: nop (1-baidine käsk) 04: mvi a, 26h (2-baidine käsk) 06: di (1-baidine käsk) Aadressi järjekorranumber NB! Aadressi järjekorranumber ei ole sama, mis on simulaatori Sim 8085 µp Simulatori lähtekoodi ridade ees olevad programmirea järjekorranumbrid. Assemblerikeeles kasutatakse lisaks masinakäskudele veel ka pseudokäske ehk direktiive. Direktiivid muudavad assemblerikeelse programmi kasutamise mugavamaks. Pseudokäsud annavad assemblerile täiendavat infot, kuid nad ei genereeri koodi. Oma funktsionaalse otstarbe järgi võivad direktiivid olla jaotatud veel klassidesse nimede defineerimise direktiivid (näiteks Db), transleerimise juhtimise direktiivid (näiteks Org) jt. Sageli eristatakse assemblerikeeltes direktiive sellega, et direktiivi mnemooniline tähistus algab alati punktiga, näiteks.end või.begin. Simulaatoris Sim 8085 µp Simulator direktiivide ees punkti ei kasutata. Enamasti lõpevad assemblerikeelsed programmid direktiiviga.end, kuid simulaatoris Sim 8085 µp Simulator seda direktiivi ei kasutata, seal lõpetatakse programmi talitlus assemblerikäsuga hlt. Assemblerikeelse lause tüüpstruktuur 64

65 P7. Mikroprotsessori simulaator Simulaator programm, mida täidetakse arvuti poolt, et imiteerida teise arvuti (või selle seadme) (imitaator) talitlust ja mis näitab kuidas talitlus sõltub erinevatest talitlustingimustest. Simulatsioon operatsioon, kus arvuti imiteerib mingi teise arvuti talitlust. Simulatsioonil kasutatakse simuleeritava arvuti (või selle seadme) tarkvaralisi mudeleid. Assemblerikeelse programmi ettevalmistamine töötluseks (programmi transleerimine) Translaatorina kasutatava programmi ülesanne on lähtekeelese, kas masinast sõltumatu kõrgkeelse või sõltuva madaltaseme keelse, programmi teisendamine masinakeelde. Transleerimise käigus teisendatakse näiteks mikroprotsessori 8085 assemblerikeeles esitatud käsk mvi a, 30h masinakoodi kujule (3Eh ja 30h). Moodustatud andmed salvestatakse mikroarvuti mälus kahte järjestikku adresseeritavatesse 8-bitistesse mälupesasse. Sõltuvalt lähtekoodi läbivaatamiste kordade arvust jagatakse translaatorid ühe-, kahe- ja enamakäigulisteks. Kahekäigulise assembleri talitluse esimeses etapis (käigus) tuvastatakse programmi poolt kasutatav mäluruumi osa, lähtudes pseudokäsus Org defineeritust. Ühtlasi antakse ette spetsiaalsele loendurile, mille abil toimub hiljem käskude paigutamine programmi mäluruumi, oleku algväärtus (algaadress). 65

66 Seejärel skaneerib assembleri käske ja salvestab iga käsu esimese käsubaidi aadressi, lähtudes loenduri olekust. Esimesel käigul moodustatakse ühtlasi ka nimede tabel, sisaldab programmis kasutatud sümbolnimesid ja iga nime konkreetne asukoht (aadress)). Assembleri talitluse teisel etapil (käigul) uuritakse iga programmi käsku üksikasjaliselt, asendatakse käsu assemblerikeelne mnemooniline tähistus ja programmis kasutatud märgendid (sümbolnimed) reaalsete masinakoodis esitatud kahendväärtustega. Näide Esitatud assembleriprogrammis jälgitakse mikroprotsessori sisendpordiga number 0 ühendatud lüliti olekut ja sellest sõltuvalt lülitatakse väljundpordiga number 1 ühenduses olevat välisseadet kas sisse või välja. Port 0 EQU 00h ; Sisendpordi nr 0 aadress heksadetsimaalkoodis Port 1 EQU 01h ; Väljundpordi nr 1 aadress heksadetsimaalkoodis ORG 1000h ; Programmi algusaadress heksadetsimaalkoodis Start: in Port 0 out Port 1 jmp Start end ; Lüliti oleku lugemine ; Välisseadme sisse- või väljalülitamine ; Korratakse juhtimistsüklit ; Programmi lõpp (direktiiv) Lähteprogrammi transleerimisel (assembleerimisel) viiakse läbi järgmised toimingud: 1. Käik Aadress Masinakood Märgend Käsk Operand Nimede tabel 1000 Start: in Port 0 Port 0 00h 1002 out Port 1 Port 1 01h 1004 jmp Start Start 1000h 2. Käik Aadress Masinakood Märgend Käsk Operand Nimede tabel (Hex) (Hex) 1000 db d c

67 Absoluutassemblerite puhul saadakse transleerimise tulemusena töötlemiseks kõlbulik programm (täitmisprogramm), mida saab laadida arvuti mällu, alates kindlast aadressist. Vastasel korral esitatakse transleerimise tulemus (programm) suhtaadressides, millised tuleb, enne programmi laadimist arvuti mällu, teisendada absoluutaadressideks. Suhtaadressid teisendab absoluutaadressideks spetsiaalne programm laadur. Kui on tegemist moodulprogrammidega, siis üksikud transleeritud moodulid ühendatakse pärast transleerimise lõppu ühtseks tervikuks spetsiaalse programmi linkuri abil. Tavaliselt moodustab translaator, linkuri kasutamisel, vahekeelse programmi, mis sisaldab linkimiseks vajalikku teavet. Lingitud programme salvestatakse arvuti mällu laaduri abil. Lihtsamates süsteemides täidab linkuri ja laaduri ülesandeid translaator. 67

68 Transleerimise protseduuri mudel 68

69 Simulaatori Sim 85µP Simulator üldandmed Programm Sim 8085 µp Simulator Base Converter.exe HexCalc.exe Sim exe (678 kb) 69

70 Simulaatori Sim 8085 µp Simulator kasutamine Simulaator töötab Windowsi keskkonnas (alates Windows 95 ja uuemad versioonid), simuleerides Inteli mikroprotsessori 8085 assemblerikoodis esitatud programmi talitlust. Simulaator sisaldab kahte põhikomponenti: 1. Redaktor (Editor) Redaktor täidab traditsioonilise redaktorpogrammi ülesandeid assemblerikoodis esitatud programmi ettevalmistamisel töötlemiseks protsessoris Redaktor sisaldab sardkompilaatori, mis viib läbi programmiteksti süntaksi õigsuse kontrolli. Redaktor on varustatud pseudokäskudega (direktiividega), mis hõlbustavad assembleriprogrammi koostamist. Erinevalt mitmetest teistest assembleritest, piirdutakse antud redaktoris vaid nelja direktiiviga: 1. Org 2. Db 3. FillByte 4. KickOff Redaktori vahendusel genereeritakse programmi korrektne assemblerikoodi fail (faililaiendiga.a85 ), programmi listfail (faililaiend.lst ) ja binaarse objektkoodi fail (faililaiend.obj ). 2. Silur (Debugger) Silurprogrammi (siluri) abil toimub töödeldava programmi talitluse jälgimine ja vajadusel selle korrigeerimine simuleerivas arvutis. Silur eraldab simuleeritava programmi tarvis 64-kilobaidise (mikroprotsessori bitine aadressisiin võimaldab, kasutades otseadresseerimist, adresseerida sellist mälu aadressiruumi) virtuaalse mäluaadressiruumi. Siluri abil on võimalik jälgida ja vajadusel ka korrigeerida andmeid protsessori sisemistes, programmistile juurdepääsetavais, registrites, pinumälus ja mikroprotsessorsüsteemi 64-kilobaidises virtuaalses põhimälus. Lisaks neile funktsioonidele võimaldab silur simuleerida veel ka mikroprotsessori portide talitlust. Selleks on simulaator varustatud kolme virtuaalse 8-bitise rööppordiga A, B ja C pordiga. 70

71 Programmi töötlemine simulaatoris Redaktori funktsioonid Redaktoris töödeldavad assemblerikoodi programmifailid peavad olema varustatud faililaiendiga.a85. Korraga võib olla avatud kuni 10 erinevat assembleris esitatud faili, kuid igal ajahetkel saab töödelda neist vaid siiski ühte. Avatud failide nimed kuvatakse simulaatori tööaknas tööriistariba all. Joonis 1. Redaktorrežiimi ekraanitõmmis Simulaatoris saab valida tööakna tausta ja kuvatava informatsiooni ja selle elementide värvusi, kasutada teksti esiletõstu ja muuta kuva teisi visualiseerimise parameetreid. Selleks on peamenüüs valik Options, mille avamisel ilmub rippmenüü, mis pakub valikuid Editor Options ja Debugger Options. Esimesega saab (Editor Options) määratleda redaktori esitlusviise, kuvatavaid värvusi ja printimise sätteid. Teisega (Debugger Options) saab määratleda silurirežiimi rakendamisel kuvatavate infoelementide värvusi ja silumisel kasutatavaid olulisi põhiseadeid nagu: 1. Määrata mälus programmiala algusaadressi (Code Entry); 2. Määrata mälus andmeala algusaadressi (Data Entry); 3. Määrata mälus pinuala algusaadressi (Stack Entry); 4. Määrata sisend-väljundprortide aadresse ja andmeedastuse suunda neis. 71

72 72

73 Redaktori sardkompilaator kontrollib sisestatud assembleriprogrammi süntaksi õigsust. Kui programmis esinev vigu, siis väljastab kompilaator vastava veateatise, mida kuvatakse tööakna olekuriba kohal. Iga vigase programmirea kohta väljastatakse vastava rea number (näit. Line [xxxx]: ) ja vea selgitus. Kui programmis süntaksivigu ei esine, siis kompilaator väljastab sellekohase teatise (joonis 2). Joonis 2. Kompileeritud koodi, kus ei esinenud süntaksivigu, ekraanitõmmis Sisestatud assembleriprogrammi kompileerimiseks tuleb kasutada põhimenüüs olevat valikut Project, kus käivitatakse funktsioon Compile. Assemblerprogrammi koostamisel ja sisestamisel simulaatorisse tuleks silmas pidada järgmist: 1. Kuueteistkümnendkoodi (heksadetsimaalkoodi) arvude esitamiseks tuleb nad varustada tunnusega h (vastasel juhul interpreteerib translaator neid kui kümnendarve), näiteks 20A1h 0000h 01f2h fdh 79h NB! Heksadetsimaalkoodis esitatud arvude, mis algavad sümbolitega A, B, C, D, E, F või a, b, c, d, e, f korral lisada arvu ette 0, st arvu fdh asemel kasutada arvu 0fdh. 73

74 Kui andmeid sisestada redaktoris 8-järguliste binaarkoodi arvudena, näiteks kujul b, siis assembler muudab binaarkoodi ise heksadetsimaalkoodiks ja kuvab saadud koodi heksadetsimaalkujul, st 41h. 2. Kui käsus kasutatakse registripaare, siis tuleb näidata vastava registripaari nimi, näiteks lxi hl, 2000h stax de lxi sp FE00h 3. Käsureas esitatav kommentaar eraldatakse rea muust tekstist semikooloniga ( ; ), näiteks mvi a, 4ah ; Akumulaatorregistrisse suunatakse heksadetsimaalkoodi arv väärtusega 4A. Kompilaator ignoreerib kommentaariväljas olevat informatsiooni. Kui kommentaar ei mahu ühele käsureale, siis võib seda jätkata järgnevalt realt, kuid sellisel juhul tuleb iga järgneva kommentaarirea ette panna samuti semikoolon. 4. Kui programmis kasutatakse programseid nimelisi tsükleid (silmuseid), siis neile omistatud nime järele tuleb panna koolon ( : ), näiteks LOOP: või lbx: Tsükli nimi (näit. LOOP ) ei tohi sisaldada rohkem kui 13 tähemärki, millele järgneb tingimata kooloni märk. 5. Kui kasutatakse sümbolnimesid, et tähistada näiteks 16-bitist nihkeaadressi //offset address//, siis seda saab esitada järgmiselt lxi hl, DADDR või shld DADDR, kus DADDR on nihkeaadressi arvulist väärtust asendav sümbolnimi. Sümbolnimede kasutamisel tuleb vastavate nimede väärtused defineerida, näiteks org 100h lxi de, 200Ah lxi hl, DADDR ; sümbolnimi DADDR saab toodud näites väärtuse 0130h ehk LXI HL, 0130h xchg ; registripaaridele omistatakse väärtused vastavalt HL:=200Ah ja DE:=0130h call DADDR ; kutsutakse välja alamprogramm, mis asub aadressil 0130h ehk CALL 0130h org 130h DADDR: ; sümbolnimi on seotud aadressiga 0130h mov a, d ; mälupesas aadressiga 0130h paikneb käsk MOV A, D lxi hl, 0h mvi b, 08h jne. ; järgnevad käsud, mis kuuluvad sellesse programmi hlt ; programmi lõpp 74

75 Redaktoris kasutatakse pseudokäske (direktiive, pseudooperatsioone), mis täidavad järgmisi funktsioone: Org <addr> Direktiiv annab ette aadressi, millest alates programm salvestatakse mällu. Kuna simulaatoris kasutatakse eraldi mäluruume programmi koodi ja programmis kasutatavate andmete säilitamiseks, siis direktiivi tuleb rakendada eraldi nii programmi koodi mäluruumi algusaadressi defineerimiseks kui ka andmete mäluruumi algusaadressi defineerimiseks. Org 1A00h ; programmi algusaadress mälus on 1A00h. Direktiivi parameeter <addr> on 16-bitine aadress, mis määrab mälupesa aadressi, kuhu salvestatakse programmi esimese käsu käsukood või esimene andmebait. Programmi kõik käsud, mille mälus paiknemise algusaadress määrati kindlaks direktiiviga Org, salvestatakse antud algusaadressile järgnevate aadressidega mälupesadesse. Kui programmi alguses direktiiv Org puudub, siis vaikimisi loetakse programmi algusaadressiks väärtust 0000h Kui programmis soovitakse kasutada erinevaid (mittejärjestikuseid) mälualasid, siis iga uue mäluala defineerimisel tuleb uuesti sisestada direktiiv Org koos vastava uue aadressi väärtusega. Näiteks toodud programmifragment salvestatakse mällu järgmiselt: Org 100h mvi a, 3Bh ; Käsk mvi a salvestatakse mälus pesasse aadressiga 0100h. mvi b, 44h ; Käsk mvi b salvestatakse mälus pesasse aadressiga 0102h ; Käsk mvi on kahebaidine käsk, hõivates mälus kaks järjestikuliste ; aadressidega mälupesa. Org 200h nop nop mvic, 01h hlt ; Käsk nop salvestatakse mälupesasse aadressiga 0200h. [vt Märkus] Märkus Mäluruumi suurus, mis näites määrati kindlaks direktiiviga Org 100h, asub tegelikult aadressivahemikus 0100h kuni 01ffh, st hõlmab kogu aadressiruumi osa kuni järgmise 75

76 direktiivini Org 200h. Toodud näites tähendab see seda, et mälupesad aadressidega 0104h kuni 01ffh on kasutamata ning tüüpiliselt täidetud konstantidega 00h. Db <byte> Direktiiviga saab määrata mällu salvestatavaid andmeid (kus andmed mälus tegelikult paiknevad, seda saab määrata menüüvalikutega: Options => Debugger Options => Data Entry ). Direktiivi parameeter <byte> võib sisaldada andmebaite või sümbolite, mis on üksteisest eraldatud komadega jada (tekst). Kui tegemist on sümbolite jadaga (tekstiga), siis selle eristamiseks arvudest eraldatakse jada algus ja lõpp apostroofiga ehk ülakomaga ( ). Direktiiviga Db 3,7,15,31 salvestatakse mällu nelja kümnendsüsteemi arvu väärtused: 3, 7, 15 ja 31. Direktiiviga Db HELLO salvestatakse mällu neli sümbolit (tekst) H, E, L, L, O. Et tegemist on sümbolitega, seda näitavad sümbolstringi ees ja lõpus olevad ülakomad ( ). Direktiiviga DB 3, 7, HELLO, 15, 31 salvestatakse mällu nii arvud 3, 7, 15, 31 kui ka tekst HELLO. KickOff <addr> Direktiiviga määratakse kindlaks programmi käivitusaadress. Käivitusaadressi väärtus on määratud parameetriga <addr>. Kui direktiivi kasutatakse, siis peab programmile selle direktiiviga ette antud käivitusaadress olema kooskõlas menüüs Debugger Options => valik Debugger => väljas Code Entry määratletud aadressiruumiga. Sageli võivad direktiivid Org ja KickOff olla määratud ühesuguste aadresside väärtustega. Kui direktiivi KickOff ei ole programmis kasutatud, siis programm käivitub aadressilt, mis on määratud direktiiviga Org. 76

77 FillByte <count>, <byte> Direktiiviga saab määrata nii mällu salvestatavate baitide arvu kui ka andmebaite endid. Salvestuse algaadress tuleb eelnevat kindlaks määrata direktiiviga Org. Direktiivi parameeter <count> määrab mälualasse salvestatavate andmebaitide arvu. Direktiivi parameeter <byte> määrab mälualasse salvestatavad andmed. Näiteks direktiivide Org 250h FillByte 5, 36h abil salvestatakse mällu, alates aadressilt 250h, viis andmebaiti kõik väärtusega 36h. Alternatiivselt võib sümbolite sisestuseks kasutada direktiivi FillByte <count>, char kus char on sisestatavate sümbolite (tavaliselt tekst) heksadetsimaalkoodid). Direktiivil Fill Byte on samuti laiendatud variant FillByteStep <count>, <start>, <step>, <direction> Direktiivi parameetriga <count> määratakse mällu salvestatavate andmebaitide arv. Direktiivi parameetriga <start> määratakse jadas esimesena mällu salvestatava arvu väärtus. Direktiivi parameetriga <step> määratakse sisestatava andmestu sammu väärtus. Direktiivi parameetriga <direction> määratakse see, kas andmete mällu salvestamine toimub nende arvväärtuse kasvavas järjekorras, sellisel juhul on parameetri väärtus Up, või kui soovitakse salvestatakse arvude arvväärtuse kahanevas järjekorras, siis parameetri väärtuseks tuleb valida Down. Ülakoma sisestamiseks sobib QWERTY-sõrmistiku klahv Näiteks direktiiviga FillByteStep 4, 3, 2, Up 77

78 salvestatakse mällu neli andmebaiti (<4>) nende arvväärtuste kasvavas järjekorras ( Up ), kusjuures esimese andmebaidi väärtus on 3 (<3>) sammuga 2 (<2>), st mällu salvestatakse järgmine kümnendsüsteemi kuuluvate arvude jada: 3, 5, 7, 9. Alternatiivselt võib direktiivi kasutada teksti sisestamiseks kujul: FillByteStep <count>, char, <step>, <direction> Redaktori kasutamisel tuleks juhinduda järgnevast: 1. Direktiivides ja märgendites võib kasutada kas ainult väike- või suurtähti, kuid lubatud on samuti väike- ja suurtähtede segakasutus ühes ja samas direktiivis või märgendis. Viimast varianti ei saa pidada soovitavaks. 2. Iga programm peab omama lõputunnust, selleks on mikroprotsessori juhtimiskäsk hlt (peatus). Programmi töötlemisel, enne siirdumist redaktorrežiimi, tuleb kompileeritav assembleriprogramm eelnevalt salvestada. Lisaks assembleriprogrammile koostab silur programmile automaatselt listingu faili (joonis 3) ja objektkoodi faili (joonis 4). Joonis 3. Listingufaili ekraanitõmmis 78

79 Joonis 4. Objektkoodi ekraanitõmmis Juhis Kui tekib vajadus korrigeerida andmemälu mälupesadesse salvestatud andmeid, siis tuleks toimida järgmiselt: 1. Viia kursor andmemälus mälupesale, mille sisu soovitakse korrigeerida. 2. Vasaku hiireklikiga aktiveerida muudetava mälupesa sisu (mälupesas olev koodsõna ümbritsetakse ruuduga ja selle tekst esitatakse valgena sinisel taustal). 3. Klaviatuuri sõrmise Enter vajutusel kuvatakse menüü data change Sisestada selles menüüs tööväljale uus (korrigeeritud) 2-järguline heksadetsimaalkoodi andmesõna. 5. Kinnitada valikut nupu OK abil. 6. Korrektsioonirežiimist väljumiseks tuleb kursor viia programmiväljale ja teha seal vasak hiireklikk. 79

80 Näide ; Näidisprogramm direktiivide "Org" ja "Kickoff" kasutamise võimalustest (variant 1) ; ; Töödeldav programm on jaotatud kaheks osaks ; Programmi käivitusaadress ei lange kokku programmiteksti esimese osa ; sisestuse algusaadressiga ; ; Programmi talitlust selgitavad kommentaarid: ; Vähendatava arvu väärtus on 06h, lahutaja väärtus on 09h ; Vähendatav asub mälupesas aadressiga 2000h ; Lahutaja asub mälupesas aadressiga 2001h ; Vahe väärtus asub mälupesas aadressiga 2002h ; Vahe märk asub mälupesas aadressiga 2003h ; Kui vahe on positiivne, siis märgi väärtus on "0", ; kui vahe väärtus on negatiivne, siis märgi väärtus on "1" ; Programm on kommenteerimata ; ; Kickoff 1030h ; Programmi käivitusaadress Org 2000h ; Programmis kasutatavate andmemassiivi algusaadress Db 06h,09h,00h,00h ; Järjestikuste aadressidega mälupesades sisalduvad ; järgmised andmed: vähendatav, lahutaja, vahe väärtus ja ; märgijärgu algväärtus (võrdub "00") Org 1000h ; Programmiteksti esimese osa algusaadress ; L1: ; Programmiteksti esimene osa mvi c,00h lda 2001h mov b,a lda 2000h sub b jnc Result cma inr a inr c Result: sta 2002h mov a,c sta 2003h hlt ; Org 1030h ; Programmiteksti teise osa algusaadress ; Sellelt aadressilt toimub programmi käivitus ; jmp L1 ; Siire programmiteksti esimesele osale 80

81 ; Näidisprogramm direktiivide "Org" ja "Kickoff" kasutamise võimalustest (variant 2) ; ; Programmi käivitusaadress langeb kokku programmiteksti sisestuse algusaadressiga ; ; Programmi talitlust selgitavad kommentaarid: ; Vähendatava arvu väärtus on 06h, lahutaja väärtus on 09h ; Vähendatav asub mälupesas aadressiga 2000h ; Lahutaja asub mälupesas aadressiga 2001h ; Vahe väärtus asub mälupesas aadressiga 2002h ; Vahe märk asub mälupesas aadressiga 2003h ; Kui vahe on positiivne, siis märgi väärtus on "0", ; kui vahe väärtus on negatiivne, siis märgi väärtus on "1" ; Programm on kommenteerimata ; ; Org 2000h ; Programmis kasutatavate andmemassiivi algusaadress Db 06h,09h,00h,00h ; Järjestikuste aadressidega mälupesades sisalduvad ; järgmised andmed: vähendatav, lahutaja, vahe väärtus ja ; märgijärgu algväärtus (võrdub "00") Org 1000h ; Programmiteksti algusaadress, ühtlasi on see programmi käivitusaadress ; mvi c,00h lda 2001h mov b,a lda 2000h sub b jnc Result cma inr a inr c Result: sta 2002h mov a,c sta 2003h hlt ; Märkus Kui programmi käivitusaadress langeb kokku programmiteksti sisestamise algusaadressiga, siis ei ole vaja programmi käivitamiseks kasutada eraldi direktiivi Kickoff, piisab direktiivist Org, nagu seda on tehtud variandis 2. Juhul, kui seda tehakse, siis kompilaator väljastab teatise, et direktiivi Kickoff ignoreeritakse. 81

82 P8. Siluri funktsioonid Pärast seda, kui assembleris koostatud kood on kompileeritud, võib asuda programmi kasutama. Kui soovitakse programmi käitumist lähemalt jälgida, näiteks kuidas töötluse käigus muutuvad andmed mikroprotsessori sisemistes registrites või virtuaalsetes mälu- ja sisend-väljundsüsteemides, ehk hoopiski programmi modifitseerida, siis on seda otstarbekas teha silurežiimis, rakendades programmi töötlusel sammrežiimi. Enne siirdumist silurežiimi, tuleb eelnevalt määrata millistes mälualades asub silutav programm, selle (lähte)andmed, pinumälu (pinu algusaadress) ja sisend-väljundpordid (kui neid programmis kasutatakse). Selleks tuleb klikkida peamenüü valikul Options ja avanenud aknas valida Debugger Options. Avanenud menüüaknas väärtustada väljas Initials mälualade algusaadressid: Code Entry, Data Entry ja Stack Entry. Portidele aadresside omistamisel kasutada välja Port Assignements. Siirdumiseks silurežiimi tuleb simulaatori põhimenüüs minna valikule Project, kus avanevas rippmenüüs valida Debug Mode. Õigel valikul avaneb silurežiimi tööaken kujul: 82

83 Tööaknas kuvatakse siluri viite põhilist tööpaani //pane// - koodipaan, andmepaan, pinupaan, lippude paan ja registrite paan. Koodipaanis kuvatakse programmi mälutõmmis nii assemblerikoodi mnemoonikas kui ka masinakoodis kuueteistkümnendkoodis. Iga programmirea alguses visualiseeritakse aadress, kus mälus paikneb vastava käsu esimene bait, näiteks: LXI HL, LHI BC, 2090 Andmepaanis kuvatakse mälupesades sisalduv informatsioon. Ühele kuvareale väljastatakse kaheksas järjestikuste aadressidega mälupesades olevad andmed (kuueteistkümnendkoodis). Lisaks kuvatakse eraldi väljas (paremal) mälupesades sisalduvatele 16-koodidele vastavad ASCII-koodi sümbolid (neist on abi eriti siis, kui mällu on salvestatud näiteks mingi tekst). Registripaanis kuvatakse mikroprotsessori programmistimudelis esitatud tööregistrite A, B, C, D, E, H, L, [HL] (aadressiregistri funktsioonis kasutatav registripaar) ja PC (käsuloendur) sisalduvad andmed kuueteistkümnendkoodis. 83

84 Lippude paanis kuvatakse protsessori lippude S (märk), Z (null), A (abiülekanne ehk AC), P (paarsus) ja C (ülekanne CY) väärtused binaarkoodis. Lisaks kuvatakse kokkuvõtlikult lipuregistris oleva koodi väärtus heksadetsimaalkujul [xx]. Pinupaanis kuvatakse mälus moodustatud pinumälu mälupesadesse salvestatud andmed kahebaidiste heksadetsimaalkoodi arvudena: Pinuviida väärtus [SP+0000] 00C9 Aadress pinus Pinuala mälupesades sisalduvad andmebaidid 00h ja C9h Pinumälu sisu kuvatakse aadressivahemikus (SP ± 5) pinuaadressi, st alates [SP+0000] kuni [SP-000A] ja [SP+000A]. Protsessori portide olekuid ja portides sisalduvaid andmeid saab vaadelda ja vajadusel ka korrigeerida, kas läbi kuvaakna Ports või siis määratleda kasutatavaid porte läbi menüüde: Options => Debugger Options => Debugger. Esimesel juhul tuleb põhimenüüst valida Tools ning avanenud hüpikaknas valida Show Ports. Kuvatakse kolme pordi (port A, port B ja port C) töörežiimid, st kas vastav port töötab andmete sisestamise režiimis ( Input Ports ) või väljastamise režiimis ( Output Ports ). Mõlemal juhul saab raadionuppude abil määrata 8-bitistes portides (A, B või C) üksikute pordijärkudele omistatavaid kahendväärtusi. Lisaks kuvatakse, nuppudest paremal asuvas väljas, pordijärkudele omistatud väärtust kuueteistkümned-, kümnend- ja kaheksandkoodis. Silurežiimis on mugav teha muudatusi silutavas programmis lisada, kustutada või muuta käske koodipaanis. Samuti on võimalik muuta mälupaanis kuvatavate andmete väärtuseid. Kui tehakse korrektsioone koodi- või andmepaanis, siis muudetakse küll vastavate andmete väärtusi kompileeritud programmis, kuid algses (originaalses) programmis tehtud muudatused ei kajastu! Lisaks on andmepaani all oleval ribal esitatud viis programmi redigeerimise võimalust, mida saab juhtida klaviatuuri funktsionaalsete sõrmiste abil: 84

85 Klahv Enter muudab aktiveeritud (märgistatud) programmirea; Klahv Insert sisestab uue programmirea; Klahv Delete kustutab aktiivse (märgistatud) programmirea; Klahv Home toimub siire programmi algusesse; Klahv End toimub siire programmi lõppu. NB! Enne valitud paanil korralduste sisestamist, tuleb vastav paan aktiveerida, st viia kursor paanile ja teha hiire vasaku klahviga klõps. Hõlbustamaks infotöötlust silurežiimis võib, kõrvuti hiirega juhitavate tegevustega, rakendada klaviatuurilt sisestatavaid sõrmiskombinatsioone. Kasutusel on järgmised sõrmiskombinatsioonid: Koodipaani valikud Sõrmis Enter: Redigeerib jooksvat koodirida Insert: Sisestab uue koodirea jooksvasse koodiritta Delete: Kustutab jooksva koodirea Home: Siire programmi algusesse End: Siire programmi lõppu (programmi viimasele aadressile) Page Up: Programmi keritakse ülespoole 15 rea võrra Page Down: Programmi keritakse allapoole 15 rea võrra Ctrl+Page Up: Programmi keritakse ülespoole 60 rea võrra Ctrl+Page Down: Programmi keritakse allapoole 60 rea võrra Märkus: Klaviatuuri sõrmiste ja ühekordne vajutus nihutab programmirida vastavalt ülespoole või allapoole ühe rea võrra. Sõrmiste pideval vajutusel keritakse programmiridu üles või alla seni, kuni vastav sõrmis on alla vajutatud. Shift+A: Siire kasutaja poolt ette antud aadressile Shift+C: Käsus call toimub siire tagasi sisenemispunkti (sisenemise aadressile) Shift+F: Siire tagasi call või jmp käsu väljakutseaadressile Shift+N: Jooksev programmirida määratakse sama funktsiooni täitma kui direktiiv Org Shift+S: Otsitakse etteantud stringi või kuueteistkümnendkoodi baiti (baite) mälus Shift+L: Alustatakse uut otsingut 85

86 Andmepaani valikud Sõrmis Enter: Redigeeritakse jooksvat baiti Insert: Sisestatakse string või bait (baidid) Ctrl+Page Up: Keritakse andmepaanil kuvatavat informatsiooni ülespoole 60 rea võrra Ctrl+Page Down: Keritakse andmepaanil kuvatavat informatsiooni allapoole 60 rea võrra Vt eelnev Märkus. Shift+A: Siire kasutaja poolt sisestatud aadressile Shift+O: Siire valitud programmireale Shift+S: Etteantud stringi või kuueteistkümnendkoodi baidi (baitide) otsing mälus Shift+L: Alustatakse uut otsingut Registripaani valikud Sõrmis Enter: Muudetakse valitud registris olevat andmeväärtust Numerical Pad (+): Suurendatakse (inkrementeeritakse) valitud registris olevat andmeväärtus Numerical Pad(-) : Vähendatakse (dekrementeeritakse) valitud registris olevat andmeväärtust Lippude paani valikud Sõrmis Enter: Inverteeritakse lipule omistatud binaarkoodi väärtust Pinupaani valikud Sõrmis Enter: Muudetakse pinuaadressi väärtust Kõrvuti simulaatori tööriistaribal olevate funktsionaalsete nuppudega, võib kasutada samuti klaviatuurilt sõrmiskombinatsioonide abil sisestatavaid käsklusi, mis toimivad erinevates simulaatori talitlusrežiimides: Redaktorrežiim File Menu, New File: Ctrl+Shift+N File Menu, Open File: Ctrl+Shift+O File Menu, Save File: Ctrl+Shift+S File Menu, Close File: Ctrl+Shift+C 86

87 File Menu, Print File: Ctrl+P File Menu, Exit Program: Alt+X Edit Menu, Undo: Ctrl+Z Edit Menu, Redo: Ctrl+D Edit Menu, Cut: Ctrl+X Edit Menu, Copy: Ctrl+C Edit Menu, Paste: Ctrl+V Edit Menu, Select All: Ctrl+A Edit Menu, Find: Ctrl+F Edit Menu, Replace: Ctrl+R Project Menu, Compile: Ctrl+F9 Project Menu, Debug: Ctrl+F10 Silurežiim Project Menu, Terminate: Ctrl+F2 Project Menu, ReLoad: Ctrl+L Project Menu, Trace Into: F7 Project Menu, Step Over: F8 Project Menu, Run Here: F4 Project Menu, Run: F9 Project Menu, Breakpoint: F5 Project Menu, Breakpoint State Change: Ctrl+F5 Tools Menu, Show Ports: Ctrl+Alt+P Next Pane: F6 või Ctrl+Right Arrow Previous Pane: Shift+F6 või Ctrl+Left Arrow Üldised funktsioonid Tools Menu, ASCII Table: Ctrl+Alt+A Tools Menu, Base Converter: Ctrl+Alt+B Tools Menu, Character Map: Ctrl+Alt+C Tools Menu, Hex Calculator: Ctrl+Alt+H Tools Menu, Keyboard Scan Codes: Ctrl+Alt+S Navigeerimine: Nooleklahvid ( ) Kui soovitakse muuta simulaatori talitlusrežiimi, siis tuleb kasutada simulaatori põhimenüüs valikut Options. 87

88 Töölaua ekraanitõmmis 88

89 Näidisprogrammid Näide 1 Programmi listing assemblerikoodis ================================================= KickOff 2000h Org 1000h ;This is where the control will first transferred ;Code entry point Db 0Dh, 0Ah,'This is a sample text...' FillByte 5,41h ; = 41h,41h,41h,41h,41h FillByteStep 10,'a',2,'Up' Org 2000h ;Code entry point lxi hl,2070h lxi bc,2090h lb1: mov a,m cpo 0dh jz exit cpi 30h jc next cpi 39h jnc next stax bc inx bc next: inx hl jmp lb1 exit: hlt Org 2070h Db 35h,2Fh,30h,39h,3Ah,37h,7Fh,31h,0dh,32h,13h ============================================== 89

90 Programmi listing pärast transleerimist (assembleerimist) D DCR C. ; Db 0Dh, 0Ah, This is a sample text A LDAX BC MOV D,H T MOV L,B h MOV L,C i MOV M,E s RIM MOV L,C i MOV M,E s RIM A 61 MOV H,C a B 20 RIM C 73 MOV M,E s D 61 MOV H,C a E 6D MOV L,L m F 70 MOV M,B p C MOV L,H l MOV H,L e RIM MOV M,H t MOV H,L e MOV A,B x MOV M,H t E2E MVI L,2E E0D MVI L,0D B 0A LDAX BC C 41 MOV B,C A ; Fill Byte 5, 41h D 41 MOV B,C A E 41 MOV B,C A F 41 MOV B,C A MOV B,C A MOV H,C a ;Fill ByteStep 10, a, 2, Up MOV H,E c MOV H,L e MOV H,A g MOV L,C i B MOV L,E k D MOV L,L m F MOV L,A o MOV M,C q A 73 MOV M,E s LXI HL, LXI BC,

91 E MOV A,M E40D00 CPO 000D A CA1D20 JZ 201D D FE30 CPI F DA1920 JC FE39 CPI D21920 JNC STAX BC INX BC INX HL # A C30620 JMP D 76 HLT v DCR M 5 ; Db 35h, 2Fh, 30h, 39h, 3Ah, 37h, 7Fh, 31h, 0Dh, F CMA / ; 32h, 13h SIM DAD SP A377F LDA 7F D32 LXI SP,320D A 13 INX DE 91

92 Näide 2 Programm kahe 8-bitise kuueteistkümnendarvu liitmiseks Programmi algoritm 1. Laadida mälust esimese operandi (liidetava) väärtus akumulaatorregistrisse (A); 2. Suunata akumulaatorregistri sisu registrisse B; 3. Laadida mälust teise (operandi) liidetava väärtus akumulaatrorregistrisse A; 4. Liita registrites A ja B olevad operandid; 5. Kontrollida ülekande olemasolu (lipp CY); 6. Salvestada saadud summa (tulemus) ja ülekandelipu väärtus mällu; 7. Lõpetada programm. Lähteandmed programmile Operand 1, väärtusega 80h, asub mälupesas aadressiga 2150h; Operand 2, väärtusega 80h, asub mälupesas aadressiga 2151h; Summa (tulem) salvestada mälupessa aadressiga 2152h. Algselt salvestada sellesse mälupesasse konstant 00h; Ülekandelipu (CY ehk C) väärtus salvestada mälupessa aadressiga 2153h; Algselt salvestada sellesse mälupesasse konstant 00h. Assemblerprogramm ; Programm ADD8bit.a85 ; Programmi käivitustingimused Org 1000h ; Programmi tekst mvi c, 00h lda 2150h mov b, a lda 2151h add b jnc Loop inr c Loop: sta 2152h mov a, c sta 2153h hlt ; Siire programsele tsüklile nimega Loop ; Programmi lõpp 92

93 Enne programmi käivitust silurežiimis väärtustati menüüs Debug Options järgmised valikud: Code Entry: 1000 hex Data Entry: 2000 hex Stack Entry: 3000 hex Programm salvestatakse kausta Demo Files. Assembleriprogrammi listingu fail ADD8bit.lst E00 MVI C, A5021 LDA 2150 :P! MOV B, A G A5121 LDA 2151 :Q! ADD B 6 100A D20E10 JNC 100E D 0C INR C E STA R! MOV A, C y STA S! HLT v Assembleriprogrammi objektfail ADD8bit.obj 0E003A A D20E100C Märkused 1. Laboratoorsetes töödes koostatavates programmides on nõutav, et kõik programmides kasutatavad lähteandmed ja saadavad tulemid paikneksid mäluruumi selles osas, mis on ette nähtud andmete säilitamiseks. Programmi töötluse käigus toimub lähteandmete laadimine mälust protsessori tööregistritesse ja töötlusel moodustuvad tulemid tuleb salvestada protsessori registritest mällu. 2. Kui assembleriprogramm on silutud (töötab korrektselt) ja on õppejõu poolt kontrollitud, siis tuleb loodud programm kaustast Demo Files kustutada. 93

94 Näide 3 Programm kahe 16-koodis esitatud arvu liitmiseks Koostada programm, mis liidaks kaks 16-koodis esitatud 8-bitist positiivset täisarvu. Programm koostada kahes variandis: 1. Liidetavad asuvad mälus järjestikuliste aadressidega mälupesades xxxxh ja xxx(x+1)h ning tulem salvestatakse mälupessa aadressiga xxx(x+2)h. 2. Liidetavad asuvad mälus mälupesades mille aadressid ei paikne järjestikku, st aadressidel xxxxh ja yyyyh ning tulem salvestatakse mälupessa aadressiga zzzzh (xxxxh yyyyh zzzzh). Programmi koostamisel lähtuda simulaatori Sim 8085 µp Simulator mäluruumi jaotusest koodi- ja andmemäluruumideks: Code Entry: 1000h Data Entry: 2000h Programmi õigsuse kontrolliks on valitud liidetavad (operandid) väärtustega A8h ja 2Eh. Kui programm töötab korrektselt, siis operandide liitmisel saadakse tulemus A8h + 2Eh = D6h Näidisprogrammide koostamisel ei ole pööratud tähelepanu mitte koodi kompaktsusele, vaid on püütud näidata erinevaid võimalusi protsessori ja mälu omavaheliseks suhtluseks. Näidisprogrammides toodud kommentaarid on liialt detailsed, praktiliselt kasutatavates programmides tuleks seda vältida ja kirjeldada vaid programmi talitluse seisukohalt olulisimat. Variant 1 ; Programm SumV1.a85 sooritab 16-koodis esitatud 8-bitiste märgita täisarvude liitmist. ; Operand 1, väärtusega A8h, asub mälupesas aadressiga 2000h. ; Operand 2, väärtusega 2Eh, asub mälupesas aadressiga 2001h. ; Liitmise tulem salvestatakse mälupessa aadressiga 2002h. ; Programmi algusaadress on 1000h. Org 2000h ; Andmeruumi algusaadress Db A8h, 2Eh, 00h ; Operandide 1 ja 2 ning tulemi algväärtus (00h) Org 1000h ; Programmi käivitusaadress lxi hl, 2000h ; Operandi 1 mäluaadress mov b, m ; Operandi 1 edastus mälust registrisse b 94

95 lda 2001h add b inx hl inx hl mov m, a hlt ; Operandi 2 edastus mälust registrisse a ; Käsu lda asemel võib kasutada samuti käsujada: ; inx hl ; mov a, m ; Operandide 1 ja 2 väärtuste summeerimine ; Tulemi mäluaadressi ettevalmistamine ; Tulemi salvestamine registrist a mällu ; Kolme käsu inx hl, inx hl, mov m, a asemel võib kasutada üht käsku ; sta 2002h ; Programmi lõpp Variant 2 ; Programm SumV2.a85 sooritab 16-koodis esitatud 8-bitiste märgita täisarvude liitmist. ; Operand 1, väärtusega A8h, asub mälupesas aadressiga 2004h. ; Operand 2, väärtusega 2Eh, asub mälupesas aadressiga 2010h. ; Liitmise tulem salvestatakse mälupessa aadressiga 202fh. ; Programmi algusaadress on 1000h. Org 2004h Db A8h Org 2010h Db 2Eh Org 202fh Db 00h Org 1000h lda 2004h mov d, a lda 2010h add d lxi hl, 202fh mov m, a hlt ; Andmeruumi aadress ; Operandide 1 kandmine andmemällu ;Andmeruumi aadress ; Operandi 2 kandmine andmemällu ; Andmeruumi aadress ; Tulemi algväärtuse (00h) kandmine andmemällu ; Programmi käivitusaadress ; Operandi 1 edastus mälust registrisse a ; Operandi 1 edastus registrisse d ; Operandi 2 edastus mälust registrisse a ; Liitmise operatsioon ; Tulemi aadressi ettevalmistus ; Tulemi salvestus mällu ; Programmi lõpp Märkus Tulemi väärtuse vaatamisel simulaatori andmepaanil, saab kuvatavat informatsiooni nihutada kas üles- või allapoole klaviatuuri nooleklahvidega ja. 95

96 Praktiliste tööde vormistamine 1. Töö vormistada kirjalikult valgele paberile formaadis A4. 2. Töö aruandes esitada: a. Programmi vooskeem (vt näide). NB! Mitte kasutada struktuurprogrammeerimises kasutatavat graafilist esitust Nassi-Shneidermani skeemi (struktogrammi ehk NSDd). b. Programmi lähtekoodi (programmi kood enne assembleerimist) kommenteeritud listing. c. Praktilise töö lisaülesannete, kui need on töös ette nähtud, lahendused vastavalt töö ülesandes toodud nõuetele. 3. Iga laboratoorne töö varustada individuaalse tiitellehega (vt näidis). 4. Kaitsmisele esitada kõik sooritatud tööd kokkuköidetult. Praktiliste tööde kaitsmine Praktiliste tööde kaitsmine toimub individuaalselt. Tööde kaitsmisel tuleb osata selgitada programmide talitlust, nendes kasutatud käske ja assembleri direktiive (pseudokäske). Tuleb teada Inteli mikroprotsessori 8085 mikroarhitektuuri kuuluvate lülituste funktsioone ja nende talitluse põhimõtteid. Tuleb osata selgitada, millised tegevused toimuvad protsessoris käskude töötlemisel üksikuis masinatsüklites (lähtudes talitluse ajadiagrammist). Eksamieeldus - sooritatud ja kaitstud kõik programmis ette nähtud praktilised tööd. 96

97 Tiitellehe näidis TALLINNA TEHNIKAÜLIKOOL Arvutisüsteemide instituut Juurimise algoritm ja programm Arvutiarhitektuurid (IAY 0520) Praktiline töö Üliõpilane: Töö sooritatud: Juhendaja: Töö arvestatud: 97

98 Näide Klaviatuuri klahvi lülitusväreluse kõrvaldamiseks kasutatava programmi vooskeem Algus Klaviatuuri skaneerimine _ Klahv lülitunud? + Lülitunud klahvi koodi töötlus Viide 45 ms Klaviatuuri skaneerimine _ Klahv ennistunud? + Viide 45 ms Lõpp 98

99 Praktiliste tööde vooskeemidel kasutatavaid tingmärke Käivitus / lõpetus Tegevus või protsess Otsustus Ettevalmistus (järgmise sammu ettevalmistamine protsessis) Alamprogramm või eelnevalt defineeritud protsess Andmete salvestus või salvestatud andmed Väljumine vooskeemi leheküljelt (näidatud neli erinevat võimalikku väljumissuunda) Ühendus (osundab voo jätkumise kohale (kohale millel on samasugune tähistus)) Voo kulgemist osundav suunanool Kommentaar 99

8085 INSTRUCTION SET INSTRUCTION DETAILS

8085 INSTRUCTION SET INSTRUCTION DETAILS 8085 INSTRUCTION SET INSTRUCTION DETAILS DATA TRANSFER INSTRUCTIONS MOV Rd, Rs Copy from source to destination This instruction copies the contents of the source register Rs into the destination register

More information

Instruction Set Instruction set of 8085 can be classified in following groups: Data Transfer Instructions These instructions can perform data transfer operations between Registers of 8085 e.g. MOV 8085

More information

(2) Explain the addressing mode of OR What do you mean by addressing mode? Explain diff. addressing mode for 8085 with examples.

(2) Explain the addressing mode of OR What do you mean by addressing mode? Explain diff. addressing mode for 8085 with examples. (1) Explain instruction format and Opcode format of 8085 μp with example. OR With help of examples, explain the formation of opcodes of 8085 OR What is an instruction? List type of instruction based on

More information

INSTRUCTION SET OF 8085

INSTRUCTION SET OF 8085 INSTRUCTION SET OF 8085 Instruction Set of 8085 An instruction is a binary pattern designed inside a microprocessor to perform a specific function. The entire group of instructions that a microprocessor

More information

Introduction to Assembly Language Programming (Instruction Set) 1/18/2011 1

Introduction to Assembly Language Programming (Instruction Set) 1/18/2011 1 Introduction to Assembly Language Programming (Instruction Set) 1/18/2011 1 High Level Language Compiler Assembly Language Assembler Machine Code Microprocessor Hardware 1/18/2011 2 8085A Instruction Set

More information

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI-621213. QUESTION BANK DEPARTMENT: EEE SUB CODE: EE2324 YR/ SEM:III/ VI SUB NAME: MICROPROCESSORS & MICROCONTROLLERS UNIT 2- PROGRAMMING OF 8085 MICROPROCESSORS

More information

SAMPLE STUDY MATERIAL

SAMPLE STUDY MATERIAL Microprocessor-IN Postal Correspondence Course 1 SAMPLE STUDY MATERIAL Instrumentation Engineering IN Postal Correspondence Course GATE & PSUs Microprocessor Microprocessor-IN Postal Correspondence Course

More information

EE309: Computer Organization, Architecture and MicroProcessors. sumantra/courses/up/up.html GND HIGH ORDER ADDRESS BUS

EE309: Computer Organization, Architecture and MicroProcessors.   sumantra/courses/up/up.html GND HIGH ORDER ADDRESS BUS CMP:8085 Primer-1 EE309: Computer Organization, rchitecture and MicroProcessors http://www.ee.iitb.ac.in/ sumantra/courses/up/up.html The 8085 Chip F LGS: S Z x x P x cy EXTERNLLY INITITED SIGNLS SERIL

More information

The 8085 Instruction Set

The 8085 Instruction Set 1 of 8 2/9/2011 5:14 PM The 8085 Instruction Set As I promised, in an earlier lesson, I am going to go through an in-depth explaination of ALL the 8085 instructions. Intel 88888 000 88888 5555555 A 8 8

More information

م.م. ماجد عيدان. Introduction to microprocessor and microcomputer

م.م. ماجد عيدان. Introduction to microprocessor and microcomputer Lect. (1) Introduction to microprocessor and microcomputer Reference Books: 1. Ramesh S. Gaonkar, "Microprocessor Architecture, Programming and Application with the 8085". 2. Anokh Singh, A.K. Chhabra,Fundamentals

More information

UNIT I. Differences between: Microcomputer, Microprocessor and Microcontroller

UNIT I. Differences between: Microcomputer, Microprocessor and Microcontroller UNIT I SYLLABUS INTRODUCTION TO 8085 Intel 8085 Microprocessor architecture signals Addressing modes Instruction classification Instruction set Timing diagram ALP format Programming 8085 8-bit and 16-bit

More information

Unit 1 8 BIT MICROPROCESSOR ARCHITECTURE

Unit 1 8 BIT MICROPROCESSOR ARCHITECTURE Unit 1 8 BIT MICROPROCESSOR ARCHITECTURE 8085 -Internal Architecture - Addressing modes - Instruction set -Timing diagrams -Interrupts-Assembly language Programming 1. Internal Architecture of 8085 Microprocessor

More information

Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web: Ph:

Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web:     Ph: Serial :. PT_EE-EC_A_Microprocessor_968 Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web: E-mail: info@madeeasy.in Ph: -452462 CLASS TEST 28-9 Subject : Microprocessors

More information

Its Assembly language programming

Its Assembly language programming 8085 Architecture & Its Assembly language programming Dr A Sahu Dept of Computer Science & Engineering IIT Guwahati 8085 Era and Features 8085 Outline Block diagram (Data Path) Bus Structure Register Structure

More information

MSMF GATE CENTRE. Sub: MICROPROCESSORS. Time: 50min Date: Marks:33

MSMF GATE CENTRE. Sub: MICROPROCESSORS. Time: 50min Date: Marks:33 MSMF GATE CENTRE Sub: MICROPROCESSORS Time: 50min Date:20-12-16 Marks:33 1. Which interrupt has highest priority in 8085 microprocessor? a) INTR b) RST 4.5 c) RST 6.5 d) RST 7.5 2. In 8085 microprocessor,

More information

Assembly Language Programming of 8085

Assembly Language Programming of 8085 Assembly Language Programming of 8085 1. Introduction A microprocessor executes instructions given by the user Instructions should be in a language known to the microprocessor Microprocessor understands

More information

COPYRIGHT IS NOT RESERVED BY AUTHORS. AUTHORS ARE NOT RESPONSIBLE FOR ANY LEGAL ISSUES ARISING OUT OF ANY COPYRIGHT DEMANDS

COPYRIGHT IS NOT RESERVED BY AUTHORS. AUTHORS ARE NOT RESPONSIBLE FOR ANY LEGAL ISSUES ARISING OUT OF ANY COPYRIGHT DEMANDS COPYRIGHT IS NOT RESERVED BY AUTHORS. AUTHORS ARE NOT RESPONSIBLE FOR ANY LEGAL ISSUES ARISING OUT OF ANY COPYRIGHT DEMANDS AND/OR REPRINT ISSUES CONTAINED IN THIS MATERIALS. THIS IS NOT MEANT FOR ANY

More information

Assembly Language Programming of 8085

Assembly Language Programming of 8085 Assembly Language Programming of 8085 Topics 1. Introduction 2. Programming model of 8085 3. Instruction set of 8085 4. Example Programs 5. Addressing modes of 8085 6. Instruction & Data Formats of 8085

More information

LABORATORY MANUAL. PROGRAMME: B.Tech SEMESTER /YEAR: 3rd year 5th Semester SUBJECT CODE: CS592 SUBJECT NAME: Microprocessor & Microcontroller Lab

LABORATORY MANUAL. PROGRAMME: B.Tech SEMESTER /YEAR: 3rd year 5th Semester SUBJECT CODE: CS592 SUBJECT NAME: Microprocessor & Microcontroller Lab LABORATORY MANUAL PROGRAMME: B.Tech SEMESTER /YEAR: 3rd year 5th Semester SUBJECT CODE: CS592 SUBJECT NAME: Microprocessor & Microcontroller Lab DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING INSTITUTE OF

More information

Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web: Ph:

Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web:     Ph: Serial : 01. ND_EE_NW_Microprocessors_150718 Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web: E-mail: info@madeeasy.in Ph: 011-45124612 CLASS TEST 2018-19 ELECTRICAL

More information

ELECTRICAL ENGINEERING

ELECTRICAL ENGINEERING Serial : 1. JP_EE_Microprocessor_130618 CLASS TEST Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web: E-mail: info@madeeasy.in Ph: 011-45124612 ELECTRICAL ENGINEERING

More information

G. Pullaiah College of Engineering and Technology: Kurnool Department Of Electronics and Communication Engineering

G. Pullaiah College of Engineering and Technology: Kurnool Department Of Electronics and Communication Engineering G. Pullaiah College of Engineering and Technology: Kurnool Department Of Electronics and Communication Engineering LECTURE NOTES MICROPROCESSORS AND INTERFACING PREPARED BY V.SHANTHI ASST PROFESSOR DEPT

More information

LIST OF PROGRAMS. Prg. Name of the Program. 1 Study of Pin Diagram of Study of Architecture of Study of 8085 Kit.

LIST OF PROGRAMS. Prg. Name of the Program. 1 Study of Pin Diagram of Study of Architecture of Study of 8085 Kit. LIST OF PROGRAMS Prg. Name of the Program No. 1 Study of Pin Diagram of 8085 2 Study of Architecture of 8085 3 Study of 8085 Kit 4 Reverse Order 5 Exchange of memory blocks 6 Absolute Difference 7 Even

More information

Subject Code: Model Answer Page No: /25

Subject Code: Model Answer Page No: /25 Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme. 2) The model answer and the answer written by candidate

More information

GATE Exercises on Microprocessors

GATE Exercises on Microprocessors 1 GATE Exercises on Microprocessors Abstract This problem set has questions taken from GATE papers over the last twenty years. Teachers can use the problem set for courses tutorials. 1) The clock frequency

More information

CHETTINAD COLLEGE OF ENGINEERING AND TECHNOLOGY

CHETTINAD COLLEGE OF ENGINEERING AND TECHNOLOGY CHETTINAD COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT ELECTRONICS AND COMMUNICATION ENGINEERING CS 2252-MICROPROCESSOR AND MICROCONTROLLER COURSE NOTES UNIT I 8085 MICROPROCESSOR OBJECTIVES:.* Study

More information

Practical Course File For

Practical Course File For Practical Course File For Microprocessor (IT 473) B.Tech (IT) IV-SEM Department of IT University Institute of Engineering & Technology Panjab University, Chandigarh Page 1 INTRODUCTION... 4 EXPERIMENT-1:

More information

Mälu interfeisid Arvutikomponendid Ergo Nõmmiste

Mälu interfeisid Arvutikomponendid Ergo Nõmmiste Mälu interfeisid Arvutikomponendid Ergo Nõmmiste Mälu liigid Read-only memory (ROM) Flash memory (EEPROM) Static random access memory (SRAM) Dynamic random access memoty (DRAM) 1 kbaidine mälu vajab 10

More information

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI UNIT I THE 8085 & 8086 MICROPROCESSORS. PART A (2 Marks)

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI UNIT I THE 8085 & 8086 MICROPROCESSORS. PART A (2 Marks) MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI-621213. UNIT I THE 8085 & 8086 MICROPROCESSORS PART A (2 Marks) 1. Give the significance of SIM and RIM instruction available in 8085. [NOV/DEC 2006] Instruction

More information

UNIT 1 REFERENCE 1 PREPARED BY S.RAVINDRAKUMAR, LECT/ECE, CHETTINAD COLLEGE OF ENGG AND TECH, KARUR

UNIT 1 REFERENCE 1 PREPARED BY S.RAVINDRAKUMAR, LECT/ECE, CHETTINAD COLLEGE OF ENGG AND TECH, KARUR UNIT 1 REFERENCE 1 PROGRAMMING THE 8085 DEVELOPMENT OF PROGRAM A program is a sequence of instructions written to tell a computer to perform a specific function. The instructions are selected from the

More information

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) MODEL ANSWER

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) MODEL ANSWER MODEL ANSWER SUMMER 17 EXAMINATION Subject Title: Microprocessor Subject Code: 17443 I m p o r t a n t I n s t r u c t i o n s t o e x a m i n e r s : 1) The answers should be examined by key words and

More information

EKT222 Miroprocessor Systems Lab 5

EKT222 Miroprocessor Systems Lab 5 LAB 5: Interrupts Objectives: 1) Ability to define interrupt in 8085 microprocessor 2) Ability to understanding the interrupt structure in the 8085 microprocessor 3) Ability to create programs using the

More information

SIR.C.R.R.COLLEGE OF ENGINEERING DEPT. OF ELECTRONICS AND INSTRUMENTATION ENGG. EIE-328: MICROPROCESSOR LABORATORY 3/4 B.E. EIE: SECOND SEMESTER

SIR.C.R.R.COLLEGE OF ENGINEERING DEPT. OF ELECTRONICS AND INSTRUMENTATION ENGG. EIE-328: MICROPROCESSOR LABORATORY 3/4 B.E. EIE: SECOND SEMESTER SIR.C.R.R.COLLEGE OF ENGINEERING DEPT. OF ELECTRONICS AND INSTRUMENTATION ENGG. EIE-328: MICROPROCESSOR LABORATORY 3/4 B.E. EIE: SECOND SEMESTER (AS PER UNIVERSITY SYLLABUS) LIST OF EXPERIMENTS 1. UNDERSTANDING

More information

EXAMPLE PROGRAMS 8085

EXAMPLE PROGRAMS 8085 P! EXAMPLE PROGRAMS 8085 Statement:Multiply the 8-bit unsigned number in memory location 2200H by the 8-bit unsigned number in memory location 2201H. Store the 8 least significant bits of the result in

More information

Assembly language Programming

Assembly language Programming Assembly language Programming Applications With out the assembly language programming microprocessor can not works. Instructions are the patterns which is require by the microprocessor to done any task.

More information

ROEVER ENGINEERING COLLEGE

ROEVER ENGINEERING COLLEGE ROEVER ENGINEERING COLLEGE ELAMBALUR, PERAMBALUR- 621 212 DEPARTMENT OF INFORMATION TECHNOLOGY MICROPROCESSOR & MICROCONTROLLER 2 marks questions andanswers Unit I 1. Define microprocessor? A microprocessor

More information

PERIPHERAL INTERFACING Rev. 1.0

PERIPHERAL INTERFACING Rev. 1.0 This work is licensed under the Creative Commons Attribution-NonCommercial-Share Alike 2.5 India License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/in/deed.en

More information

The due date for submitting this assignment has passed. 1) How many times will the following loop be executed? Depends on the initial value of A

The due date for submitting this assignment has passed. 1) How many times will the following loop be executed? Depends on the initial value of A X reviewer2@nptel.iitm.ac.in Courses» and Microcontrollers Unit 4 - Week 3 Announcements Course Ask a Question Progress Mentor Course outline How to access the portal Week 3 Assignment The due date for

More information

Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web: Ph:

Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web:     Ph: Serial : LS2_EE_S_Microprocessors_2688 Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web: E-mail: info@madeeasy.in Ph: -452462 CLASS TEST 28-9 ELECTRICAL ENGINEERING

More information

8085 Microprocessor Programs

8085 Microprocessor Programs 8085 Microprocessor Programs Courtesy : www.8085projects.info Rachit Agrawal 07-CE-52 Kalol Institute of Technology & Research Center PROGRAMS FOR 8085 MICROPROCESSOR PROGRAMS FOR LEARNERS 1. Store 8-bit

More information

EC2304-MICROPROCESSOR AND MICROCONROLLERS 2 marks questions and answers UNIT-I

EC2304-MICROPROCESSOR AND MICROCONROLLERS 2 marks questions and answers UNIT-I EC2304-MICROPROCESSOR AND MICROCONROLLERS 2 marks questions and answers 1. Define microprocessors? UNIT-I A semiconductor device(integrated circuit) manufactured by using the LSI technique. It includes

More information

EXPERIMENT NO. 1 THE MKT 8085 MICROPROCESSOR TRAINER

EXPERIMENT NO. 1 THE MKT 8085 MICROPROCESSOR TRAINER OBJECT: EXPERIMENT NO. 1 THE MKT 8085 MICROPROCESSOR TRAINER To understand the structure and operating instruction of the microprocessor trainer. INTRODUCTION: The MKT 8085 is a single-board microcomputer,

More information

Micro Processor & Micro Controllers

Micro Processor & Micro Controllers Micro Processor & Micro Controllers 1. What is microprocessor? It is a program controlled semi conductor device (IC), which fetches, decodes and execute instructions. 2. What are the basic units of microprocessor?

More information

MICROPROCESSOR AND MICROCONTROLLER

MICROPROCESSOR AND MICROCONTROLLER A Course Material on By Mr. C.JAGADEESHWARAN ASSISTANT PROFESSOR DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING SASURIE COLLEGE OF ENGINEERING VIJAYAMANGALAM 638 56 QUALITY CERTIFICATE This is to

More information

Architecture & Instruction set of 8085 Microprocessor and 8051 Micro Controller

Architecture & Instruction set of 8085 Microprocessor and 8051 Micro Controller of 8085 microprocessor 8085 is pronounced as "eighty-eighty-five" microprocessor. It is an 8-bit microprocessor designed by Intel in 1977 using NMOS technology. It has the following configuration 8-bit

More information

PROGRAMMING BOOK FOR MTK85SE, 8085 MICROPROCESSOR TRAINING KIT

PROGRAMMING BOOK FOR MTK85SE, 8085 MICROPROCESSOR TRAINING KIT PROGRAMMING BOOK FOR MTKSE, 0 MICROPROCESSOR TRAINING KIT Wichit Sirichote 0 Rev.0 April, 0 CONTENTS Program : Writing data to output port... Program : Binary number counting... Program : LED running...

More information

DE60/DC68 MICROPROCESSORS & MICROCONTROLLERS JUN 2015

DE60/DC68 MICROPROCESSORS & MICROCONTROLLERS JUN 2015 Q.2 a. Draw block diagram schematic of 8085 bus structure. Explain buses/ communication lines used by 8085. (6) 8085 Bus organization structure: 8085 MPU and peripheral devices communicate through three

More information

2003 LXI H, 42F2H ; this instruction store 42F2 in to the HL pair POP H ; store data from top of the stack to HL pair

2003 LXI H, 42F2H ; this instruction store 42F2 in to the HL pair POP H ; store data from top of the stack to HL pair (1) What is stack? Explain stack related instruction with example OR Give function of stack. OR What is stack? Explain the stack operations using examples. The stack is a group of memory location in the

More information

INSTITUTE OF ENGINEERING AND MANAGEMENT, KOLKATA Microprocessor

INSTITUTE OF ENGINEERING AND MANAGEMENT, KOLKATA Microprocessor INSTITUTE OF ENGINEERING AND MANAGEMENT, KOLKATA Microprocessor Subject Name: Microprocessor and Microcontroller Year: 3 rd Year Subject Code: CS502 Semester: 5 th Module Day Assignment 1 Microprocessor

More information

1. What is microprocessor? It is a program controlled semi conductor device (IC), which fetches, decodes and execute instructions.

1. What is microprocessor? It is a program controlled semi conductor device (IC), which fetches, decodes and execute instructions. Downloaded from www.books4career.blogspot.com 1. What is microprocessor? It is a program controlled semi conductor device (IC), which fetches, decodes and execute instructions. 2. What are the basic units

More information

Vidyalankar T.E. Sem. V [EXTC] Microprocessors and Microcontrollers I Prelim Question Paper Solution V SS (GND)

Vidyalankar T.E. Sem. V [EXTC] Microprocessors and Microcontrollers I Prelim Question Paper Solution V SS (GND) 1. (a) Pin configuration of 8085 X 1 X 2 CLKOUT TRAP RST 7.5 RST 6.5 RST 5.5 INTR INTA SID SOD RESET IN RESET OUT T.E. Sem. V [EXTC] Microprocessors and Microcontrollers I Prelim Question Paper Solution

More information

INDEX. 1 Study of intel 8085 micropeocessor kit. 2 Program to find addition of two 8 bit no. 3 Program to find subtraction of two 8 bit no.

INDEX. 1 Study of intel 8085 micropeocessor kit. 2 Program to find addition of two 8 bit no. 3 Program to find subtraction of two 8 bit no. INDEX PROGRAM NO. NAME OF THE PROGRAM 1 Study of intel 8085 micropeocessor kit SIGNATURE 2 Program to find addition of two 8 bit no. 3 Program to find subtraction of two 8 bit no. 4 Program to find 1 s

More information

Instruction set of 8085

Instruction set of 8085 Instruction set of 05 /23/2016 ptkarule@rediffmail.com 1 Instruction set of 05 Instruction set is divided into various groups depending on the operations performed: 1. Data transfer 2. rithmetic 3. Logical

More information

PERIPHERAL INTERFACING Rev. 1.0

PERIPHERAL INTERFACING Rev. 1.0 This work is licensed under the Creative Commons Attribution-NonCommercial-Share Alike 2.5 India License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/in/deed.en

More information

Control Unit: The control unit provides the necessary timing and control Microprocessor resembles a CPU exactly.

Control Unit: The control unit provides the necessary timing and control Microprocessor resembles a CPU exactly. Unit I 8085 and 8086 PROCESSOR Introduction to microprocessor A microprocessor is a clock-driven semiconductor device consisting of electronic logic circuits manufactured by using either a large-scale

More information

1 = Enable SOD 0 = Disable SOD. Serial Output Data. Fig.12.9 SIM Instruction Format

1 = Enable SOD 0 = Disable SOD. Serial Output Data. Fig.12.9 SIM Instruction Format Lecture-67 The 8085 Serial I/O Lines: SOD & SID The 8085 microprocessor has two pins specially designed for software control serial I/O. One is called SOD (serial output data) and the other is called SID

More information

The advantages of registers over memory locations are as follows:

The advantages of registers over memory locations are as follows: Q.2 a. In a microprocessor, what is the use of a register? What are the advantages & disadvantages of using registers over a memory location? What is the speciality of register A (accumulator) over other

More information

UNIT 18 PROGRAMMING MICROPROCESSORS

UNIT 18 PROGRAMMING MICROPROCESSORS UNIT 18 PROGRAMMING MICROPROCESSORS Structure 18.1 Introduction Objectives 18.2 Computer Languages 18.2.1 High Level Languages and Compilers 18.2.2 Assembly Language and the Assembler 18.3 Microprocessor

More information

Matrix Multiplication in 8085

Matrix Multiplication in 8085 Matrix Multiplication in 8085 Semester Project for B.Tech. (Computer Science & Engineering) by Praneeth A S (UG20110023) & Rohit Yeravothula (UG201110039) Project Guide: Dr. K R Chowdhary Head of Department,

More information

CS2259-MICROPROCESSOR AND MICROCONTROLLER LABORATORY MANUAL

CS2259-MICROPROCESSOR AND MICROCONTROLLER LABORATORY MANUAL CS2259-MICROPROCESSOR AND MICROCONTROLLER LABORATORY LABORATORY MANUAL FOR IV SEMESTER B.TECH / IT ACADEMIC YEAR: 2012-2013 (FOR PRIVATE CIRCULATION ONLY) ANNA UNIVERSITY, CHENNAI. NAME REG.NO BATCH :

More information

XII HSC - BOARD - MARCH

XII HSC - BOARD - MARCH Date: 17.03.2018 JEE MEDICAL-UG BOARDS KVPY NTSE OLYMPIADS XII HSC - BOARD - MARCH - 2018 COMPUTER SCIENCE - II ( D-9) QP + SOLUTIONS 1. (A) Select correct options and rewrite the following : (a) Intel

More information

S.R.M. INSTITUTE OF SCIENCE & TECHNOLOGY SCHOOL OF ELECTRONICS & COMMUNICATION ENGINEERING

S.R.M. INSTITUTE OF SCIENCE & TECHNOLOGY SCHOOL OF ELECTRONICS & COMMUNICATION ENGINEERING S.R.M. INSTITUTE OF SCIENCE & TECHNOLOGY SCHOOL OF ELECTRONICS & COMMUNICATION ENGINEERING QUESTION BANK Subject Code : EC307 Subject Name : Microprocessor and Interfacing Year & Sem : III Year, V Sem

More information

SIR C.R.REDDY COLLEGE OF ENGINEERING ELURU DIGITAL ELECTRONICS & MICROPROCESSOR LAB MANUAL 2/4 CSE: II- SEMESTER

SIR C.R.REDDY COLLEGE OF ENGINEERING ELURU DIGITAL ELECTRONICS & MICROPROCESSOR LAB MANUAL 2/4 CSE: II- SEMESTER SIR C.R.REDDY COLLEGE OF ENGINEERING ELURU 534007 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING DIGITAL ELECTRONICS & MICROPROCESSOR LAB MANUAL 2/4 CSE: II- SEMESTER Faculty: B.Homer Benny (Section- A

More information

SN8F5000 Family Instruction Set

SN8F5000 Family Instruction Set SONiX Technology Co., Ltd. 8051-based Microcontroller 1 Overview SN8F5000 is 8051 Flash Type microcontroller supports comprehensive assembly instructions and which are fully compatible with standard 8051.

More information

Microprocessor Architecture

Microprocessor Architecture Microprocessor - 8085 Architecture 8085 is pronounced as "eighty-eighty-five" microprocessor. It is an 8-bit microprocessor designed by Intel in 1977 using NMOS technology. It has the following configuration

More information

CS521 CSE IITG 11/23/2012

CS521 CSE IITG 11/23/2012 CS521 CSE IITG 11/23/212 http://jatinga.iitg.ernet.in/~asahu/cs523/ Course Contents Text and Reference Books All lecture slides Summery of each class with references Other information Simulators, Benchmarks,

More information

1. Internal Architecture of 8085 Microprocessor

1. Internal Architecture of 8085 Microprocessor Practical 1 Date : AIM : Introduction Of Microprocessor 8085. 1. Internal Architecture of 8085 Microprocessor Control Unit Generates signals within µp to carry out the instruction, which has been decoded.

More information

MICROPROCESSOR BASICS AND RELATED TERMS

MICROPROCESSOR BASICS AND RELATED TERMS MICROPROCESSOR BASICS AND RELATED TERMS Microprocessor: Programmable integrated device that has computing ability and decision making capacity. It is the CPU of computer. A multipurpose, programmable,

More information

Machine Cycle- 2 or (Machine Cycle-1 of next instruction):

Machine Cycle- 2 or (Machine Cycle-1 of next instruction): Lecture-29 17. CMA: (Complement accumulator) This is an ALP statement. The meaning of the instruction is Complement the content of accumulator bit by bit and store the result back into the accumulator.

More information

1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE:

1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: 1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: A microprocessor is a programmable electronics chip that has computing and decision making capabilities similar to central processing unit

More information

Programming of 8085 microprocessor and 8051 micro controller Study material

Programming of 8085 microprocessor and 8051 micro controller Study material 8085 Demo Programs Now, let us take a look at some program demonstrations using the above instructions Adding Two 8-bit Numbers Write a program to add data at 3005H & 3006H memory location and store the

More information

DE60/DC68 MICROPROCESSORS & MICROCONTROLLERS JUNE 2013

DE60/DC68 MICROPROCESSORS & MICROCONTROLLERS JUNE 2013 Q 2 (a) Distinguish between following pair of instructions of 8085 (i) LXI H, 123H and LHLD 1234H (ii) SPHL and PCHL (iii) XRA M and ORA M (iv) RRC and RLC (i)lxi H, 123H- Loads 16 bit data (123H) in register

More information

Computer Organization

Computer Organization Computer Organization (Instruction set Architecture & Assembly Language Programming) KR Chowdhary Professor & Head Email: kr.chowdhary@gmail.com webpage: krchowdhary.com Department of Computer Science

More information

(2½ Hours) [Total Marks: 75]

(2½ Hours) [Total Marks: 75] (2½ Hours) [Total Marks: 75] N. B.: (1) All questions are compulsory. (2) Make suitable assumptions wherever necessary and state the assumptions made. (3) Answers to the same question must be written together.

More information

1. Internal Architecture of 8085 Microprocessor

1. Internal Architecture of 8085 Microprocessor Practical 1 Date : AIM : Introduction Of Microprocessor 8085. 1. Internal Architecture of 8085 Microprocessor Control Unit Generates signals within µp to carry out the instruction, which has been decoded.

More information

Microprocessor Micro Syllabus BSc. CSIT, IOST, TU. Microprocessor

Microprocessor Micro Syllabus BSc. CSIT, IOST, TU. Microprocessor Microprocessor Micro Syllabus BSc. CSIT, IOST, TU Microprocessor Course Title: Microprocessor Full Marks: 60 + 20 + 20 Course No: CSC162 Pass Marks: 24 + 8 + 8 Nature of the Course: Theory + Lab Credit

More information

Lecture-19 MICROPROCESSOR INSTRUCTIONN SET: Each subsystem in a microprocessor based system the memory, the microprocessor and the input and output

Lecture-19 MICROPROCESSOR INSTRUCTIONN SET: Each subsystem in a microprocessor based system the memory, the microprocessor and the input and output Lecture-19 MICROPROCESSOR INSTRUCTIONN SET: Each subsystem in a microprocessor based system the memory, the microprocessor and the input and output devices- can be thought of in terms of the registers

More information

CIS-331 Exam 2 Fall 2015 Total of 105 Points Version 1

CIS-331 Exam 2 Fall 2015 Total of 105 Points Version 1 Version 1 1. (20 Points) Given the class A network address 117.0.0.0 will be divided into multiple subnets. a. (5 Points) How many bits will be necessary to address 4,000 subnets? b. (5 Points) What is

More information

The functional block diagram of 8085A is shown in fig.4.1.

The functional block diagram of 8085A is shown in fig.4.1. Lecture-13 Internal Architecture of Intel 05A The functional block diagram of 05A is shown in fig.4.1. INTA INTR RST7.5 RST5.5 RST6.5 TRAP SOD SID INTERRUPT SERIAL I/O (Internal Bus) FR(S) IR() B() C()

More information

1. What is Microprocessor? Give the power supply & clock frequency of 8085?

1. What is Microprocessor? Give the power supply & clock frequency of 8085? 1. What is Microprocessor? Give the power supply & clock frequency of 8085? A microprocessor is a multipurpose, programmable logic device that reads binary instructions from a storage device called memory

More information

Microcontroller Intel [Instruction Set]

Microcontroller Intel [Instruction Set] Microcontroller Intel 8051 [Instruction Set] Structure of Assembly Language [ label: ] mnemonic [operands] [ ;comment ] Example: MOV R1, #25H ; load data 25H into R1 2 8051 Assembly Language Registers

More information

Microprocessors 1. The 8051 Instruction Set. Microprocessors 1 1. Msc. Ivan A. Escobar Broitman

Microprocessors 1. The 8051 Instruction Set. Microprocessors 1 1. Msc. Ivan A. Escobar Broitman Microprocessors 1 The 8051 Instruction Set Microprocessors 1 1 Instruction Groups The 8051 has 255 instructions Every 8-bit opcode from 00 to FF is used except for A5. The instructions are grouped into

More information

Programming Book Microcontroller Kit. Rev 3.0 January, Wichit Sirichote

Programming Book Microcontroller Kit. Rev 3.0 January, Wichit Sirichote Programming Book1 8051 Microcontroller Kit Rev 3.0 January, 016 016 Wichit Sirichote 1 Contents Overview...3 SAFTY INFORMATION...3 Tools...3 Experiment 1 Blinking LED...4 Experiment Binary number counting...9

More information

1 MALP ( ) Unit-1. (1) Draw and explain the internal architecture of 8085.

1 MALP ( ) Unit-1. (1) Draw and explain the internal architecture of 8085. (1) Draw and explain the internal architecture of 8085. The architecture of 8085 Microprocessor is shown in figure given below. The internal architecture of 8085 includes following section ALU-Arithmetic

More information

Chapter 1: Basics of Microprocessor [08 M]

Chapter 1: Basics of Microprocessor [08 M] Microprocessor: Chapter 1: Basics of Microprocessor [08 M] It is a semiconductor device consisting of electronic logic circuits manufactured by using either a Large scale (LSI) or Very Large Scale (VLSI)

More information

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY CHAPTER 5 : Introduction to Intel 8085 Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY The 8085A(commonly known as the 8085) : Was first introduced in March 1976 is an 8-bit microprocessor with 16-bit address

More information

CIS-331 Fall 2014 Exam 1 Name: Total of 109 Points Version 1

CIS-331 Fall 2014 Exam 1 Name: Total of 109 Points Version 1 Version 1 1. (24 Points) Show the routing tables for routers A, B, C, and D. Make sure you account for traffic to the Internet. Router A Router B Router C Router D Network Next Hop Next Hop Next Hop Next

More information

NAS, IP-SAN, CAS. Loeng 4

NAS, IP-SAN, CAS. Loeng 4 NAS, IP-SAN, CAS Loeng 4 Tunniteemad Network Attached Storage IP Storage Attached Network Content Addressed Storage Network Attached Storage Tehnoloogia, kus andmed on jagatud üle võrgu Salvestusvahendile

More information

CIS-331 Exam 2 Spring 2016 Total of 110 Points Version 1

CIS-331 Exam 2 Spring 2016 Total of 110 Points Version 1 Version 1 1. (20 Points) Given the class A network address 121.0.0.0 will be divided into multiple subnets. a. (5 Points) How many bits will be necessary to address 8,100 subnets? b. (5 Points) What is

More information

8051 Overview and Instruction Set

8051 Overview and Instruction Set 8051 Overview and Instruction Set Curtis A. Nelson Engr 355 1 Microprocessors vs. Microcontrollers Microprocessors are single-chip CPUs used in microcomputers Microcontrollers and microprocessors are different

More information

CIS-331 Fall 2013 Exam 1 Name: Total of 120 Points Version 1

CIS-331 Fall 2013 Exam 1 Name: Total of 120 Points Version 1 Version 1 1. (24 Points) Show the routing tables for routers A, B, C, and D. Make sure you account for traffic to the Internet. NOTE: Router E should only be used for Internet traffic. Router A Router

More information

Lecture Note On Microprocessor and Microcontroller Theory and Applications

Lecture Note On Microprocessor and Microcontroller Theory and Applications Lecture Note On Microprocessor and Microcontroller Theory and Applications MODULE: 1 1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE: A microprocessor is a programmable electronics chip

More information

Interrupt is a process where an external device can get the attention of the microprocessor. Interrupts can be classified into two types:

Interrupt is a process where an external device can get the attention of the microprocessor. Interrupts can be classified into two types: 8085 INTERRUPTS 1 INTERRUPTS Interrupt is a process where an external device can get the attention of the microprocessor. The process starts from the I/O device The process is asynchronous. Classification

More information

Valliammai Engineering College

Valliammai Engineering College Valliammai Engineering College SRM Nagar, Kattankulathur - 603203 Department of Electrical and Electronics Engineering EE6612 Microprocessors and Microcontrollers Laboratory LAB MANUAL VI Semester - Electrical

More information

CIS-331 Spring 2016 Exam 1 Name: Total of 109 Points Version 1

CIS-331 Spring 2016 Exam 1 Name: Total of 109 Points Version 1 Version 1 Instructions Write your name on the exam paper. Write your name and version number on the top of the yellow paper. Answer Question 1 on the exam paper. Answer Questions 2-4 on the yellow paper.

More information

8/26/2010. Introduction to 8085 BLOCK DIAGRAM OF INTEL Introduction to Introduction to Three Units of 8085

8/26/2010. Introduction to 8085 BLOCK DIAGRAM OF INTEL Introduction to Introduction to Three Units of 8085 BLOCK DIAGRAM OF INTEL 8085 GURSHARAN SINGH TATLA Introduction to 8085 It was introduced in 1977. It is 8-bit microprocessor. Its actual name is 8085 A. It is single NMOS device. It contains 6200 transistors

More information

QUESTION BANK. EE 6502 / Microprocessor and Microcontroller. Unit I Processor. PART-A (2-Marks)

QUESTION BANK. EE 6502 / Microprocessor and Microcontroller. Unit I Processor. PART-A (2-Marks) QUESTION BANK EE 6502 / Microprocessor and Microcontroller Unit I- 8085 Processor PART-A (2-Marks) YEAR/SEM : III/V 1. What is meant by Level triggered interrupt? Which are the interrupts in 8085 level

More information

Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja.

Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja. Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Sub prog1() Msgox "Tere" Sub prog2() a = si(1) Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja. a = Sin() Protseduuri

More information

12-Dec-11. Gursharan Singh Maninder Kaur. Introduction to 8085 BLOCK DIAGRAM OF INTEL Introduction to Introduction to 8085

12-Dec-11. Gursharan Singh Maninder Kaur. Introduction to 8085 BLOCK DIAGRAM OF INTEL Introduction to Introduction to 8085 mailme@gursharansingh.in BLOCK DIAGRAM OF INTEL 8085 mailme@maninderkaur.in Introduction to 8085 It was introduced in 1977. It is 8-bit microprocessor. Its actual name is 8085 A. It is single NMOS device.

More information

CIS-331 Exam 2 Fall 2014 Total of 105 Points. Version 1

CIS-331 Exam 2 Fall 2014 Total of 105 Points. Version 1 Version 1 1. (20 Points) Given the class A network address 119.0.0.0 will be divided into a maximum of 15,900 subnets. a. (5 Points) How many bits will be necessary to address the 15,900 subnets? b. (5

More information