II. számú melléklet. Mikrovezérlő programozása assembly nyelven. Bevezetés
|
|
- Antal Gulyás
- 9 évvel ezelőtt
- Látták:
Átírás
1 Tartalomjegyzék Bevezetés...2 Egycímes számítógép...2 Harvard architektúra...5 RISC jelleg...6 Az assembly nyelv megjelenése, létjogosultsága...6 Az assembly nyelv felépítése...7 PIC mikrovezérlő utasításkészlete (16-os sorozat)...10 Az utasítások részletes leírása...11 Új utasítások és funkcióik...31 MPASM belső makrói...57 MPASM direktívák...59 Vezérlő direktívák...61 Feltételes fordítás direktívái...65 Adat direktívák...67 Jegyzék direktívák...71 Makró direktívák...74 Tárgy fájl direktívái...76 Programozás /82
2 Bevezetés "Amit nem lehet Pascal-ban megírni, azt C/C++-ban meg lehet. Amit nem lehet C/C++-ban megírni, azt Assembly-ben meg lehet. Amit nem lehet Assembly-ben megírni, azt nem lehet megírni!" II. számú melléklet Mikrovezérlő programozása assembly nyelven Az igazi programozó nem fél a GOTO-tól Bevezetés Úgy érzem a fenti cím egy kis magyarázatra szorul. Mikor ezt a szakdolgozat témát választottam többen is felvetették, hogy miért assembly nyelven szeretném megírni az egyes periféria lekezeléseket, s az egész projekt miért assemblyben van? Sokat gondolkoztam rajta, hogy talán tényleg egyszerűbb lenne egy magas szintű nyelv segítségével kezelni a perifériákat. Szakmámból adódóan azonban elsősorban a hardver felől tudok megközelíteni egy adott programozási problémát a leg-hardverközelibb nyelv pedig minden kétséget kizáróan az assembly (teljesen egyenértékű a gépi kóddal, de kicsit emészthetőbb forma). Természetesen ez még nem lenne elegendő ok, hiszen a szakdolgozat elsősorban nem az én örömömre készül sokkal inkább más kollégáknak segítség, útmutatás, az érdeklődés felkeltése gyanánt. Véleményem szerint egy mikroprocesszoros rendszert a leghatékonyabban assembly nyelven tudunk programozni és kijelenthetjük, hogy ezen nyelv segítségével tudjuk nem csak a hardver, de saját képességeinket is a legteljesebb mértékben kihasználni. Vizsgáljuk meg a mikrovezérlő felépítését, architektúráját, hogy az előbbi megállapítás bizonyítást nyerjen. A PIC mikrovezérlő egy egycímes, harvard architektúrára épülő, vezérlésre optimalizált RISC processzort tartalmazó mikroszámítógép. Egycímes számítógép Ahhoz, hogy egy számítógép műveleteket hajtson egymás után végre (program fusson), minden utasításnak négy címet kell tartalmaznia ezek a következők: Első operandus címe Második operandus (amennyiben van) címe Eredmény címe Következő utasítás címe Műveleti kód OP. COD I. Operandus címe II. Operandus címe Eredmény címe Következő utasítás címe Négy címes architektúrát sehol a világon nem alkalmaztak, és nem is alkalmaznak. Gondoljunk bele, minden utasításhoz négy címet le kellene tárolni, túl hosszú lenne egy utasítás arról nem is beszélve, hogy mindez komolyan hátráltatná a programozó munkáját is. 2/82
3 Bevezetés Próbáljuk redukálni a szükséges címeket. Első lépésként használjuk ki a következő Neumann alapelvet: A számítógép legyen soros utasítás-végrehajtású. Amennyiben az utasításokat egymás után sorban hajtjuk végre, akkor nincs más teendőnk, mint a memóriába is ugyanebbe a sorrendbe beírni őket. A következő utasítás címéhez felhasználunk egy egyszerű számlálót, mely reset esetén nullázódik, és minden utasítás végrehajtás során eggyel növekszik. Ennek a számlálónak a neve PC (Program Counter - Program számláló), vagy IP (Instruction Pointer Utasítás mutató). PIC mikrovezérlőknél következetesen PC-nek nevezzük. Ezen kitüntetett számláló segítségével megalkottuk a háromcímes architektúrát. Műveleti kód OP. COD I. Operandus címe II. Operandus címe Eredmény címe Műveleteink jelentős hányadánál az elvégzés után nincs szükség mindkét operandusra, ezért az eredményt írjuk vissza a második operandus címére. Ezzel eljutottunk a kétcímes architektúrához azonban szükséges egy új utasítást alkotnunk: MOVE (mozgató) utasítás, mely segítségével a második operandusunkat is le tudjuk kérdezni a művelet elvégzése után. Műveleti kód OP. COD I. Operandus címe II. Operandus és Eredmény címe A PIC mikrovezérlők a mai számítógépek többségével egyetemben az egycímes struktúrát alkalmazzák, ahhoz hogy ezt létre tudjuk hozni szükség van egy átmeneti regiszterre, ahol az egyik operandust letároljuk a művelet elvégzése előtt. Ez egy kitüntetett regiszter - a szakirodalom akkumulátor (ACC-accumulator), vagy munkaregiszter (W-Work) néven ismeri. Mi a W jelölést fogjuk használni. Műveleti kód OP. COD I. Operandus címe Az itt ismertetett architektúrán minden kétoperandusú művelet csakis az akkumulátoron keresztül valósulhat meg. Először az első operandust lehívjuk a W regiszterbe (LOAD), majd elvégezzük a műveletet (OPERATION), és kiírjuk az eredmény (STORE) 3/82
4 Bevezetés Mikroszámítógépek művelet-végrehajtásának folyamata: I. Operandus címe W-regiszter F L A G ALU Aritmetikai és Logikai Egység PIC mikrovezérlők művelet-végrehajtása: I. Operandus címe W-regiszter S T A T U S ALU Aritmetikai és Logikai Egység DEMUX d PIC mikrovezérlő esetén a Flag-regisztert státusz (STATUS) regiszternek nevezzük, valamint az eredményt nem csak a W regiszterbe, hanem az első operandust tartalmazó file regiszterbe is visszaírhatjuk, erre használjuk a destination (cél) bitet. Az eddig leírtakat figyelembe véve egy összeadás a következőképpen néz ki a fenti architektúrán: MOVLW 20 ;'20'h betöltése az akkumulátorba (1. operandus) ADDWF PORTA,0 ;PORTA-hoz 20h hozzáadása, eredmény: akkumulátor Az MPLAB fordítója lehetőséget nyújt a W és F szimbólumok használatára is ilyenkor d=w esetén a munkaregiszterbe, d=f esetén a fájlregiszterbe kerül az eredmény. Ahhoz, hogy ez a programozástechnikai eljárás működjön a gyári include fájlt hozzá kell adnunk a forráshoz. Fontos megjegyezni, hogy amennyiben a cél egyértelműen megállapítható a műveleti kódból (pl. konstanssal végzett művelet) a destination bitnek nincs értelme, a fordító a használatát hibának fogja értelmezni. 4/82
5 Bevezetés Harvard architektúra Tekintsük át először a Neumann elveket 1 (a legtöbb mai számítógép is többé kevésbé alkalmazza ezeket az elveket, bár a felhasználástól függően esetleg nem mindegyiket): A számítógép legyen bináris (használja a kettes számrendszert) A számítógép legyen teljesen elektronikus Az utasítás-végrehajtás legyen soros (egyszerre csak egy utasítást hajtson végre) Legyen univerzális Turing-gép (bármely aritmetikai és logikai műveletet végre tudjon hajtani az alapműveletek véges számú ismétlésével) A tárolt program elve - vagyis rendelkezzen belső tárral, az utasítások és az adatok a memóriában egymástól megkülönböztethetetlen módon legyenek tárolva. A Harvard architektúra az itt felsorolt elvek közül az utolsót írja át, mikor kimondja: Az adat és a programmemória hardveresen különüljön el. Ezáltal különböző hosszúságú lehet az utasítás és az adat. Példaképpen a 16F84-es mikrovezérlőnél 8 bites adatok mellett 14 bites utasításokkal tudunk dolgozni így el tudjuk érni, hogy minden utasításunk egy szavas legyen. Fontos azonban megemlíteni, hogy a Harvard architektúra létjogosultsága igencsak behatárolt. Használata csak célszámítógépek, speciális alkalmazásra gyártott mikrogépek esetén lehetséges. Egy mikrovezérlőt nevéből adódóan vezérlési feladatokra fejlesztettek ki. Statisztikailag bizonyítható, hogy vezérlési feladatok esetén kevés átmeneti adattal, és sok vezérlő utasítással kell dolgoznunk, így előre meg tudjuk tervezni az adat- és programmemória relatív viszonyát. Neumann elvű számítógép felépítése: IO egység CPU Memória Harvard architektúrás gép felépítése: Adatmemória IO egység CPU Program memória 1 Az itt felsorolt elvek csak a működésre vonatkoznak. Neumann János megadta a megfelelő hardverfelépítést is (ALU, CU, MEM) melyet mind a mai napig alkalmaznak a digitális számítógép esetében. 5/82
6 Bevezetés RISC jelleg A RISC mozaikszó jelentése: Reduced Instruction Set Computer Csökkentett utasításkészletű számítógép. Jellemzői: Egyszerű, kevés számú utasítás Minden utasítás (lehetőleg) egy gépi ciklus alatt hajtódjon végre Egyszerűsített címzési mód Minden utasítás egyszavas Nagyszámú általános célú regiszter Egy RISC processzor nem képes bonyolult (több műveletből álló) utasításokat végrehajtani, azonban az utasításkészlete minden művelet elvégzését lehetővé teszi mégpedig sebességre optimalizálva. A RISC és CISC processzorok közötti verseny a mai napig tart. A mai korszerű CISC mikroprocesszorok már RISC magra épülnek így gyorsítva a működést. Összefoglalva: ahhoz, hogy kihasználjuk az architektúra előnyeit a gép nyelvén kell programoznunk. Erre alkalmazhatjuk a bináris, a hexa (gépi) kódolást, ill. az ezek előnyeit megtartó, de az ember számára emészthetőbb mnemonikus kódolást - vagyis az assembly programnyelvet. Feladatra orientált nyelvek használata (C; BASIC; stb.) a kódunkat nagyon redundánssá teszi, ezáltal vannak feladatok, amiket nem, vagy csak nehézkesen tudunk megoldani (pl. sebességre érzékeny műveletek). Az assembly nyelv megjelenése, létjogosultsága A hőskorban a számítógépek processzorait bináris kódban, később a valamivel könnyebben megjegyezhető hexadecimális kódban írták. Hamar kiderült ezen programozás korlátozottsága. Az emberi agy nehezen jegyez meg számokat, még nehezebben kapcsolja össze őket különböző fogalmakkal ahhoz, hogy egy adott processzor gépi kódjában programozói jártasságra tegyünk szert, igen hosszú idő és sok gyakorlás szükségeltetik. Meg kell még említeni, hogy ha áttérünk egy másik processzorra, annak gépi kódja számunkra ismeretlen lesz, kezdhetjük a tanulást elölről. Gondot okoz még a címszámítás, ill. a későbbi programmódosítás is. Aki programozott már processzort gépi kódban, tisztában van az egy sor utasítás, öt sor NOP (No OPeration nincs művelet) szabállyal erre azért van szükség, hogy ha később be kényszerülünk szúrni egy, vagy két utasítást, ne kelljen az összes ugrást a programban újra kiszámítani. Ezen áldatlan állapoton próbált meg segíteni az assembly nyelv. Ez a programnyelv a későbbi feladatorientált, ill. objektumorientált nyelvekkel szemben nem vezetett be új (ún. virtuális) utasításokat (absztrakciót), csupán a meglévőekhez rendelt egy rövid emlékeztetőt ún. mnemonikot. Természetesen egyetlen processzor sem ismeri az assembly nyelvet, szükségünk van egy fordítóra, ami az általunk használt mnemonikokat visszaalakítja gépi kódra. Az átalakítás nem redundáns - vagyis az assemblyben megírt program ugyanolyan hatékony lesz, mintha gépi kódban programoztunk volna. A RISC jellegű processzor miatt a PIC mikrovezérlők assembly nyelve egy kicsit eltér a sokak által ismert Intel filozófiától. 6/82
7 Bevezetés Az assembly nyelv felépítése Az assembly nyelv alapegysége a sor. Egy sorban egy és csak egy utasítás helyezkedhet el. Utasítás: Az adott mikroprocesszor gépi kódját reprezentáló szimbólumkészlet, kiegészítve néhány fordító függő - kényelmi szolgáltatással. Címke Mnemonic Operandos(ok) Megjegyzés Címke: Operandusok: Címhivatkozási szimbólum. A gépi kóddal ellentétben az assembly nyelv megszabadít minket a fáradalmas címszámításoktól. Az elágazások során alkalmazott belépési pontokat saját szimbólumokkal láthatjuk el. A címke szabályosan ':'-tal záródik az MPASM elfogadja nélküle is. Amennyiben 8 karakternél hosszabb címkét szeretnénk alkalmazni használjuk az '_' karaktert elválasztásra. Lehetőség szerint használjunk beszédes címkéket. Címke önállóan is állhat egy sorban ekkor a következő assembly sort jelképezi (figyelem, ez lehet direktíva is). A műveleti kódot jelképező emlékeztető. A művelet elvégzéséhez szükséges konstans, program- vagy adatmemória cím. A konstanst megadhatjuk a fordító által preferált számformátumokban (bináris, oktális, decimális, hexadecimális), vagy ASCII kódban aposztrófok között (pl. 'A'). A címkékkel hivatkozhatunk a programmemória címére. Direktívák segítségével szimbólumokat rendelhetünk az adatmemória címeihez is. Természetesen mindkét memóriacímet megadhatjuk a fent említett számformátumokban is. Az operandusok megadása során szükségünk lehet egyszerű számítási műveletekre ahhoz, hogy ezeket ne nekünk kelljen elvégezni használhatunk operátorokat. Fontos azonban, hogy ezek a fordítónak szólnak. Tipikus hiba, hogy egy memóriarekeszben lévő értékhez hozzá szeretnénk adni egy számot, és ezt operátorok segítségével akarjuk megoldani. Az elgondolás hibás! Az összeadás operátor használatával ezt nem tudjuk végrehajtani csak az összeadás utasítással. MOVF TRISB+5,W ;az utasítás hatására nem a TRISB 5-tel ;megnövelt értéke kerül az ;akkumulátorba, hanem a 11-es ;memóriarekeszben lévő INTCON ;regiszter értéke (TRISB címe: 6; a ;radix: 16). PIC16F84-es típus esetén. 7/82
8 Bevezetés Operátorok: + összeadás - kivonás (vagy kettes komplemens) * szorzás / osztás % maradékos osztás, az eredmény a maradék ( bal zárójel műveletek csoportosítására ) jobb zárójel műveletek csoportosítására << balra léptetés a biteken >> jobbra léptetés a biteken! logikai komplemens ^ bitenkénti KIZÁRÓ-VAGY kapcsolat bitenkénti VAGY kapcsolat & bitenkénti ÉS kapcsolat && logikai ÉS kapcsolat logikai VAGY kapcsolat > nagyobb? < kisebb? >= nagyobb, vagy egyenlő? <= kisebb, vagy egyenlő? == egyenlő?!= nem egyenlő? ~ aritmetikai komplemens $ aktuális címmutató (PC) LOW alsó bájt (0:7) HIGH felső bájt (8:15) UPPER felső bájt (16:21) stb. 8/82
9 Bevezetés A programozó által az utasításokhoz írt komment. Az assembly nyelven írt programban nagyon fontos a megjegyzés kódunk igen hosszúra nyúlhat, ráadásul első ránézésre elég nehéz eligazodni rajta. A programdokumentáció szerves része az egyes utasítások, modulok, források megfelelő eligazodási segítséggel való ellátása. A megjegyzés egy különleges karakterrel a ';'-tal kezdődik. Minden ami ez után van kommentnek számít, és a fordító már nem veszi figyelembe. Teljes sor(ok) is lehetnek megjegyzés(ek). Célszerű úgy elkészíteni ezt az előzetes dokumentációt, mintha egy másik szakembernek készítenénk útmutatót. A saját magunknak írt megjegyzések gyakran nagyon felületesek, és egy-két hónap elteltével már magunk sem igazodunk ki rajtuk. A magyarázatok ne a nyilvánvaló tényekre hívják fel a figyelmet (pl. az akkumulátorba 15h-t töltünk) inkább a rutin, modul, program lényegét próbáljuk megfogni, és szemantikai megjegyzéseket tegyünk. Direktíva: A fordítónak szóló speciális utasítás a programozótól. A direktívák nem kerülnek lefordításra bár hatásaik megjelennek a tárgyprogramban. Direktíva szimbóluma Módosító rész Módosító rész Gyakori hiba programozás során a direktívával egy sorba címkét tenni ez a legtöbb direktíva esetén tilos! A direktíva nem fordul be a kódba, ezért nincs is értelme az ő címére hivatkozó szimbólumnak a fordító hibát fog jelezni. Amennyiben direktívát szeretnénk megjelölni belépési pontként a címkét írjuk egy sorral a direktíva fölé egy önálló sorba (valójában nem a direktíva fog erre a címkére való ugrás során végrehajtódni hiszen ez már csak működés közben történik meg - csak az általa jelképezett hatások). A számok számmal és csakis számmal, míg a szimbólumok betűvel és csakis betűvel kezdődhetnek egy assembly programban. A következőkben megismerkedünk a PIC mikrovezérlők utasításaival és az MPASM direktíváival majd röviden összefoglaljuk a fejlesztés menetét. 9/82
10 Mnemonik Jelentés Funkció Adatmozgató utasítások MOVLW k MOVe Literal to W konstans mozgatása W-be 1 MOVWF f MOVe W to File W mozgatása fájlregiszterbe 1 Gépi ciklus MOVF f,d MOVe File Fájlregiszter mozgatása 1 Z Aritmetikai utasítások Állított jelző bitek ADDLW k ADD Literal and W Konstans hozzáadása W-hez 1 C,DC,Z ADDWF f ADD W and File W hozzáadása fájlregiszterhez 1 C,DC,Z SUBLW k SUBtract W from Literal W kivonása konstansból 1 C,DC,Z SUBWF f,d SUBtract W from File W kivonása fájlregiszterből 1 C,DC,Z INCF f,d INCrement File Fájlregiszter növelése 1 Z DECF f,d DECrement File Fájlregiszter csökkentése 1 Z Logikai utasítások ANDLW k AND Literal with W Konstans és W ÉS kapcsolata 1 Z ANDWF f,d AND W with File W és fájlregiszter ÉS kapcsolata 1 Z IORLW k Inclusive OR Literal with W Konstans és W VAGY kapcsolata 1 Z IORWF f,d Inclusive OR W with File W és fájlregiszter VAGY kapcsolata 1 Z XORLW k exclusive OR Literal with W Konstans és W kizáró-vagy kapcsolata 1 Z XORWF f,d exclusive OR W with File W és regiszter kizáró-vagy kapcsolata 1 Z COMF f,d COMplement File Fájlregiszter bitjeinek invertálása 1 Z SWAPF f,d SWAP nibbles in File Regiszter alsó-felső 4 bitjének cseréje 1 - RLF f,d Rotate Left File through carry Forgatás balra az átvitelbiten keresztül 1 C RRF f,d Rotate Left File through carry Forgatás jobbra az átvitelbiten keresztül 1 C BCF f,b Bit Clear File Fájlregiszter bitjének törlése 1 - BSF f,b Bit Set File Fájlregiszter bitjének egybe állítása 1 - CLRF f CLeaR File Fájlregiszter törlése 1 Z CLRW - CLeaR W W törlése 1 Z CLRWDT - CLeaR Watch Dog Timer WDT törlése 1 Vezérlésátadó utasítások GOTO k GO TO address Feltétel nélküli ugrás 2 - BTFSC f,b Bit Test File, Skip if Clear Bit tesztelése és ugrás, ha 0 1,2 - BTFSS f,b Bit Test File, Skip if Set Bit tesztelése és ugrás, ha 1 1,2 - INCFSZ f INCrement File, Skip if Zero Fájlregiszter növelése és ugrás, ha 0 1,2 DECFSZ f DECrement File, Skip if Zero Fájlregiszter csökkentése és ugrás, ha 0 1,2 CALL k CALL Subrutine Szubrutin meghívása 2 - RETURN - RETURN from subrutine Visszatérés szubrutinból 2 - RETLW k RETurn from subrutine with Literal in W Visszatérés szubrutinból konstans w-ben 2 - RETFIE - RETurn From Interrupt Visszatérés megszakításból 2 - SLEEP - SLEEP (Go into standby mode) Alvó mód 1 TO, PD TO, PD NOP No OPeration művelet 1 -
11 A táblázatban szereplő jelölések: k: konstans (literál) b: bitcím egy 8 bites regiszterben f: fájlregiszter d: destination (cél) -: nincs operandus Z: Zero bit C: Carry (átvitel) bit DC: Digit Carry bit TO: Time Out bit PD : Power Down bit Az utasítások részletes leírása MOVLW [címke] MOVLW k Operandus: 0 k 255 k (W) 14 bites kód: 11 00xx kkkk kkkk 8 bites konstans értéket tudunk betölteni a munkaregiszterbe. A nem meghatározott bitek értéke: 0. Példa: MOVLW.6 ;az akkumulátor 6-tal való feltöltése 11/82
12 MOVWF [címke] MOVWF f Operandus: 0 f 127 (W) (f) 14 bites kód: fff ffff Adat betöltése a munkaregiszterből egy fájlregiszterbe (az adatmemória meghatározott memóriarekeszébe). Példa: MOVWF PORTB ;akkumulátor értéke a portb-be MOVF [címke] MOVFf,d Operandus: 0 f 127 d [0,1] (f) (cél) Z 14 bites kód: dfff fff Regiszterben tárolt adat mozgatása a célbit függvényében. D=0 esetén az adat a munkaregiszterbe kerül, d=1 esetén az adat a fájlregiszterbe kerül. Az önmagába mozgatás után tesztelhetjük a zéró bitet - így el tudjuk dönteni egy számról, hogy nulla-e. Példa: MOVF PORTA,W ;porta értéke az akkumulátorba 12/82
13 ADDLW [címke] ADDLW k Operandus: 0 k 255 (W) + k (W) C, DC, Z 14 bites kód: x kkkk kkkk 8 bites konstans érték hozzáadása a munkaregiszterhez, az eredmény a munkaregiszterben képződik. Példa: ADDLW 9 ;9 hozzáadása az akkumulátorhoz ADDWF [címke] ADDWF f,d Operandus: 0 f 127 d [0,1] (W) + (f) (cél) C, DC, Z 14 bites kód: dfff ffff Az 'f' helyén álló fájlregiszter tartalmát hozzáadjuk a munkaregiszterhez. Az eredményt a destination bit határozza meg ('d'=0 W, 'd'=1 f ). Példa: ADDWF COUNT,F ;count regiszterhez akkumulátor ;hozzáadása, eredmény a count- ;ban 13/82
14 SUBLW [címke] SUBLW k Operandus: 0 k 255 k - (W) (W) C, DC, Z 14 bites kód: x kkkk kkkk A munkaregiszter kivonása (kettes komplemens segítségével) egy 8 bites konstans értékből. Az eredmény a munkaregiszterben képződik. Példa: SUBLW 5 ;5-ből az akkumulátor kivonása SUBWF [címke] SUBWF f,d Operandus: 0 f 127 d [0,1] f (W) (cél) C, DC, Z 14 bites kód: dfff ffff A munkaregiszter kivonása (kettes komplemens segítségével) az 'f' helyén álló fájlregiszterből. Az eredmény a célbit függvénye ('d'=0 W, 'd'=1 f). Példa: SUBWF COUNT,F ;count-ból az akkumulátor ;kivonása az eredmény a ;countban 14/82
15 INCF [címke] INCF f,d Operandus: 0 f 127 d [0,1] (f) + 1 (cél) Z 14 bites kód: dfff ffff Az 'f' helyén álló fájlregiszter eggyel történő növelése (ha az eredeti érték 255 volt, az eredmény 0 lesz - aminek helyét a célbit határozza meg: d=0 W, d=1 f). Példa: INCF PORTA,W ;PORTA eggyel való megnövelése az ;eredmény az akkumulátorban DECF [címke] DECF f,d Operandus: 0 f 127 d [0,1] (f) 1 (cél) Z 14 bites kód: dfff ffff Az 'f' helyén álló fájlregiszter eggyel történő csökkentése (ha az eredeti érték 0 volt, az eredmény 255 lesz - aminek helyét a célbit határozza meg: d=0 W, d=1 f) Példa: DECF COUNT,F ;count eggyel való csökkentése, az ;eredmény a countban 15/82
16 ANDLW [címke] ANDLW k Operandus: 0 k 255 (W) AND k (W) Z 14 bites kód: kkkk kkkk A munkaregiszter és egy 8 bites konstans logikai ÉS kapcsolatát adja eredményül. Az eredmény a munkaregiszterben képződik. Példa: ANDLW 7 ;7 és az akkumulátor ÉS kapcsolata ANDWF [címke] ANDWF f,d Operandus: 0 f 127 d [0,1] (W) AND (f) (cél) Z 14 bites kód: dfff ffff Logikai ÉS kapcsolat a munkaregiszter és az 'f' helyén álló fájlregiszter között az eredmény d=0 esetén a munkaregiszterben, d=1 esetén a fájlregiszterben kerül tárolásra. Példa: ANDWF PORTA,W ;porta és az akkumulátor ÉS ;kapcsolata, eredmény az ;akkumulátorban 16/82
17 IORLW [címke] IORLW k Operandus: 0 k 255 (W) VAGY k (W) Z 14 bites kód: kkkk kkkk A munkaregiszter és egy 8 bites konstans logikai VAGY kapcsolatát adja eredményül. Az eredmény a munkaregiszterben képződik. Példa: IORLW 7 ; 7 és az akkumulátor VAGY kapcsolata IORWF [címke] IORWF f,d Operandus: 0 f 127 d [0,1] (W) VAGY (f) (cél) Z 14 bites kód: dfff ffff Logikai VAGY kapcsolat a munkaregiszter és az 'f' helyén álló fájlregiszter között az eredmény d=0 esetén a munkaregiszterben, d=1 esetén a fájlregiszterben kerül tárolásra. Példa: IORWF PORTA,W ;porta, és az akkumulátor VAGY ;kapcsolata eredmény az ;akkumulátorban 17/82
18 XORLW [címke] XORLW k Operandus: 0 k 255 (W) KIZÁRÓ-VAGY k (W) Z 14 bites kód: kkkk kkkk A munkaregiszter és egy 8 bites konstans KIZÁRÓ-VAGY kapcsolata. Az eredmény a munkaregiszterben képződik. Példa: XORLW 8 ;8 és az akkumulátor KIZÁRÓ-VAGY ;kapcsolata XORWF [címke] XORWF f,d Operandus: 0 f 127 d [0,1] (W) KIZÁRÓ-VAGY (f) (cél) Z 14 bites kód: dfff ffff KIZÁRÓ-VAGY kapcsolat a munkaregiszter és az 'f' helyén álló fájlregiszter között az eredményt d=0 esetén a munkaregiszterben tároljuk, d=1 esetén pedig visszaírjuk a fájlregiszterbe. Példa: XORWF PORTB,W ; portb és az akkumulátor ;KIZÁRÓ VAGY kapcsolata az ;eredmény az akkumulátorban 18/82
19 COMF [címke] COMF f,d Operandus: 0 f 127 d [0,1] f (cél) Z 14 bites kód: dfff ffff Az 'f' helyén álló fájlregiszter egyes komplemensét adja eredményül (invertálja a fájlregiszter tartalmát). Az eredmény d=0 esetén a W regiszterbe, d=1 esetén a fájlregiszterbe kerül. Példa: COMF PORTB,F ;portb-n minden bit invertálása SWAPF [címke] SWAPF f,d Operandus: 0 f 127 d [0,1] (f <3:0>) (cél<7:4>) (f <7:4>) (cél<3:0>) 14 bites kód: dfff ffff Az 'f' helyén álló fájlregiszterben megcseréli az alsó és a felső 4 bitet. Az eredmény d=0 esetén a munkaregiszterben, d=1 esetén a fájlregiszterben kerül tárolásra. Példa: SWAPF STATUS,W ;status regiszter alsó és felső ;négy bitjének cseréje, eredmény ;az akkumulátorban 19/82
20 RLF [címke] RLF f,d Operandus: 0 f 127 d [0,1] Lásd a megjegyzésben C 14 bites kód: dfff ffff Az 'f' helyén álló fájlregiszter bitjein egyet balra forgat a Carry (átvitel) biten keresztül. Az eredmény d=0 esetén a munkaregiszterben, d=1 esetén a fájlregiszterben kerül tárolásra. C Fájlregiszter Példa: RLF COUNT,F ;bitforgatás a count regiszteren balra, az ;MSB a Carry bitbe kerül, eredmény a ;countban RRF [címke] RRF f,d Operandus: 0 f 127 d [0,1] f<n> cél<n-1> f<0> C C cél<7> C 14 bites kód: dfff ffff 20/82
21 Az 'f' helyén álló fájlregiszter bitjein egyet jobbra forgat a Carry (átvitel) biten keresztül. Az eredmény d=0 esetén a munkaregiszterben, d=1 esetén a fájlregiszterben kerül tárolásra. C Fájlregiszter Példa: RRF COUNT,F ;bitforgatás a count regiszteren jobbra, ;az LSB a Carry bitbe kerül, eredmény a ;countban BCF [címke] BCF f,b Operandus: 0 f b 7 0 (f<b>) 14 bites kód: 01 00bb bfff ffff Az 'f' helyen álló fájlregiszter 'b' bitjének törlése (nullába állítása). Példa: BCF PORTA,0 ;porta nulladik bitje:0 21/82
22 BSF [címke] BSF f,b Operandus: 0 f b 7 1 f(<b>) 14 bites kód: 01 01bb bfff ffff Az 'f' helyen álló fájlregiszter 'b' bitjének egybe állítása. Példa: BSF PORTA,0 ;porta nulladik bitje:1 CLRF [címke] CLRF f Operandus: 0 f (f) 1 (Z) Z 14 bites kód: fff ffff Az 'f' helyen álló fájlregiszter törlése (mind a 8 bit kinullázása) és a zéró bit egybe állítása. Példa: CLRF COUNT ;count regiszter törlése 22/82
23 CLRW [címke] CLRW Operandus: 0 (W) 1 Z Z 14 bites kód: xxx xxxx A munkaregiszter törlése (mind a 8 bit kinullázása) és a zéró bit egybe állítása. Példa: CLRW ;akkumulátor törlése CLRWDT [címke] CLRWDT Operandus: 0 WDT 0 WDT előosztó 1 TO 1 PD TO, PD 14 bites kód: A Watch Dog Timer és a hozzá tartozó előosztó törlése. TO, PD bitek egybe állítása Példa: CLRWDT ;Watch Dog Timer törlése 23/82
24 GOTO [címke] GOTO k Operandus: 0 k 2047 k PC<10:0> PCLATH<4:3> PC<12:11> 14 bites kód: 10 1kkk kkkk kkkk Feltétel nélküli elágazás. A 'k' helyen megadott 11 bites közvetlen címet betölti a PC-be (PC<10:1>). A felső biteket a PCLATH <4:3> bitjeiből tölti be. Kétciklusos utasítás. Ciklus: 2 Példa: GOTO CIKLUS ;CIKLUS címkével ellátott ;programrészre történő ugrás BTFSC [címke] BTFSC f,b Operandus: 0 f b 7 átlépés, ha (f<b>) = 0 14 bites kód: 01 10bb bfff ffff Feltételes elágazás. Amennyiben az 'f' által jelölt fájlregiszter 'b' bitje 1 értékű, akkor a következő utasítás hajtódik végre ebben az esetben egyciklusos utasítás. Amennyiben az 'f' által jelölt fájlregiszter 'b' bitje 0 értékű, akkor a következő utasítást elhagyjuk és helyette egy NOP utasítást hajtunk végre - ebben az esetben kétciklusos utasítás. 24/82
25 ,2 Példa: BTFSC STATUS,C ;Carry bit tesztelése, ha 0 a ;következő utasítás átugrása BTFSS [címke] BTFSSf,b Operandus: 0 f b 7 átlépés ha f(<b>) = 0 14 bites kód: 01 11bb bfff ffff Feltételes elágazás. Amennyiben az 'f' által jelölt fájlregiszter 'b' bitje 0 értékű, akkor a következő utasítás hajtódik végre ebben az esetben egyciklusos utasítás. Amennyiben az 'f' által jelölt fájlregiszter 'b' bitje 1 értékű, akkor a következő utasítást elhagyjuk és helyette egy NOP utasítást hajtunk végre - ebben az esetben kétciklusos utasítás.,2 Példa: BTFSS STATUS,C ;Carry bit tesztelése, ha 1 a ;következő utasítás átugrása INCFSZ [címke] INCFSZ f,d Operandus: 0 f 127 (f) + 1 (cél) átlépés ha az eredmény 0 14 bites kód: dfff ffff 25/82
26 Feltételes elágazás. Az utasítás növeli az 'f' helyen álló fájlregiszter tartalmát eggyel, majd az eredményt a cél helyére írja. Amennyiben az eredmény nem egyenlő nullával, akkor a következő utasítás hajtódik végre ebben az esetben egyciklusos utasítás. Ha az utasítás hatására az eredmény nulla, akkor a következő utasítást elhagyjuk és helyette egy NOP utasítást hajtunk végre - ebben az esetben kétciklusos utasítás.,2 Példa: INCFSZ COUNT,F ;count regiszter növelése ;eggyel az eredmény visszakerül ;a count-ba, ha elértük a nullát a ;következő utasítást átugorjuk DECFSZ [címke] DECFSZ f,d Operandus: 0 f 127 (f) - 1 (cél) átlépés ha az eredmény 0 14 bites kód: dfff ffff Feltételes elágazás. Az utasítás csökkenti az 'f' helyen álló fájlregiszter tartalmát eggyel, majd az eredményt a célregiszterbe írja. Amennyiben a célregiszter értéke nem egyenlő nullával, akkor a következő utasítás hajtódik végre ebben az esetben egyciklusos utasítás. Ha az utasítás hatására elérte a nullát, akkor a következő utasítást elhagyjuk és helyette egy NOP utasítást hajtunk végre - ebben az esetben kétciklusos utasítás.,2 Példa: DECFSZ COUNT,F ;count regiszter csökkentése ;eggyel az eredmény visszakerül ;a count-ba ha elértük a nullát a ;következő utasítást átugorjuk 26/82
27 CALL [címke] CALL k Operandus: 0 k 2047 PC TOS (Top Of the Stack) k PC<10:0> PCLATH<4:3> PC<12:11> 14 bites kód: 10 0kkk kkkk kkkk Szubrutinhívó utasítás. Első lépésként a visszatérési címet (PC) a hardveres verem tetejébe (Top Of the Stack) helyezi. Ezután a megadott 11 bites 'k' címet a PC-be teszi (PC <10:0>), a felső biteket a PCLATH-ből (PCLATH <4:3>) tölti a PC-be. Kétciklusos utasítás. (Az utasítás hatására az SP automatikusan állítódik) Ciklus: 2 Példa: CALL DELAY ;delay rutin meghívása RETURN [címke] RETURN Operandus: TOS PC 14 bites kód: Visszatérés szubrutinból. A hardveres verem tetején lévő értéket (TOS) a PC-be helyezi. Kétciklusos utasítás. (Az utasítás hatására az SP automatikusan állítódik) Ciklus: 2 Példa: RETURN ;visszatérés szubrutinból 27/82
28 RETLW [címke] RETLW k Operandus: 0 k 255 k (W) TOS PC 14 bites kód: 11 01xx kkkk kkkk Visszatérés szubrutinból konstans értékkel. A 'k' helyen álló 8 bites értéket betölti a munkaregiszterbe majd a verem tetején lévő értéket (TOS) betölti a PC-be. (Az utasítás hatására az SP automatikusan állítódik.) Ciklus: 2 Példa: RETLW 0 ;az akkumulátorba 0 betöltése ;visszatérés szubrutinból RETFIE [címke] RETFIE Operandus: TOS PC 1 GIE 14 bites kód: Visszatérés megszakításból. A verem tetején lévő értéket (TOS) betölti a PC-be, majd az INTCON <GIE> bitet egybe állítja. (Az utasítás hatására az SP automatikusan állítódik.) Ciklus: 2 Példa: RETFIE ;visszatérés megszakításból GIE bit egybe ;állítása 28/82
29 SLEEP [címke] SLEEP Operandus: 0 WDT 0 WDT előosztó 1 TO 0 PD TO, PD 14 bites kód: Energiatakarékos alvó mód. A CPU oszcillátora megáll, az I/O portok őrzik állapotukat. A CPU törli a WDT-t és előosztóját is, a PD bitet 0-ba, a TO bitet 1-be váltja. Példa: SLEEP ;alvó mód, ébredés esetén következő utasítás, ;vagy megszakítási vektor NOP [címke] NOP Operandus: művelet. 14 bites kód: xx művelet. (1 gépi ciklus idejére a processzor várakozik.) Példa: NOP ; nincs utasítás, 1 gépi ciklusig üresjárat 29/82
30 Az itt felsorolt utasítások és az azokra vonatkozó információk a PIC mikrokontrollerek 16-os családjára vonatkoznak. Láthatjuk, hogy igen kis számú (35 db) utasítással kell megelégednünk a fejlesztés során. A kérdés, hogy mit kapunk cserébe?! Minden utasításunk egyszavas a harvard architektúrának köszönhetően. Minden utasításunk 1 gépi ciklus alatt végrehajtódik kivéve, melyben a PC-t állítani kell (ugró és szubrutinhívó, -visszatérő utasítások). Egyszerű címzés. PIC mikrovezérlők 18-as családjának változásai az utasításkészletre vonatkozóan: Megjelennek új utasítások. Megnövelt adatmemória (Fájlregiszter tartomány: ). 16 bites utasításhossz. A CALL; GOTO; MOVFF; LFSR utasítások 2 szavasak (így átlátjuk a teljes memóriát). Az adatmemóriában nincs szükség bankváltásra, ha az ACCESS RAM-ot használjuk. Az eddig bemutatott utasítások használhatóak, kivéve az RLF; RRF az RLNCF és az RRNCF utasítások a 18-as megfelelőik. 30/82
PIC18xxx utasításkészlet
1 PIC18xxx utasításkészlet A PIC 18xxx mikrovezérlők kiterjesztett utasításkészlettel rendelkeznek. A legtöbb utasítás egyszavas (16 bit), de létezik 3 kétszavas utasítás is. Mindegyik egyszavas utasítás
1 Doszpi
ADDLW Konstans hozzáadása W-hez ADDLW k Állított jelződitek: C, DC, Z A 8 bites k konstans hozzáadása W értékéhez; az eredmény a W-be kerül. ADDWF W és f összeadása ADDWF f, d Állított jelződitek: C, DC,
Digitális rendszerek. Utasításarchitektúra szintje
Digitális rendszerek Utasításarchitektúra szintje Utasításarchitektúra Jellemzők Mikroarchitektúra és az operációs rendszer közötti réteg Eredetileg ez jelent meg először Sokszor az assembly nyelvvel keverik
Vezérlés és irányítástechnológia (Mikroprocesszoros irányítás)
Vezérlés és irányítástechnológia (Mikroprocesszoros irányítás) 2.1. Lámpa bekapcsolása 2.2. Lámpa villogtatása 2.3. Futófény programozása 2.4. Fény futtatása balra, jobbra 2.5. Fénysáv megjelenítése 2.6.
Számítógépek felépítése, alapfogalmak
2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd, Krankovits Melinda SZE MTK MSZT kmelinda@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? 2 Nem reprezentatív felmérés
C nyelvű programfejlesztés PIC18 mikrovezérlőkre. Összeállította: Molnár Zsolt
C nyelvű programfejlesztés PIC18 mikrovezérlőkre Összeállította: Molnár Zsolt Óbudai Egyetem, KVK, MAI 2012. november. Bevezetés A gyakorlatban felmerülő, mikrovezérlővel felépülő áramkörök esetében az
Aritmetikai utasítások I.
Aritmetikai utasítások I. Az értékadó és aritmetikai utasítások során a címzési módok különböző típusaira látunk példákat. A 8086/8088-as mikroprocesszor memóriája és regiszterei a little endian tárolást
A számítógép alapfelépítése
Informatika alapjai-6 számítógép felépítése 1/8 számítógép alapfelépítése Nevezzük számítógépnek a következő kétféle elrendezést: : Harvard struktúra : Neumann struktúra kétféle elrendezés alapvetően egyformán
CHIPCAD KFT PIC TANFOLYAM PWM 1/7 TERVEZÉSI FELADAT
CHIPCAD KFT PIC TANFOLYAM PWM 1/7 TERVEZÉSI FELADAT A FELADAT EGY 5 khz-es FREKVENCIÁJÚ PWM JELET KIBOCSÁTÓ GENERÁTOR TERVEZÉSE. A PERÓDUSIDEJE A 200 µsec PERÓDUSIDEJŰ JEL KITÖLTÉSÉNEK 1 200 µsec TARTOMÁNYBAN
4. Fejezet : Az egész számok (integer) ábrázolása
4. Fejezet : Az egész számok (integer) ábrázolása The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson
találhatók. A memória-szervezési modell mondja meg azt, hogy miként
Memória címzési módok Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről) a program utasításai illetve egy utasítás argumentumai a memóriában találhatók. A memória-szervezési
Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység
Mikroprocesszor CPU C Central Központi P Processing Számító U Unit Egység A mikroprocesszor általános belső felépítése 1-1 BUSZ Utasítás dekóder 1-1 BUSZ Az utasítás regiszterben levő utasítás értelmezését
Mintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
1. Az utasítás beolvasása a processzorba
A MIKROPROCESSZOR A mikroprocesszor olyan nagy bonyolultságú félvezető eszköz, amely a digitális számítógép központi egységének a feladatait végzi el. Dekódolja az uatasításokat, vezérli a műveletek elvégzéséhez
SZAKDOLGOZAT. Debrecen 2007. Borsi István Norbert
SZAKDOLGOZAT Debrecen 2007 Borsi István Norbert Debreceni Egyetem Informatika Kar MIKROKONTROLLEREK AZ INFORMATIKA OKTATÁSÁBAN Témavezető: Szabó Zsolt Intézeti mérnök Készítette: Borsi István Norbert Informatika
Operandus típusok Bevezetés: Az utasítás-feldolgozás menete
Operandus típusok Bevezetés: Az utasítás-feldolgozás menete Egy gépi kódú utasítás általános formája: MK Címrész MK = műveleti kód Mit? Mivel? Az utasítás-feldolgozás általános folyamatábrája: Megszakítás?
Vegyes témakörök. 7. Microchip PIC18 mikrovezérlők. Hobbielektronika csoport 2017/2018. Debreceni Megtestesülés Plébánia
Vegyes témakörök 7. Microchip PIC18 mikrovezérlők 1 Microchip PIC18 mikrovezérlők A Megtestesülés Plébánia Hobbielektronika foglalkozásain 2017. április 27-én és 2017. november 30-án már tartotttunk előadást
Bevezetés a számítástechnikába
Bevezetés a számítástechnikába Megszakítások Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 9. Bevezetés Megszakítások
VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK
VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK 1 Az adatok feldolgozását végezhetjük olyan általános rendeltetésű digitális eszközökkel, amelyeket megfelelő szoftverrel (programmal) vezérelünk. A mai digitális
Bevezetés az informatikába
Bevezetés az informatikába 3. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.
Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás ATmega128 CPU Single-level pipelining Egyciklusú ALU működés Reg. reg., reg. konst. közötti műveletek 32 x 8 bit általános célú regiszter Egyciklusú
A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.
Mikroprocesszor A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg. A mikroprocesszor részei A mikroprocesszor a szokásos
Közepes komplexitású elemek (6xx,7xx,8xx sorozat)
Gépözeli programozás PIC Mirovezérlő Mirovezérlő, miroprocesszoro Miroprocesszor Programvezérlő és adatfeldolgozó funció Teljes örű memória ezelő. Külső memória Processzorbusz felület, 6364 bit Nincs,
Számítógépek felépítése, alapfogalmak
2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd SZE MTK MSZT lovas.szilard@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? Nem reprezentatív felmérés kinek van
A mikroprocesszor felépítése és működése
A mikroprocesszor felépítése és működése + az egyes részegységek feladata! Információtartalom vázlata A mikroprocesszor feladatai A mikroprocesszor részegységei A mikroprocesszor működése A mikroprocesszor
Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.
Balaton Marcell Balázs Assembly jegyzet Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született. 1. Regiszterek Regiszterek fajtái a. Szegmensregiszterek cs (code):
Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
A 16F84-r l. CMOS Flash/EEPROM technológia: Lábkiosztás
Bevezetés A PIC mikrovezérl k családjában nagy népszer ségnek örvend a 16F84-es típus, köszönhet en sokoldalúságának. Az iskolánkban m köd mikrokontroller programozó szakkör is a legtöbbet ezzel az IC-vel
A 32 bites x86-os architektúra regiszterei
Memória címzési módok Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)
Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez
Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Sándor Tamás, sandor.tamas@kvk.bmf.hu Takács Gergely, takacs.gergo@kvk.bmf.hu Lektorálta: dr. Schuster György PhD, hal@k2.jozsef.kando.hu
Programozott soros szinkron adatátvitel
Programozott soros szinkron adatátvitel 1. Feladat Név:... Irjon programot, mely a P1.0 kimenet egy lefutó élének időpontjában a P1.1 kimeneten egy adatbitet ad ki. A bájt legalacsonyabb helyiértéke 1.
Összeadás BCD számokkal
Összeadás BCD számokkal Ugyanúgy adjuk össze a BCD számokat is, mint a binárisakat, csak - fel kell ismernünk az érvénytelen tetrádokat és - ezeknél korrekciót kell végrehajtani. A, Az érvénytelen tetrádok
5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix
2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.
Az AVR programozás alapjai. Előadja: Both Tamás
Az AVR programozás alapjai Előadja: Both Tamás Fordító C nyelven programozunk Ehhez az AVR-GCC fordító áll rendelkezésre Ennek használatához a WinAVR-t kell telepíteni Teljes értékű C fordító, minden megengedett,
Számítógépek felépítése
Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák
Assembly Utasítások, programok. Iványi Péter
Assembly Utasítások, programok Iványi Péter Assembly programozás Egyszerű logikán alapul Egy utasítás CSAK egy dolgot csinál Magas szintű nyelven: x = 5 * z + y; /* 3 darab művelet */ Assembly: Szorozzuk
Labor gyakorlat Mikrovezérlők
Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés:
SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1
INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép
Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
Digitális technika VIMIAA01 9. hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő
Labor gyakorlat Mikrovezérlők
Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom
Adatelérés és memóriakezelés
Adatelérés és memóriakezelés Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)
C programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
SzA19. Az elágazások vizsgálata
SzA19. Az elágazások vizsgálata (Az elágazások csoportosítása, a feltételes utasítások használata, a műveletek eredményének vizsgálata az állapottér módszerrel és közvetlen adatvizsgálattal, az elágazási
Digitális technika VIMIAA hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK VIMIAA02 14. hét Fehér Béla BME MIT Rövid visszatekintés, összefoglaló
Informatika 1 2. el adás: Absztrakt számítógépek
Informatika 1 2. el adás: Budapesti M szaki és Gazdaságtudományi Egyetem 2015-09-08 1 2 3 A egy M = Q, Γ, b, Σ, δ, q 0, F hetes, ahol Q az 'állapotok' nem üres halmaza, Γ a 'szalag ábécé' véges, nem üres
sallang avagy Fordítótervezés dióhéjban Sallai Gyula
sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?
Assembly utasítások listája
Assembly utasítások listája Bevezetés: Ebben a segédanyagban a fontosabb assembly utasításokat szedtem össze. Az utasítások csoportosítva vannak. A fontos kategóriába azok az utasítások tartoznak, amiknek
Adatok ábrázolása, adattípusok
Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában
Programozási segédlet DS89C450 Fejlesztőpanelhez
Programozási segédlet DS89C450 Fejlesztőpanelhez Készítette: Fekete Dávid Processzor felépítése 2 Perifériák csatlakozása a processzorhoz A perifériák adatlapjai megtalálhatók a programozasi_segedlet.zip-ben.
A Számítógépek hardver elemei
Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek hardver elemei Korszerű perifériák és rendszercsatolásuk A µ processzoros rendszer regiszter modellje A µp gépi
2. Fejezet : Számrendszerek
2. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College
Digitális technika VIMIAA hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA02 14. hét Fehér Béla BME MIT Digitális technika
Az interrupt Benesóczky Zoltán 2004
Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt
A mikroszámítógép felépítése.
1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az
DSP architektúrák dspic30f család memória kezelése
DSP architektúrák dspic30f család memória kezelése Az adatmemória Az adatmemória 16 bites, két külön memóriazóna van kiépítve, az X és az Y memória, mindkettőnek címgeneráló egysége és adat sínrendszere
[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]
Szoftver fejlesztés Egy adott mikroprocesszoros rendszer számára a szükséges szoftver kifejlesztése több lépésből áll: 1. Forrás nyelven megírt program(ok) lefordítása gépi kódra, amihez megfelelő fejlesztő
5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI
5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a
A Számítógépek felépítése, mőködési módjai
Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek felépítése, mőködési módjai Mikroprocesszoros Rendszerek Felépítése Buszrendszer CPU OPERATÍV TÁR µ processzor
Mikrovezérlők szoftverfejlesztése, az assembly alapjai
Mikrovezérlők szoftverfejlesztése, az assembly alapjai A mikrovezérlők programozásához először tekintsük át általánosan a szoftverfejlesztés alapjait. Mikrovezérlők szoftverfejlesztése A mikrovezérlős
1. ábra: Perifériára való írás idődiagramja
BELÉPTETŐ RENDSZER TERVEZÉSE A tárgy első részében tanult ismeretek részbeni összefoglalására tervezzük meg egy egyszerű mikroprocesszoros rendszer hardverét, és írjuk meg működtető szoftverét! A feladat
A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása
A fordítóprogramok szerkezete Forrásprogram Forrás-kezelő (source handler) Kódoptimalizálás Fordítóprogramok előadás (A,C,T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus
Architektúra, megszakítási rendszerek
Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép
Máté: Számítógép architektúrák
A mikroprogram Mic 1: 4.. ábra. 51x3 bites vezérlőtár a mikroprogramnak, MPC (MicroProgram Counter): mikroprogram utasításszámláló. MIR (MicroInstruction Register): mikroutasítás regiszter. Az adatút ciklus
7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák
7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák A TMS320C50 processzor Ez a DSP processzor az 1.3. fejezetben lett bemutatva. A TMS320C50 ##LINK: http://www.ti.com/product/tms320c50## egy
MPLAB ICD használata
MPLAB ICD használata Mit is tud az MPLAB ICD? Real-time és lépésről lépésre programvégrehajtás. Töréspont elhelyezése. Nyomkövetés a céláramkörben. Programozás a céláramkörben. Forrás szintű és szimbolikus
Hardverközeli programozás 1 1. gyakorlat. Kocsis Gergely 2015.02.17.
Hardverközeli programozás 1 1. gyakorlat Kocsis Gergely 2015.02.17. Információk Kocsis Gergely http://irh.inf.unideb.hu/user/kocsisg 2 zh + 1 javító (a gyengébbikre) A zh sikeres, ha az elért eredmény
Bevezetés az informatikába
Bevezetés az informatikába 4. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.
Beágyazott vezérlők tervezése dspic33 eszközökkel MPLAB-X
KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR Beágyazott vezérlők tervezése dspic33 eszközökkel MPLAB-X ÓE-KVK 2117 Budapest, 2014. Tartalom Bevezető... 3 1. dspic33 általános áttekintése... 4 1.1. Hardver felépítés
Jelfeldolgozás a közlekedésben
Jelfeldolgozás a közlekedésben 2015/2016 II. félév 8051 és C8051F020 mikrovezérlők Fontos tudnivalók Elérhetőség: ST. 108 E-mail: lovetei.istvan@mail.bme.hu Fontos tudnivalók: kjit.bme.hu Aláírás feltétele:
Assembly programozás levelező tagozat
Assembly programozás levelező tagozat Szegedi Tudományegyetem Képfeldolgozás és Számítógépes Grafika Tanszék 2011-2012-2 Tematika Assembly nyelvi szint. Az Intel 8086/88 regiszter készlete, társzervezése,
Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28.
2. előadás Kitlei Róbert 2008. november 28. 1 / 21 Adatmozgató irányai regiszter és memória között konstans betöltése regiszterbe vagy memóriába memóriából memóriába közvetlenül másoló utasítás nincsen
A programozás alapjai
A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,
Egyszerű RISC CPU tervezése
IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely
Az MSP430 mikrovezérlők digitális I/O programozása
10.2.1. Az MSP430 mikrovezérlők digitális I/O programozása Az MSP430 mikrovezérlők esetében minden kimeneti / bemeneti (I/O) vonal önállóan konfigurálható, az P1. és P2. csoportnak van megszakítás létrehozó
A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.
Példák számok kiírására A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni. Decimális számok kiírása Az alábbi
Assembly. Iványi Péter
Assembly Iványi Péter Miért? Ma már ritkán készül program csak assembly-ben Általában bizonyos kritikus rutinoknál használják Miért nem használjuk? Magas szintű nyelven könnyebb programozni Nehéz más gépre
Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:
Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 12 3.1. Megoldások... 14 A gyakorlósor lektorálatlan,
Dr. Oniga István DIGITÁLIS TECHNIKA 8
Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók
Máté: Számítógép architektúrák
MPC új tartalma, JMPC JMPC esetén MPC 8 alacsonyabb helyértékű bitjének és MR 8 bitjének bitenkénti vagy kapcsolata képződik MPC-ben az adatút ciklus vége felé (MR megérkezése után). Ilyenkor Addr 8 alacsonyabb
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Összeadó áramkör A legegyszerűbb összeadó két bitet ad össze, és az egy bites eredményt és az átvitelt adja ki a kimenetén, ez a
I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák
I. C8051Fxxx mikrovezérlők hardverfelépítése, működése 1. Adja meg a belső RAM felépítését! 2. Miben különbözik a belső RAM alsó és felső felének elérhetősége? 3. Hogyan érhetők el az SFR regiszterek?
7. Fejezet A processzor és a memória
7. Fejezet A processzor és a memória The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley
Máté: Számítógép architektúrák
NEXT ADDRESS JMPC JAMN JAMZ SLL8 SRA1 F0 F1 ENA EN INVA INC H OPC TOS LV SP PC MDR MAR WRITE READ FETCH 4 sín Mikroutasítások 24 bit: az adatút vezérléséhez bit: a következő utasítás címének megadásához,
Labor 2 Mikrovezérlők
Labor 2 Mikrovezérlők ATMEL AVR - ARDUINO BUDAI TAMÁS 2015. 09. 06. Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása
Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása
Mi az assembly Gyakorlatias assembly bevezető Fordítóprogramok előadás (A, C, T szakirány) programozási nyelvek egy csoportja gépközeli: az adott processzor utasításai használhatóak általában nincsenek
Fixpontos és lebegőpontos DSP Számrendszerek
Fixpontos és lebegőpontos DSP Számrendszerek Ha megnézünk egy DSP kinálatot, akkor észrevehetjük, hogy két nagy család van az ajánlatban, az ismert adattipus függvényében. Van fixpontos és lebegőpontos
3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}
3. gyakorlat Számrendszerek: Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F} Alaki érték: 0, 1, 2,..., 9,... Helyi
The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003
. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach. kiadás, Irv Englander John Wiley and Sons Wilson Wong, Bentley College Linda Senne,
Programozás alapjai. 10. előadás
10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:
ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA
1. Tízes (decimális) számrendszerből: a. Kettes (bináris) számrendszerbe: Vegyük a 2634 10 -es számot, és váltsuk át bináris (kettes) számrendszerbe! A legegyszerűbb módszer: írjuk fel a számot, és húzzunk
C programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka
MPLAB IDE - SIM - - Rövid ismertető a használathoz - 3E22 89/2004 2006. November 14 Szabadka - 2 - Tartalomjegyzék TARTALOMJEGYZÉK 3 SIMULATOR I/O 4 SIMULATOR STIMULUS 4 STIMULUS VEZÉRLŐ (CONTROLLER) 5
Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék
Gyakorló feladatok Számrendszerek: Feladat: Ábrázold kettes számrendszerbe a 639 10, 16-os számrendszerbe a 311 10, 8-as számrendszerbe a 483 10 számot! /2 Maradék /16 Maradék /8 Maradék 639 1 311 7 483
Dr. Oniga István DIGITÁLIS TECHNIKA 2
Dr. Oniga István DIGITÁLIS TECHNIKA 2 Számrendszerek A leggyakrabban használt számrendszerek: alapszám számjegyek Tízes (decimális) B = 10 0, 1, 8, 9 Kettes (bináris) B = 2 0, 1 Nyolcas (oktális) B = 8
A 16F84-rl. CMOS Flash/EEPROM technológia: Lábkiosztás
Bevezetés A PIC mikrovezérlk családjában nagy népszerségnek örvend a 16F84-es típus, köszönheten sokoldalúságának. Az iskolánkban mköd mikrokontroller programozó szakkör is a legtöbbet ezzel az IC-vel
A Texas Instruments MSP430 mikrovezérlőcsalád
1.4.1. A Texas Instruments MSP430 mikrovezérlőcsalád A Texas Instruments MSP430-as mikrovezérlői 16 bites RISC alapú, kevert jelű (mixed signal) processzorok, melyeket ultra kis fogyasztásra tervezték.
Máté: Assembly programozás
Szegmens, szegmens csoport sz_név SEGMENT aling_type combine_type osztály... szegmens sz_név ENDS sz_név a szegmens (szelet) neve. A fordító az azonos nevű szegmens szeleteket úgy tekinti, mintha folyamatosan,
Informatika érettségi vizsga
Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés