1. Az utasítás beolvasása a processzorba

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "1. Az utasítás beolvasása a processzorba"

Átírás

1 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 szükséges belső adatforgalmat és a csatlakozó perifériális berendezések tevékenységét. Felépítése hasonló a nagygépek központi felépítéséhez. Részei: ˇ vezérlőegység (továbbiakban lásd: CU); ˇ aritmetikai - logikai egység (továbbiakban lásd: ALU); ˇ regiszterek. A CU belül értelmezi az utasításokat és végrehajtásuk céljából összehangoltan vezérli a számítógép többi egységének működését úgy, hogy az események a programnak megfelelő helyes sorrendben és időben következzenek be. Ezt vezérlőjelek segítségével teszi. Biztosítja, hogy a megfelelő adatok a megfelelő helyen és időben rendelkezésre álljanak. Irányítja az áramkörök működését. Az utasításszámláló regiszter (lásd később) segítségével kiolvastatja a memóriából annak a memóriarekesznek a tartalmát, amely a soron következő utasítást tárolja. Az utasítás műveleti kódrésze alapján meghatározza, hogy sorrendben milyen műveletet kell végrehajtani. Az utasítás alapján értelmezi, hogy milyen címen találhatók a műveletben résztvevő adatok, vezérli ezek kiolvasását, és a megfelelő regiszterbe történő továbbításukat. Az aritmetikai - logikai egységgel (lásd később) végrehajtatja a megfelelő műveletet és beállítja az utasításszámláló új tartalmát. Engedélyező jeleinek sorrendjét az utasításregiszterben (lásd később) tárolt utasításkód bitmintáinak megfelelően generálja és ezzel irányítja az adatfolyamatot. Időzítő jelekkel ütemezve működik. Az ALU - mint a nevében is benne van - a CPU-n belül a számítási és logikai műveletekt végzi el. Az ALU alkalmas bináris és többnyire decimális összeadásra, Boole algebrai műveletek elvégzésére, komplemensképzésre, valamint adatok léptetésére bitenként jobbra vagy balra. Minden egyéb adatkezelési művelet, amelynek elvégzése a CPU feladata, felbontható az előbb felsorolt alapműveletekre. Rendszerint fixpontos bináris összeadóból, komplementálóból, léptető regiszterből és logikai műveleteket végző részből áll. A regiszterek gyors írható - olvasható munkatárak. A különböző regiszterek szigorúan meghatározott feladatokhoz vannak hozzárendelve, emiatt korlátozott funkció betöltésére alkalmasak. A belső sínrendszeren keresztül tartanak kapcsolatot a processzor más részeivel. Felépítésük: A regiszterek felépítése lehet statikus memóriaelemek (pl.: flip - flop áramkörök) valamilyen rendszere vagy egy RAM memória része, ami lehet dinamikus vagy statikus. Néhány mikroprocesszor típusnál egyetlen chipben mind a két megoldást alkalmazzák úgy, hogy pl. az akkumulátort statikus memóriaelemekből állítják elő, míg az összes többi regisztert egy általános, dinamikus RAM-ba lehet kombinálni. Tipikus regiszterek: Akkumulátor Az akkumulátor az aritmetikai és logikai műveletek operandusait, vagyis a műveletek tárgyát képező mennyiségeket vagy azoknak az eredményeit tárolja. A korszerű számítógépekben az akkumulátor helyett már egy vagy több regisztertömb van, amelyben akár 512 regiszter is elhelyezkedhet. Így csökkenthető a tárhozfordulások száma, illetve növelhető a végrehajtás sebessége. Adatszámláló regiszter Az adatok kiolvasásakor vagy beírásakor azonosított memóriarekesz címét tárolja. Mérete függ a 1

2 mikroprocesszor által címezhető memóriakapacitástól. Egyszerre több is lehet belőle a CPU-ban. Utasításregiszter: A program szerint soron következő utasítás műveleti kód részét tárolja. Utasításszámláló regiszter A soron következő utasítás címét tárolja. Az utasításszámláló tartalmát a program maga is változtathatja. Fontos különbség az utasításszámláló és az adatszámláló regiszter között, hogy az utasításszámláló regiszternél a problémamegoldás az utasításkódok címeinek sorrendjében megy végbe. Vagyis az utasításszámláló által címzett első memóriarekesz elérésekor kihozunk a memóriából egy utasításkódot, így az utasításszámláló tartalma eggyel nő és így a memória következő rekeszét címezi, ahol a program szerint a következő utasításkód található. Az adatszámláló regiszter csak akkor fut végig az adatcímeken, ha az adatok sokszavas egységben vagy táblázatban vannak tárolva. Bázis(cím)regiszter Az operandusok címzéséhez felhasznált regiszter, amely nem általános használatú. A báziscím egy alapcím, amelyhez viszonyítva adhatjuk meg az utasításban az operandus helyét. Indexregiszterek Szintén nem minden processzorban találhatók és ezek is az operandusok címzését segítik elő, különösen adatsorok feldolgozásánál. Állapotregiszterek, vezérlő regiszterek Egy vagy több regiszteren belül tárolnak vezérlő és ellenörző jeleket.az állapotregiszter az ALU műveleti eredményeit jellemzi. Jellegzetes állapotbitek: ˇ előjelbit ˇ nulla bit ˇ túlcsordulásbit ˇ átvitelbit ˇ félbyte - átvitelbit ˇ megszakításbit ˇ paritásbit ˇ stb. Veremmutató regiszter (SP) A verem legfelső elemét jelöli ki. Működése Az egyes részek szükségességének megértéséhez vizsgáljuk meg a processzor utasításciklusát (instruction cycle), azaz egy művelet végrehajtásának fázisait! 2

3 1. Az utasítás beolvasása a processzorba Ahhoz, hogy ezt képes legyen a processzor megtenni, szüksége van arra, hogy hol találja meg ezt az utasítást a memóriában. Ez a memóriacím található az IP (instruction pointer - utasítás mutató) regiszterben. Ez még kevés, ugyanis ha megtalálta az utasítást és kiolvasta a memóriából, akkor a kiolvasott utasítást valahol el kell tárolni. Erre való az IR (instruction - utasítás) regiszter. A pontos működés megértéséhez még annyit kell tudnunk, hogy a memória (az ábrán jól láthatóan, ha szembe ülsz a monitorral) mindössze két regiszterhez kapcsolódik, azaz az AR és a DR regiszterhez. Az AR (address - cím) regiszter tartalmazza azt a címet, amelyről olvasni szándékozunk illetve ahova írni szeretnénk. A DR (data - adat) regiszter pedig az olvasás után tartalmazni fogja a memória AR című helyén levő adatot, míg az írás során a DR-ben levő adatot az AR címre fogja írni a memóriát vezérlő egység. Tehát az utasítás beolvasása valójában a következő műveletek végrehajtását jelenti: IP --> AR ; READ ; DR-->IR 2. A beolvasott utasítás dekódolása, elemzése Miután beolvastuk az utasítást, nekiláthatunk az értelmezésének. Az utasítások mindig két részből állnak: az utasítás kódjából, amely meghatározza, hogy milyen műveletet kell végrehajtani, illetve az operandusokból, amelyek meghatározzák, hogy milyen adatokkal kell elvégezni az adott műveletet, illetve azt, hogy az eredmény hol tárolódjon. A beolvasott utasítás (IR) nem biztos, hogy a teljes utasítást tartalmazza, az viszont biztos, hogy az utasítás kódját igen. Azért nem tartalmazhatja minden esetben a szükséges adatokat (illetve azok címeit), mert az olvasáskor még nem tudjuk azt, hogy milyen műveletet olvasunk, így arról 3

4 sincs információnk, hogy az adott műveletnek hány és milyen operandusa van. Utóbbi tulajdonságok viszont benne vannak az utasítás kódjában. (Nyilván egy összeadás utasítás több operandust tartalmaz, mint egy olyan utasítás, amely eggyel megnöveli egy regiszter értékét.) Azaz megtörténik az utasításkód értelmezése, melynek alapján az ALU (arithmetical and logical unit - aritmetikai és logikai műveletvégző egység) tudomást szerez arról, hogy milyen műveletet kell majd elvégeznie és kiderül, hogy még milyen egyéb részek tartoznak az utasításhoz, azaz mennyi adatot kell még beolvasni a memóriából ahhoz, hogy komplett legyen az utasítás és meghatározhatók legyenek az operandusok. 3. Az operandusok beolvasása Ebben a fázisban kiolvasásra kerülnek a memóriából az operandusok címei (ha ez szükséges) illetve maguk az operandusok. Ezek kétfélék lehetnek, vagy a memóriában vannak (és akkor onnan ki kell olvasni őket) vagy regiszterek és akkor már a processzorban tartózkodnak. Az ALU két segédregisztere szolgál arra, hogy a kiolvasott operandusokat tárolja (LR1 és LR2, latch - segédregiszter). Általában az ALU maximum kétoperandusú műveleteket képes végrehajtani, természetesen, ha speciális műveletvégző egységgel van dolgunk, akkor a maximális operandusszámnak megfelelő segédregiszterre van szükségünk. 4. A művelet végrehajtása Miután összeállt, hogy mit kell csinálni és az, hogy milyen adatokkal, az ALU elvégezheti az utasítást. Az eredményt - a tárolás céljára - egy harmadik segédregiszterbe teszi (LR3). 5. Az eredmény tárolása Az utasítás tulajdonságának függvényében az eredmény az LR3 regiszterből vagy valamelyik regiszterbe vagy az utasításban meghatározott memóriacímre kerül (persze két lépésben, először a DR regiszterbe és csak utána a memóriába). 6. A következő utasítás címének meghatározása Miután az utasítást elvégeztük, meg kell határozni az a címet, ahol a programvégrehajtás folytatódni fog. Ha a programunk szekvenciális, azaz a memóriában a következő címen levő utasítást kell végrehajtani, akkor az IP-t annyival kell megnövelni, amilyen hosszú az adott utasítás volt. Ha valahol egészen máshol kell a programvégrehajtást folytatni, az általában olyan utasítás, amelynek végrehajtása után valamely regiszter tartalmazza a folytatás memóriacímét. Így ezt a címet kell az IP-be beírni. Az utasításciklus végetért és a processzor rátérhet a következő utasítás végrehajtására, azaz visszatérhet az 1. pontra. Az ábrán (feljebb egy kicsit) már csak három homályos pont van: a belső busz, a flag-ek, illetve az SP regiszter. A belső busz szolgál arra, hogy a processzoron belül adatok áramoljanak rajta az egyik helyről a másikra. A flag-ek (jelzők) olyan speciális, 1 bites regiszterek, amelyek a processzor működését befolyásolják illetve állapotát mutatják. Nevezetes flag például a carry flag, amely azt mutatja, hogy az utolsó művelet (mondjuk összeadás vagy kivonás) alkalmával keletkezett-e átvitel/áthozat, vagy a zero-flag, amely akkor igaz, ha az utoljára végrehajtott 4

5 művelet eredménye nulla volt. Az SP (stack pointer - verem mutató) regiszter működésére a későbbiek során még visszatérünk, az eljáráshívások és az eljárásokból való visszatérések során játszik jelentős szerepet. Az fenti ciklust szokás két, ún. félciklusra bontani, ezek a beolvasás (fetch - 1,2,3) illetve a végrehajtás (execute - 4,5,6) félciklus. A processzor utasításkészlete Ahhoz, hogy teljesen megértsük a processzor működését, szükségünk van arra, hogy tudjuk miféle utasítások végrehajtását várhatjuk el tőle. Azonban az utasítások nem önmagukban álló teendők, hanem műveletek a hozzájuk tartozó adatokkal, így szükségünk van arra, hogy megvizsgáljuk, milyen módon határozhatjuk meg ezeket az adatokat! Az adatok meghatározásának módjait nevezzük címzési módoknak (addressing modes). Címzési módok Közvetlen / direkt adat (immediate addressing) Olyan adat, amelynek értéke vesz részt a műveletben Regiszter (register addressing) A sorszámával vagy nevével meghatározott regiszter értéke vesz részt a műveletben Direkt cím (direct addressing) A megadott érték egy memóriacímet határoz meg és az itt található adat vesz részt a műveletben Regiszter indirekt cím (register indirect addressing) A sorszámával vagy nevével megadott regiszter értéke meghatároz egy memóriacímet és az itt található adat vesz részt a műveletben Indirekt memóriacím (indirect addressing) A megadott érték egy memóriacímet határoz meg, az itt található adat határozza meg azt a címet, amelyen levő adat résztvesz a műveletben Indexelt cím (indexed addressing) - Bázisrelatív cím (base relative addressing) A cím két komponensből áll: egy kezdőcímből (base) és egy eltolásból (offset, index). A művelet során a két cím összege határozza meg azt a helyet, ahol az operandus található a memóriában. Attól függően szokás indexelt illetve báziscímzésről beszélni, hogy a kezdőcím egy direkt cím avagy egy regiszter tartalma. Relatív cím (relative addressing) Hasonló az indexelt címzéshez, a címzésben szereplő értéket hozzá kell adni (előjelesen) valamilyen címhez, többnyire az utasítás-mutató értékéhez. Ez a címzés a feltételes vezérlésátadó utasításokra jellemző. A címzési módok (bocs, de ilyen sok van)után nézzük meg a processzor utasításainak csoportjait! Adatmozgató utasítások Ebbe a csoportba három utasítás tartozik: a két regiszter közti (RR), a regiszter és memória közti (RM) illetve a két memóriaterület közti (MM) adatmozgatás utasítása. Ezek közül az utolsót nem minden processzor tudja (hiszen az RM segítségével 5

6 előállítható M-->R-->M). Az utasításkészlet többnyire megengedi a memória tetszőleges címzési móddal történő megcímzését. Aritmetikai utasítások Ebbe a csoportba tartoznak a matematikai műveleteknek megfelelő utasítások, mint az összeadás (ADD), kivonás(sub), szorzás(mul), osztás(div), komplemensképzés(neg, COMPL). A szorzás de még inkább az osztás nem szükségszerűen található meg minden processzor utasításkészletében, hiszen ezek a műveletek visszavezethetők összeadásra és kivonásra. Ide sorolhatók az eggyel növelő (INC) illetve a csökkentő (DEC) utasítások is. Bár ezekre nincs szükség, ha van összeadás (és az mindig van!), mégis szinte minden processzor utasításkészlete tartalmaz ilyen utasításokat az igen gyakori használat és a gyorsabb végrehajtás végett. Az utasítások általában megengedik tetszőleges címzési mód használatát, kivéve a szorzást és osztást, amelyeknél gyakran csak speciális regisztereket használhatunk. Logikai utasítások Ebbe a csoportba a logikai és (AND), logikai vagy (OR), kizáró vagy (XOR), negálás (NOT) tartozik. Ide sorolhatók a léptető utasítások, amelyek az adott operandus bitjeit egy magadott számmal eltolják, léptetik. Ezek a logikai léptetés balra/jobbra (LSL/LSR), aritmetikai léptetés balra/jobbra (ASL/ASR). A különbség a logikai és az aritmetikai jobbra léptetés között annyi, hogy míg logikai esetben a legfelső bitre minden esetben 0 lép be, aritmetikai esetben a belépő bit a szám előjelbitje. A balra léptetésnél nincs különbség a logikai és aritmetikai léptetés között. Az eggyel való léptetés megfelel a kettővel való szorzásnak illetve osztásnak. Az utasítások általában megengedik tetszőleges címzési mód használatát, bár a léptetés mennyiségét többnyire csak direkt adattal vagy egy regiszterrel lehet meghatározni. Összehasonlító utasítások Ez a csoport mindössze két utasítást tartalmaz, a COMP (összehasonlítás) és a TEST (bitenkénti összehasonlítás) utasítást. Egyik sem végez tényleges műveletet, csupán a flag-eket állítja be. A COMP úgy tesz, mintha elvégezne egy kivonást, a TEST pedig, mintha elvégezne egy logikai és műveletet az operandusai között. Veremkezelő utasítások A verem (stack) egy speciális memóriaterület, amelyet két művelettel tudunk kezelni. Az egyik művelet a PUSH, amely egy adatot ráhelyez a verem tetejére, a másik pedig a POP, amely leemeli a verem tetején levő adatot. A lényeg az, hogy a veremben nem lehet "kotorászni", csak a teteje látszik. A verem tetejét egy speciális regiszter, az SP (stack pointer) mutatja. A vermet szokás még LIFO (last in first out, azaz ami legutoljára ment be az jön ki legelőször) szerkezetnek is hívni. Processzorvezérlő utasítások Ide sorolhatók a flag-eket állító utasítások, ezek egy flag törlését (clear) vagy beállítását (set) végzik. Speciális utasítás a NOP, amely nem csinál semmit, vagy a HALT, amely felfüggeszti a processzor működését. A címzés ezeknél az utasításoknál hiányzik. I/O utasítások Ebbe a csoportba két utasítás tartozik: az IN, amely beolvasást végez egy adott eszközről illetve az OUT, amely kiírást végez egy adott eszköz felé. A címzési mód (melyik eszközről van szó) általában tetszőleges lehet, de az adat többnyire egy kitüntetett regiszterből megy az output eszköz felé illetve ide érkezik input esetén. Vezérlést módosító utasítások 6

7 Ebbe a csoportba azok az utasítások tartoznak, amelyek a szekvenciális programvégrehajtástól való eltérést idézhetnek elő. Lehetnek feltétel nélküliek (ilyenkor minden esetben eltérünk a szekvenciális sorrendtől) illetve feltételesek. A feltételek nagyon egyszerűek lehetnek csak, többnyire valamelyik flag állására vonatkozhatnak. Két osztálya van a vezérlést módosító utasátásoknak: az ugrás (JUMP vagy BRANCH), amelynek végrehajtása során nem jegyezzük meg azt, hogy honnan érkeztünk illetve a szubrutinhívás (CALL), amely esetben feljegyezzük a veremben, hogy honnan jöttünk. A CALL utasítás párja a RET (return - visszatérés), amelynek hatására a vezérlés visszakerül oda, ahonnan jött. A verem itt azért fontos, hogy a szubrutinok egymásba ágyazhatók legyenek, azaz ha egy szubrutin meghivott egy másikat, az egy harmadikat stb, akkor is vissza tudjon a program találni az elsőhöz. A szubrutinok a programozási nyelvekben megszokott eljárás illetve függvény megvalósításának gépi eszközei. Egy nagyon speciális vezérlést módosító utasítás a INT (interrupt - megszakítás) utasítás. Az interrupt ebben az esetben nem más, mint egy ugrási címeket tartalmazó táblázat valamelyik elemére való ugrás. Abban több, mint a szubrutinhívás, hogy ezt a táblázatot minden program, egymástól függetlenül láthatja, a táblázat helye nem függ a konkrét memóriaelrendezéstől. Ez a táblázat - helyzetéből adódóan - az operációs rendszer mindenki által használható rutinjainak címeit tartalmazza. Így az operációs rendszer rutinjainak csupán a sorszámát kell tudnunk ahhoz, hogy végrehajtsuk őket, nem pedig a rutinok tényleges, memóriabeli címét. Ez a lehetőség nagyban segít abban, hogy egyrészt az operációs rendszerek továbbfejleszthetők legyenek, másrészt abban, hogy bárhova elhelyezhetők a memóriában a megfelelő rutinok, ügyelve persze arra, hogy a táblázat megfelelő eleme mindig az aktuálisan érvényes címet tartalmazza. Az INT utasítás párja az IRET, amely a végrehajtott szubrutinból való visszatérést biztosítja. Egy kitalált, de a valóságot modellezni képes processzor modellje Azért, hogy a fenti gondolatmenetet még jobban megértsd, képzeljünk el egy processzort, ruházzuk fel regiszterekkel és definiáljunk egy nem túl bonyolult, de mégis használható utasításkészletet! Tartalmazzon a processzorunk 16 olyan regisztert, amely képes egy 16 bites számot tárolni. A regisztereket sorszámukkal jelöljük, azaz a R0, R1,...R15. Az aritmetikai és logikai egység legyen olyan, amelyik 16 bites adatokkal tud műveletet végezni, és természetesen az eredmény is 16 bites lesz. A memóriavezérlő kétfajta adatokkal is tudjon műveletet végezni, azaz legyen mód 16 bites és 8 bites adatátvitelre is. 8 bites adatátvitelkor a DR regiszternek csak a fele játszik szerepet. A memóriacím mindig 16 bites legyen (tehát az AR és az IP regiszternek is ilyennek kell lennie) Az utasítások kódrésze legyen 8 bites (azaz az IR is 8 bites). Maga az utasításkód nézzen ki a következőképpen: 4 bit 2 bit 2 bit műveleti kód 1. operandus címzési módja 2. operandus címzési módja 7

8 Az elméletileg három operandust igénylő műveleteknél (mint például az összeadás) a harmadik operandus (azaz az eredmény helye) legyen mindig az első operandus, azaz az eredmény minden esetben felülírja a kiindulási adatot. Azoknál a műveleteknél, ahol nincs szükség két operandus megadására, ott a felszabaduló biteket felhasználjuk újabb utasítások definiálására, így 16-nál jóval több utasítást fogunk meghatározni. Az operandusok legyenek változatosak! Négyféle operandust (címzési módot) engedünk meg: regisztert, direkt adatot (konstans - immediate), regiszterben megadott memóriacímen levő adatot (regiszter indirekt) illetve memóriában szereplő adatot. Azaz össze tudunk adni egy regiszterben levő számot egy konstassal, avagy egy memóriában levő számhoz hozzá tudjuk adni azt a számot, amely azon a helyen van a memóriában, amelyet egy regiszter címez meg. Természetesen az első operandus sohasem lehet direkt adat, mert igen érdekes jelenségeket eredményezne az, ha egy konstans értékét meg tudnák változtatni. A 00 címzési mód jelölje a regisztert (R), a 01 a memóriacímet (M), 10 a regiszter indirekt (I) és 11 a direkt (konstans) adatot (D). A lehetséges címzési módokat mutatja a következő táblázat, melynek oszlopai azokat a byte-okat mutatják, amelyek az utasításkódot követik ahhoz, hogy minden operandus jól meghatározott legyen. A 4+4 azt jelzi, hogy az adott byte két 4 bites része 1-1 regisztert határoz meg, a 0+4 egy regisztert határoz meg. típus kód RR RM cím RI RD adat MR 0100 cím 0+4 MM 0101 cím cím MI 0110 cím 0+4 MD 0111 cím adat IR IM cím II ID adat RR M 01 cím I D 11 adat 8

9 A processzorunk utasításkészlete nézzen ki a következőképpen: kód név meghatározás 0000 MOV adatmozgatás 0001 ADD összeadás 0010 SUB kivonás 0011 CMP összehasonlítás 0100 AND logikai és 0101 OR logikai vagy 0110 XOR kizáró vagy NOT logikai nem NEG -1 szeres képzése, komplementálás INC 1-el növelés DEC 1-el csökkentés 1000 LSR logikai léptetés jobbra 1001 LSL logikai léptetés balra 1010 ASR aritmetikai léptetés jobbra PUSH verem tetejére helyezés POP kivétel a veremből PUSHF flag-ek verembe helyezése POPF flag-ek visszatöltése a veremből JUMP ugrás a megadott címre CALL szubrutinhívás INT interrupt hívás RET visszatérés szubrutinból IRET visszatérés interruptból JC ugrás, ha a carry flag = JNC ugrás, ha a carry flag= JZ ugrás, ha a zero flag = JNZ ugrás, ha a zero flag = OUT R0 kivitele valamelyik output eszközre IN adatbevitel valamelyik input eszközről R0-ba NOP üres utasítás HALT processzor működésének felfüggesztése SETC carry flag beállítása CLC carry flag törlése A fenti táblázatból jól látszik, hogy vannak 2, 1 illetve 0 címet igénylő utasítások. Az is látható, hogy az utasításkódoknál nem használtuk ki az összes lehetőséget, például a kódhoz nem tartozik utasítás. Feladat: Próbáljuk meg megkomponálni azt az utasítást, amely a 8. regiszterhez hozzáadja a 128- as memóriacímen levő értéket és az eredményt az első operandus (azaz a 8. regiszter) helyén tárolja! Az utasításkód összeadás kell, hogy legyen, azaz az első 4 bit: Az első operandus egy regiszter, amelynek címzési módja 00, míg a másik egy memóriában levő adat, amelynek címzési módja 01. Így az utasítás kódja: Az ilyen címzési módokat megkövetelő utasításkód után még három byte következik, amelyből az első a regiszter sorszámát, a másik kettő pedig a memóriacímet tartalmazza, azaz az operandusokat leíró 3 byte: (=8) (=128). Tehát az utasítás teljes kódja: ADD R8,M128 :

10 Feladat: Adjuk meg azt az utasítást, amely a zero flag igaz állása esetén elugrik a 3. regiszter által meghatározott címre és ott folytatja a program végrehajtását! JZ I3 kódja: (indirekt cím) (3. regiszter) Feladat: Adjuk meg azt az utasítást, amely végrehajtja 13. interrupt-ot! INT 13 kódja: (direkt adat) (=13) Most nézzünk meg egy olyan programhoz tartozó kódot, amely egy valós feladatocskát old meg! A feladat legyen a következő: adjunk össze néhány számot. Azaz adott a memóriában valahol (mondjuk az 1000-es címtől kezdődően) egy csomó szám. A legelső közülük kitüntetett, megmondja, hogy hány darab szám van utána, amivel foglalkoznunk kell, azaz amelyeket össze kell adnunk. Az alábbi program elvégzi ezt a feladatot (feltéve, hogy legalább egy számot össze kell adni) A programot úgy helyezzük el a memóriában, hogy a 100-as (hexadecimális) címen kezdődjön. 100: UJRA: VEGE: XOR R0, R0 ; itt tároljuk az összeget (kinullázás) MOV R1, 1000 ; a memóriában itt kezdődnek az adataink MOV R2, I1 ; ennyi elemet kell összeadni INC R1 ; INC R1 ; most az R1 az első összeadandóra mutat, ; minden szám 2 byte-os!!!! CLC ; carry flag törlése ADD R0,I1 ; a soron következő elem hozzáadása az összeghez INC R1 ; cím növelése, 2 byte-os számok! INC R1 DEC R2 ; az összeadandók számának csökkentése JNZ UJRA ; ha még van mit összeadni, akkor vissza INT 10 ; kiíratás rutinjának meghívása Az UJRA egy szimbolikus címet jelöl (az olvashatóság érdekében), jelen esetben a JNZ után álló konkrét érték -11 lesz, hiszen ennyi byte-ot kell visszalépni ahhoz, hogy az ADD utasításhoz kerüljünk. ( = 11). A visszalépést a szekvenciális végrehajtásnál levő címhez (az INT utasítás címe) viszonyítva kell számolni, elágazás nélkül ugyanis itt folyatódna a program. A fenti utasítássor gépi kódja a következő (hexadecimálisan): 100: XOR R0, R0 ; itt tároljuk az összeget (kinullázás) 102: E8 MOV R1, 1000 ; a memóriában itt vannak az adataink MOV R2, I1 ; ennyi elemet kell összeadni INC R1 ; 10A INC R1 ; R1 az elsô összeadandóra mutat, 10C F3 CLC ; carry flag törlése 10D ADD R0,I1 ; a következô elem hozzáadása 10F INC R1 ; cím növelése, 2 byte-os számok! INC R A 02 DEC R2 ; az összeadandók számának csökkentése 115 BF FF F5 JNZ UJRA ; ha még van mit összeadni, akkor vissza

11 Szemeljünk ki a fenti kódrészletből egy bonyolult címzési móddal rendelkező utasítást és nézzük meg még egyszer a processzor utasítás-ciklusát erre az egy utasításra! Legyen a kiszemelt utasítás az ADD R0,I1 utasítás. Ekkor a processzor a következő mikroprogram-lépéseket fogja végrehajtani (IP = 10D) IP ---> AR M-READ (42) DR ---> IR dekódolás (címzési mód: RI, azaz +1 byte!) IP > AR M-READ (01) R0 ---> LR1 R1 ---> AR M-READ DR ---> LR2 ALU-ADD! LR3 ---> R0 IP+2 ---> IP Megjegyzés: A gyakorlatban, valahányszor az IP-t memória-olvasásra használjuk fel, tartalma mindig nő 1-el (így az utolsó lépés elmaradhat). Forrás: user=/zimonyi_tdk&page=/zimonyi/rendtech/mikropro.html 11

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 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

Részletesebben

A Számítógépek felépítése, mőködési módjai

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

Részletesebben

A számítógép alapfelépítése

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

Részletesebben

Egyszerű RISC CPU tervezése

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

Részletesebben

1. ábra: Perifériára való írás idődiagramja

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

Részletesebben

A MiniRISC processzor

A MiniRISC processzor BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A MiniRISC processzor Fehér Béla, Raikovich Tamás, Fejér Attila BME MIT

Részletesebben

Számítógépek felépítése, alapfogalmak

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

Részletesebben

Az integrált áramkörök kimenetének kialakítása

Az integrált áramkörök kimenetének kialakítása 1 Az integrált áramörö imeneténe ialaítása totem-pole three-state open-olletor Az áramörö általános leegyszerűsített imeneti foozata: + tápfeszültség R1 V1 K1 imenet V2 K2 U i, I i R2 ahol R1>>R2, és K1,

Részletesebben

Digitális rendszerek. Utasításarchitektúra szintje

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

Részletesebben

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

[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ő

Részletesebben

A mikroszámítógép felépítése.

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

Részletesebben

Assembly utasítások listája

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

Részletesebben

Assembly. Iványi Péter

Assembly. Iványi Péter Assembly Iványi Péter További Op. rsz. funkcionalitások PSP címének lekérdezése mov ah, 62h int 21h Eredmény: BX = PSP szegmens címe További Op. rsz. funkcionalitások Paraméterek kimásolása mov di, parameter

Részletesebben

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk Elméleti anyag: Processzoros vezérlés általános tulajdonságai o z induló készletben

Részletesebben

Mikrokontrollerek. Tihanyi Attila 2007. május 8

Mikrokontrollerek. Tihanyi Attila 2007. május 8 Mikrokontrollerek Tihanyi Attila 2007. május 8 !!! ZH!!! Pótlási lehetőség külön egyeztetve Feladatok: 2007. május 15. Megoldási idő 45 perc! Feladatok: Első ZH is itt pótolható Munkapont számítás Munkapont

Részletesebben

Bevezetés a számítástechnikába

Bevezetés a számítástechnikába Bevezetés a számítástechnikába, Címzési módok, Assembly Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 2/9. ú utasítás

Részletesebben

Bevezetés az informatikába

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.

Részletesebben

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 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

Részletesebben

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006 Gábor Dénes Főiskola Győr Mikroszámítógépek Előadás vázlat 102 2004/2005 tanév 4. szemeszter A PROCESSZOR A processzorok jellemzése A processzor felépítése A processzorok üzemmódjai Regiszterkészlet Utasításfelépítés,

Részletesebben

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 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

Részletesebben

Számítógép Architektúrák

Számítógép Architektúrák Számítógép Architektúrák Utasításkészlet architektúrák 2015. április 11. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tsz. ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

Részletesebben

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. 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):

Részletesebben

Számítógép Architektúrák (MIKNB113A)

Számítógép Architektúrák (MIKNB113A) PANNON EGYETEM, Veszprém Villamosmérnöki és Információs Rendszerek Tanszék Számítógép Architektúrák (MIKNB113A) 4. előadás: Utasítás végrehajtás folyamata: címzési módok, RISC-CISC processzorok Előadó:

Részletesebben

A Számítógépek hardver elemei

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

Részletesebben

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

Az INTEL D-2920 analóg mikroprocesszor alkalmazása Az INTEL D-2920 analóg mikroprocesszor alkalmazása FAZEKAS DÉNES Távközlési Kutató Intézet ÖSSZEFOGLALÁS Az INTEL D 2920-at kifejezetten analóg feladatok megoldására fejlesztették ki. Segítségével olyan

Részletesebben

SZÁMÍTÓGÉPARCHITEKTÚRÁK

SZÁMÍTÓGÉPARCHITEKTÚRÁK ESSZÉ LÁNG LÁSZLÓ Zilog mokroprocesszor családok Z800 2005. December 1. Előszó A Zilog cég betörése a piacra rendkívül eredményesnek mondható volt, sőt később sikerült a csúcsra fejleszteniük a technológiájukat.

Részletesebben

Máté: Számítógép architektúrák 2010.12.01.

Máté: Számítógép architektúrák 2010.12.01. Máté: Számítógép architektúrák... A feltételes ugró utasítások eldugaszolják a csővezetéket Feltételes végrehajtás (5.5 5. ábra): Feltételes végrehajtás Predikáció ió C pr. rész Általános assembly Feltételes

Részletesebben

Digitális technika VIMIAA01

Digitális technika VIMIAA01 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 Fehér Béla BME MIT Digitális Rendszerek Számítógépek

Részletesebben

A SZÁMÍTÓGÉP FELÉPÍTÉSE.

A SZÁMÍTÓGÉP FELÉPÍTÉSE. A SZÁMÍTÓGÉP FELÉPÍTÉSE. Alapfogalmak: CPU : Central Processing Unit a központi feldolgozó egység, ez értelmezi a parancsokat és hajtja végre a memóriában tárolt utasításokat. RAM : Random Access Memory

Részletesebben

Mikrovezérlık története (nagyon) röviden

Mikrovezérlık története (nagyon) röviden Cím: Mikrovezérlık története (nagyon) röviden Készítette: Motika László Károly SZTE TTK Mérnök Informatikus I. félév 2006. november Mikrovezérlık története (nagyon) röviden A beágyazott számítógépeket

Részletesebben

DSP architektúrák dspic30f család

DSP architektúrák dspic30f család DSP architektúrák dspic30f család A Microchip 2004 nyarán piacra dobta a dspic30f családot, egy 16 bites fixpontos DSC. Mivel a mikróvezérlők tantárgy keretén belül a PIC családdal már megismerkedtetek,

Részletesebben

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő) Memóriák (felejtő) Memória Kapacitás Ár Sebesség Memóriák - tárak Háttértár (nem felejtő) Memória Vezérlő egység Központi memória Aritmetikai Logikai Egység (ALU) Regiszterek Programok Adatok Ez nélkül

Részletesebben

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 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ú

Részletesebben

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

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

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Elágazás jövendölés ok gép megjövendöli, hogy egy ugrást végre kell hajtani vagy sem. Egy triviális jóslás: a visszafelé irányulót végre kell hajtani (ilyen van a ciklusok végén), az előre irányulót nem

Részletesebben

Számítógépek felépítése, alapfogalmak

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

Részletesebben

ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA A PC FIZIKAI KIÉPÍTÉSÉNEK ALAPELEMEI Chip (lapka) Mikroprocesszor (CPU) Integrált áramköri lapok: alaplap, bővítőkártyák SZÁMÍTÓGÉP FELÉPÍTÉSE

Részletesebben

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere 2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda

Részletesebben

Bevezetés az assembly nyelvbe

Bevezetés az assembly nyelvbe Jelfeldolgozás a közlekedésben 2015/2016 II. félév Bevezetés az assembly nyelvbe Memóriacímzési módok Általános forma: instruction destination, source Addressing Modes Címzési mód Instruction /Utasítás

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és 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

Részletesebben

Számítógépek felépítése

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

Részletesebben

A 6502 mikroprocesszor

A 6502 mikroprocesszor A 6502 mikroprocesszor Czirkos Zoltán BME EET 2013. február 13. A 6502 processzorról Z80-korabeli Chuck Peddle (rendszer) és Bill Mensch (layout) főtervezők MOS Technology de sok cég gyártotta azóta Apple

Részletesebben

Számítógépes alapismeretek

Számítógépes alapismeretek Számítógépes alapismeretek Heti óraszáma: 2 (Bagoly Zsolt, Papp Gábor) + (Barnaföldi Gergely) A tantárgy célja: korszerű információtechnológiai alapismeretek elsajátítása megismerkedés az informatikai

Részletesebben

A 32 bites x86-os architektúra regiszterei

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)

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és 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

Részletesebben

assume CS:Code, DS:Data, SS:Stack Start: xor di, di mov si, 1 Torles int 10h mov dl, 40 xor bh, bh mov ah, 02h Kesleltet int 16h

assume CS:Code, DS:Data, SS:Stack Start: xor di, di mov si, 1 Torles int 10h mov dl, 40 xor bh, bh mov ah, 02h Kesleltet int 16h Fealadat3: labda.asm Feladat meghatározása A program célja az assembly rutinok időzítési lehetőségeinek bemutatása. Az időzítés az AH00, INT1Ah funkció segítségével történik. A program egy labda leesését

Részletesebben

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

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?

Részletesebben

Máté: Számítógép architektúrák

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

Részletesebben

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter Assembly Rekurzív függvények, EXE, C programok Iványi Péter Algoritmusok előadás Rekurzív függvény FÜGGVÉNY nyomtat(n) print n HA n!= 0 nyomtat(n-1) ELÁGAZÁS VÉGE FÜGGVÉNY VÉGE Rekurzív függvény org 100h

Részletesebben

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3) Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index

Részletesebben

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik. Teszt áramkör A CPU ból és kiegészítő áramkörökből kialakított számítógépet összekötjük az FPGA kártyán lévő ki és bemeneti eszközökkel, hogy az áramkör működése tesztelhető legyen. Eszközök A kártyán

Részletesebben

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei Kutató Intézet kisszámítógépes rendszerekben Tudományos számításokban gyakran nagy mennyiségű aritmetikai művelet elvégzésére van

Részletesebben

Adatelérés és memóriakezelés

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)

Részletesebben

Máté: Számítógép architektúrák

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,

Részletesebben

Számítógép Architektúrák I-II-III.

Számítógép Architektúrák I-II-III. Kidolgozott államvizsgatételek Számítógép Architektúrák I-II-III. tárgyakhoz 2010. június A sikeres államvizsgához kizárólag ennek a dokumentumnak az ismerete nem elégséges, a témaköröket a Számítógép

Részletesebben

A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani.

A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani. 1. Regiszterek A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani. Általános célú regiszterek AX akkumulátor: aritmetikai

Részletesebben

Alkalmazott modul: Programozás

Alkalmazott modul: Programozás Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás Feladatgyűjtemény Összeállította: Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Frissítve: 2015.

Részletesebben

Adatstruktúrák és algoritmusok

Adatstruktúrák és algoritmusok Adatstruktúrák és algoritmusok Attila Házy, Ferenc Nagy 2011. április 6. 2 Tartalomjegyzék 1. Bevezetés 7 1.1. A tárgyról............................. 7 1.2. Alapvető fogalmak, definíciók..................

Részletesebben

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Mikroarchitektúra szint Feladata az ISA (Instruction Set Architecture gépi utasítás szint) megvalósítása. Nincs rá általánosan elfogadott, egységes elv. A ISA szintű utasítások függvények, ezeket egy főprogram

Részletesebben

Aritmetikai utasítások I.

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

Részletesebben

Bevezetés az assembly nyelvbe

Bevezetés az assembly nyelvbe Mechatronika és mikroszámítógépek 2016/2017 I. félév Bevezetés az assembly nyelvbe Makro utasítások felépítése - emlékeztető Általános forma: operation code (Általános forma: instruction 3 című utasítás:

Részletesebben

Ipari Robotok Programozása

Ipari Robotok Programozása Ipari Robotok Programozása Vezérlő, StartUp, Szoftverszintek, programozási nyelvek Előadó: Nagy István n (A65) Gyakorlatvezető: : Tolnai András Ajánlott irodalom: B. Leatham-Jones: Elements of Industrial

Részletesebben

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. Excel VII. Visual Basic programozás alapok A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Részletesebben

Bevezetés a számítástechnikába

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

Részletesebben

Informatika 1 2. el adás: Absztrakt számítógépek

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

Részletesebben

Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek

Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek Soós Sándor Nyugat-magyarországi Egyetem Faipari Mérnöki Kar Informatikai és Gazdasági Intézet E-mail: soossandor@inf.nyme.hu 2011.

Részletesebben

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással Megoldás Elméleti anyag: Processzor belső felépítése, adat

Részletesebben

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ő. 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

Részletesebben

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) 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ő

Részletesebben

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb Input és Output 1 Bevitel-Kivitel Eddig a számítógép agyáról volt szó Processzusok, memória, stb Szükség van eszközökre Adat bevitel és kivitel a számitógépből, -be Perifériák 2 Perifériákcsoportosításá,

Részletesebben

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest. 2005. december 16.

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest. 2005. december 16. Architektúrák és operációs rendszerek Balogh Ádám, Lőrentey Károly Eötvös Loránd Tudományegyetem Algoritmusok és Alkalmazásaik Tanszék Budapest 2005. december 16. Tartalomjegyzék Perifériák 1 Perifériák

Részletesebben

INTEL 8085 gépi utasításkészlete

INTEL 8085 gépi utasításkészlete 1 INTEL 8085 gépi utasításkészlete ADATMOZGATÓ UTASÍTÁSOK MOV r1,r2 (r1)

Részletesebben

12.1.1. A Picoblaze Core implementálása FPGA-ba

12.1.1. A Picoblaze Core implementálása FPGA-ba 12.1.1. A Picoblaze Core implementálása FPGA-ba A Picoblaze processzor Ebben a fejezetben kerül bemutatásra a Pikoblaze-zel való munka. A Picoblaze szoftveres processzort alkotója Ken Chapman a Xilinx

Részletesebben

Digitális technika II., 2009/2010 tavasz 1. vizsga 2010.06.01. A csoport

Digitális technika II., 2009/2010 tavasz 1. vizsga 2010.06.01. A csoport Beugró kérdések: 1. USART jelalak (TdX) felrajzolása adott paritás és adott számú STOP bit mellett egy kétjegyű hexa szám átvitelére. 2. RST7.5, TRAP és INT megszakítási bemenetek összehasonlítása tilthatóság

Részletesebben

Megszakítások és kivételek

Megszakítások és kivételek Megszakítások és kivételek Megszakítások Megszakítás a számítási rendszernek küldött jelzés, mely valamilyen esemény felléptéről értesíti. Egy megszakítás felléptekor a rendszer: megszakítja az aktív program

Részletesebben

Intel x86 utasításkészlet

Intel x86 utasításkészlet Intel x86 utasításkészlet Kód visszafejtés. Izsó Tamás 2013. október 31. Izsó Tamás Intel x86 utasításkészlet/ 1 Section 1 Intel mikroprocesszor Izsó Tamás Intel x86 utasításkészlet/ 2 Intel mikroprocesszor

Részletesebben

2016/08/31 02:45 1/6 Hardver alapok

2016/08/31 02:45 1/6 Hardver alapok 2016/08/31 02:45 1/6 Hardver alapok < Hardver Hardver alapok Szerző: Sallai András Copyright Sallai András, 2011, 2013, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Bevezetés A számítógépet

Részletesebben

SZÁMOLÁSTECHNIKAI ISMERETEK

SZÁMOLÁSTECHNIKAI ISMERETEK SZÁMOLÁSTECHNIKAI ISMERETEK Műveletek szögekkel Geodéziai számításaink során gyakran fogunk szögekkel dolgozni. Az egyszerűbb írásmód kedvéért ilyenkor a fok ( o ), perc (, ), másodperc (,, ) jelét el

Részletesebben

Az interrupt Benesóczky Zoltán 2004

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

Részletesebben

1. Bevezetés. 2. A mikroszámítógépek felépítése

1. Bevezetés. 2. A mikroszámítógépek felépítése 1. Bevezetés A mikroelektronika és a számítástechnika története rövid. A 19. században terveztek számítógépeket, amelyek utasításkészlettel rendelkeztek (Charles Babbage). E gépeket mechanikus szerkezetként

Részletesebben

Máté: Assembly programozás

Máté: Assembly programozás Dr. Máté Eörs docens Képfeldolgozás és Számítógépes Grafika Tanszék Árpád tér 2. II. em. 213 6196, 54-6196 (6396, 54-6396) http://www.inf.u-szeged.hu/~mate Tantárgy leírás: http://www.inf.u-szeged.hu/oktatas/kurzusleirasok/

Részletesebben

Assembly Utasítások, programok. Iványi Péter

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

Részletesebben

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

SZÁMÍTÓGÉP ARCHITEKTÚRÁK SZÁMÍTÓGÉP ARCHITEKTÚRÁK Kártyás ajtónyitó tervezése Horváth Gábor BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-02-19 Hálózati Rendszerek és Szolgáltatások

Részletesebben

A mikroprocesszor felépítése és működése

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

Részletesebben

Máté: Számítógép architektúrá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

Részletesebben

Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat)

Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat) Informatika 1 vizsgafeladatok Számítógép architektúrák témakör Számítógép architektúra: Az elemi áramkörökből felépített funkcionális egységek alkotta hardver és az operációs rendszer között rész. Az architektúra

Részletesebben

hatására hátra lép x egységgel a toll

hatására hátra lép x egységgel a toll Ciklusszervező utasítások minden programozási nyelvben léteznek, így például a LOGO-ban is. LOGO nyelven, (vagy legalábbis LOGO-szerű nyelven) írt programok gyakran szerepelnek az iskola számítástechnikai

Részletesebben

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

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

Részletesebben

1. Digitális integrált áramkörök

1. Digitális integrált áramkörök 1. gyakorlat Digitális technika II. BSC képzés BME-IIT 1 1. Digitális integrált áramkörök 1.1. Logikai függvény elektronikus megvalósítása Figyelembe vett szempontok: legyen könnyen sokszorosítható legyenek

Részletesebben

Assembly Programozás Rodek Lajos Diós Gábor

Assembly Programozás Rodek Lajos Diós Gábor Assembly Programozás Rodek Lajos Diós Gábor Tartalomjegyzék Ábrák jegyzéke Táblázatok jegyzéke Előszó Ajánlott irodalom IV V VI VII 1. Az Assembly nyelv jelentősége 1 2. A PC-k hardverének felépítése 4

Részletesebben

GÁBOR DÉNES FŐISKOLA PREZENTÁCIÓ. Vezetőtanár: Ágoston György 2002/2003 6. szemeszter. 222 lap

GÁBOR DÉNES FŐISKOLA PREZENTÁCIÓ. Vezetőtanár: Ágoston György 2002/2003 6. szemeszter. 222 lap GÁBOR DÉNES FŐISKOLA PREZENTÁCIÓ Vezetőtanár: Ágoston György 2002/2003 6. szemeszter 222 lap 1. oldal A vezetőtanár: Ágoston György tel: (1) 436-6556 e-mail: agoston@gdf-ri.hu A GDF hivatalos honlapja:

Részletesebben

Bevezetés a C++ programozásba

Bevezetés a C++ programozásba Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek

Részletesebben

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz Archi2 Gyak (Processzorok Utasításszintű Kezelése) 2014 ősz Ajánlott irodalom Agárdi Gábor: Gyakorlati Assembly, LSI Oktatóközpont, 1996, ISBN 963 577 117 7 Agárdi G.: Gyakorlati Assembly haladóknak, LSI

Részletesebben

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/ Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/ Mi is az a Virtualizáció? Az erőforrások elvonatkoztatása az

Részletesebben

Számítógépek, számítógép rendszerek

Számítógépek, számítógép rendszerek Számítógépek, számítógép rendszerek 5. Hardver architektúrák, a CPU Dr. Vadász Dénes Miskolc, 2005. február TARTALOM TARTALOM... a 5. Hardver architektúrák, a központi egység működése... 1 5.1. Az ALU

Részletesebben

ismerd meg! A PC vagyis a személyi számítógép

ismerd meg! A PC vagyis a személyi számítógép ismerd meg! A PC vagyis a személyi számítógép A számítógép elsõ ránézésre A PC az angol Personal Computer rövídítése, jelentése: személyi számítógép. A szám í- tógépek rohamos elterjedésével a személyi

Részletesebben

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

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.

Részletesebben

ADATBÁZISKEZELÉS ADATBÁZIS

ADATBÁZISKEZELÉS ADATBÁZIS ADATBÁZISKEZELÉS 1 ADATBÁZIS Az adatbázis adott (meghatározott) témakörre vagy célra vonatkozó adatok gyűjteménye. - Pl. A megrendelések nyomon követése kereskedelemben. Könyvek nyilvántartása egy könyvtárban.

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:

Részletesebben

Intel x86 utasításkészlet + disassembler működése

Intel x86 utasításkészlet + disassembler működése Intel x86 utasításkészlet + disassembler működése Kód visszafejtés. Izsó Tamás 2016. november 10. Izsó Tamás Intel x86 utasításkészlet + disassembler működése / 1 Section 1 Intel X86 utasításkészlet Izsó

Részletesebben