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.
|
|
- Gergő Papp
- 7 évvel ezelőtt
- Látták:
Átírás
1 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 mőveletek BX bázis regiszter: tömbindexelés CX számláló (count) regiszter: ciklusszervezés, ismétlések számolása DX adat (data) regiszter: I/O mőveletek, aritmetikai mőveletek Szegmens regiszterek CS kód szegmens: futtatandó utasítások tárolása (maga a program) DS adat szegmens: globális változók, konstansok tárolása SS verem szegmens: lokális változók tárolása, visszatérési cím ES extra szegmens: tetszılegesen felhasználható terület (pl. heap) Pointer (index) regiszterek IP utasításszámláló, az éppen következı assembly utasításra mutat SI forrás (source) index, sztringmőveletek kiinduló címe DI cél (destination) index, sztringmőveletek érkezési címe SP verem mutató (stack pointer), a verem aktuális tetejét mutatja BP bázis pointer, bázis-index címzéshez (tömbindexelés) Speciális regiszter (SR = FLAGS) Státusz regiszter, minden bitje egy nevesített jelzıérték (true/false). O - elıjeles átvitel (overflow) D - sztringmőveletek iránya I - interruptok engedélyezése T - csapda (debug) eng. S - C - Z - A - P - eredménye elıjele (sign) eredménye átvitele (carry) eredménye nulla-e (zero) félszavas átvitel (BCD) eredmény páros/páratlan
2 Mindegyik regiszter 16 bites. Az általános célú regisztereket 2x8 bitesként is használhatjuk pl. AX = AH + AL (High/Low) Alap szegmens/offszet címpárok: CS:IP, DS:BX, DS:SI, SS:SP, SS:BP, ES:DI 2. Címzési módok Közvetlen címzés: MOV AX, 42 konkrét érték (konstans) Direkt: MOV AX, [1234h] adott címen lévı érték (változó/konstans) Regiszter: MOV AX, BX változók közötti értékadás Regiszter-indirekt: MOV AX, [BX] pointer szerinti értékadás Indexelt: MOV AX, [BX]4 ua. MOV AX, [BX+4] (tömb indexelés) Bázis-index: MOV AX, [BP][SI]1234h ua. [BP+SI+1234h] (több dim. tömb) Verem: PUSH AX lokális változók használata POP AX A címzési módokat hívják még operandus megadási módoknak is. 3. Adat mozgató utasítások Az adatmozgató utasítások értékadásra valók. Nem változtatják a flagek értékét, kivéve a POPF. MOV op1, op2 op 1 = op 2 értékadás XCHG op1, op2 op 1 és op 2 értéke kicserélıdik XLAT ugyanaz, mint MOV AL, [BX + AL] LEA reg, mem ugyanaz, mint MOV reg, OFFSET mem LES reg, mem MOV reg, [mem] és MOV ES, [mem + 2] LDS reg, mem MOV reg, [mem] és MOV DS, [mem + 2] PUSH reg SP = SP -2, MOV [SP], reg PUSHF SP = SP -2, SR (FLAGS) bekerül a verembe POP reg a verem felsı szavát teszi reg-be, SP = SP + 2 POPF a verem felsı szavát teszi SR-be, SP = SP + 2
3 4. Aritmetikai utasítások Az aritmetikai utasítások egyszerő számolási mőveleteket hajtanak végre. Ahol lehetséges célszerő az AX regiszterrel számolni, mivel az gyorsabb, mint a többi. Az ún. aritmetikai flageket (C, Z, S, A, O, P) beállítják ezek a mőveletek. ADD op1, op2 op 1 = op 1 + op 2 ADC op1, op2 op 1 = op 1 + op 2 + C(arry) SUB op1, op2 op 1 = op 1 op 2 SBB op1, op2 op 1 = op 1 op 2 C(arry) MUL op1 AX = AL op 1 ha op 1 8-bites elıjeltelen érték DX:AX = AX op 1, ha op 1 16-bites elıjel nélküli érték IMUL op1 ua. mint MUL, csak elıjeles értékekkel számol DIV op1 AL = AX / op 1, ha op 1 8-bites elıjel nélküli egész AX = DX:AX / op 1, ha op 1 16-bites elıjel nélküli egész IDIV op1 ua. mint DIV, csak elıjeles értékekkel számol INC op1 op 1 = op (nem változtatja a Carry flaget!) DEC op1 op 1 = op 1 1 (nem változtatja a Carry flaget!) NEG op1 op 1 = op 1, kettes komplemens képzése! CMP op1, op2 flagek beállítása op 1 op 2 értéke alapján CBW AX = AL, kiterjesztés 16-bitre elıjellel együtt CWD DX:AX = AX, kiterjesztés 32-bitre elıjellel együtt 5. Vezérlés átadó utasítások A vezérlés átadó utasításokkal feltételes vagy feltétel nélküli ugrást, eljárás- és függvényhívást tudunk kezdeményezni. Az ugrás tulajdonképpen nem más, mint a CS:IP regiszter párnak a következı utasítás címére beállítása. Háromféle ugrást különböztetünk meg attól függıen, hogy az operandus milyen hosszú. A SHORT ugrásnál IP új értéke az IP 128 és IP között változhat, CS változatlan (8 bites, elıjeles operandus). NEAR ugrásnál IP értéke tetszılegesen változhat, CS változatlan (16 bites operandus). FAR ugrásnál mind CS, mind az IP értéke tetszılegesen változhat (2x16 bites operandus, far pointer).
4 JMP op1 feltétel nélküli ugrás a megadott címre (short, near, far) Jxx short ptr feltételes ugrás a megadott flag értéke szerint (short) Lehetséges feltételek: Flag = 1 Flag = 0 C flag szerint: JC JB JNAE JNC JNB JAE Z flag szerint: JZ JE JNZ JNE S flag szerint: JS JNS O flag szerint: JO JNO P flag szerint: JP JPE JNP JPO CMP A, B utasítás után: A > B esetén: JA JNBE (C = 0 és Z = 0), elıjel nélküli számoknál A B esetén: JNA JBE (C = 1 vagy Z = 1), elıjel nélküli számoknál A > B esetén: JG JNLE (Z = 0 és S = O), elıjeles A < B esetén: JL JNGE (S O flag), elıjeles A B esetén: JGE JNL (S = O flag), elıjeles A B esetén: JLE JNG (Z = 1 vagy S O), elıjeles JCXZ címke feltételes ugrás, ha CX = 0 CALL címke eljáráshívás: PUSH IP majd JMP címke (near) ill. PUSH CS, PUSH IP, JMP címke (far) RET visszatérés közeli eljárásból: POP IP-vel egyenértékő RETF visszatérés távoli eljárásból: POP IP, POP CS 6. Ciklus szervezı utasítások A ciklus szervezı utasítások minden esetben CX értékét veszik figyelembe. Mindegyik utasítás csökkenti eggyel CX értékét, és ha az eredmény nulla, akkor vége a ciklusnak. Nagyjából egyenértékő a for (CX; CX > 1; CX--) utasítással. Az operandusban megadott ugrás SHORT lehet csak ( ). LOOP címke CX = CX 1, ha CX 0 ugrás a címkére LOOPZ címke CX = CX 1, ha CX 0 és Z flag = 1 ugrás a címkére LOOPNZ címke CX = CX 1, ha CX 0 és Z flag = 0 ugrás a címkére LOOPE címke ua. mint LOOPZ LOOPNE címke ua. mint LOOPNE
5 7. String kezelı utasítások Ezek az utasítások a memóriában bájtsorozatokkal (stringekkel) kapcsolatos mőveleteket valósítanak meg (másolás, kiolvasás, beírás, keresés ). Mindig DS:SI által mutatott címrıl olvasnak, és az ES:DI címre írnak. Az utasítástól függıen SI ill. DI regiszterek értéke 1 (Byte) ill. 2 (Word)-vel változik. Ha D (Direction = irány) flag 1, akkor növekszik, ha 0 csökken ennyivel. Létezik mindegyik utasításnak típus nélküli változata is (nincs a végén B vagy W), ekkor a megadott operandus MÉRETE mondja meg, hogy melyik változatot kell használni. Ha ez nem dönthetı el egyértelmően, akkor az assembler fordítási hibát ad, emiatt ill. az átláthatóság érdekében ezek használata kerülendı! Az ismétlı prefixumokat string kezelı utasítások elıtt használhatjuk, azokkal EGYÜTTESEN. Segítségükkel gyorsan végigmehetünk egy teljes stringen, minden elemre végrehajtva a kívánt mőveletet. Az összes ismétlés CX-szer hajtódik legfeljebb végre, hasonlóan a LOOP utasításhoz, annyi különbséggel, hogy itt elıbb megnézi a processzor, hogy CX = 0 teljesül-e, és csak az utasítás végrehajtása után csökkenti eggyel (azaz CX = 0 esetén egyszer sem hajtódik végre az utasítás). Ebbıl az is következik, hogy ha szabályosan végigfut egy ismétlési ciklus, akkor CX = 0 lesz. MOVS op1 nem szerencsés, ua. mint MOVSB vagy MOVSW MOVSB MOV ES:[DI], DS:[SI], és SI = SI ± 1, DI = DI ± 1 MOVSW MOV ES:[DI], DS:[SI], és SI = SI ± 2, DI = DI ± 2 LODS op1 nem szerencsés, ua. mint LODSB vagy LODSW LODSB MOV AL, DS:[SI], és SI = SI ± 1 (D flagtıl függıen) LODSW MOV AX, DS:[SI], és SI = SI ± 2 (D flagtıl függıen) STOS op1 nem szerencsés, ua. mint STOSB vagy STOSW STOSB MOV ES:[DI], AL és DI = DI ± 1 (D flagtıl függıen) STOSW MOV ES:[DI], AX és DI = DI ± 2 (D flagtıl függıen) CMPS op1 nem szerencsés, ua. mint CMPSB vagy CMPSW CMPSB CMP DS:[SI], ES:[DI] és SI = SI ± 1, DI = DI ± 1 CMPSW CMP DS:[SI], ES:[DI] és SI = SI ± 2, DI = DI ± 2 SCAS op1 nem szerencsés, ua. mint SCASB vagy SCASW SCASB CMP AL, ES:[DI] és SI = SI ± 1 (D flagtıl függıen) SCASW CMP AX, ES:[DI] és SI = SI ± 2 (D flagtıl függıen) REP fenti 5 féle utasítás ismétlése legfeljebb CX-szer
6 REPZ ismétlés legfeljebb CX-szer, ha Z flag értéke 1 REPNZ ismétlés legfeljebb CX-szer, ha Z flag értéke 0 REPE ua. mint REPZ REPNE ua. mint REPNZ 8. Logikai utasítások A logikai utasítások az operandusok között bitenkénti szabványos logikai mőveletek megvalósításai. Az eredmény az elsı operandusba kerül, a TEST utasítás kivételével, ahol értékük változatlan. Emellett természetesen mindegyiknél a megfelelı aritmetikai flagek is beállítódnak. AND op1, op2 op1 = op1 & op2, logikai ÉS mővelet TEST op1, op2 op1 & op2 értéke alapján beállítja a flageket OR o1p, op2 op1 = op1 op2, logikai VAGY mővelet XOR op1, op2 op1 = op1 + op2, logikai KIZÁRÓ VAGY mővelet NOT op1 op1 = op1, logikai negáció (egyes komplemens) 9. Bitforgató utasítások A bitforgató utasítások Az érték vagy konstans 1, vagy a CL regiszter (286-os géptıl felfelé megadhatunk 1-nél nagyobb konstanst is) RCL reg, érték forgatás balra, reg minden bitje eggyel balra tolódik, 0. bitbe C íródik, C felveszi a legmagasabb bit értékét RCR reg, érték forgatás jobbra, reg minden bitje eggyel jobbra tolódik, legmagasabb bitbe C íródik, C felveszi a 0. bit értékét ROL reg, érték forgatás balra, reg minden bitje eggyel balra tolódik, 0. bitbe és C flagbe a legmagasabb bit értéke kerül ROR reg, érték forgatás jobbra, reg minden bitje eggyel jobbra tolódik, legmagasabb bitbe és C flagbe a 0. bit értéke kerül
7 SHR reg, érték eltolás jobbra, reg minden bitje eggyel jobbra tolódik, legmagasabb bitbe 0 érték kerül, 0. bit a C flagbe íródik SHL reg, érték eltolás balra, reg minden bitje eggyel balra tolódik, 0. bitbe 0 érték kerül, legmagasabb bit a C flagbe íródik SAR reg, érték eltolás jobbra, reg minden bitje eggyel jobbra tolódik, legmagasabb bit nem változik, 0. bit a C flagbe íródik SAL reg, érték ua. mint SHL 10. Processzor vezérlı utasítások A processzor vezérlı utasítások egy része a flageket állítja direktben, másik részük egyéb közvetlen utasítást ad a CPU részére. A flageket, a leírt hatáson kívül nem változtatják. CLC C flaget törli (C = 0) STC C flaget beállítja (C = 1) CMC C flaget negálja (C = 1 C) CLD D flaget törli (D = 0), csökkenı irányú string mőveletek STD D flaget beállítja (D = 1), növekvı irány str. mőveletek CLI I flaget törli (I = 0), megszakítások tiltása STI I flaget beállítja (I = 1), megszakítások engedélyezése NOP CPU nem csinál semmit egy ideig ( XCHG AL, AL) WAIT CPU várakozik, amíg a koprocesszor kész nem lesz HLT CPU leáll, amíg hardveres megszakítás jelet nem kap 11. Input/Output utasítások Külsı eszközökkel kommunikálhat a CPU, az ún. portokon keresztül. A port értéke egy közé esı konkrét szám lehet. Ha ennél nagyobb sorszámú portot akarunk elérni, akkor a port helyére DX regisztert kell beírni (a port sorszáma természetesen ekkor DX-ben van). A mővelethez kizárólag AX és AL regiszterek használhatóak, attól függıen 2 vagy 1 bájtot mozgatunk. IN accum, port beolvas 1 vagy 2 bájtot AL/AX-be a megadott portról OUT port, accum kiírja az AL/AX-ben lévı értéket a megadott portra
8 12. Interrupt utasítások Az interrup (megszakítás) kezelı utasításokkal saját, vagy beépített eljárásokat hívhatunk meg. Ezek egy része akkor fut le, ha egy hardver eszköz megszakítás jelet küld a CPU-nak (pl. leütöttek egy billentyőt), más részüket a rendszer és mi használjuk programon belül (pl. BIOS rutinok). A megszakítások sorszáma között lehet, és a 0000h:[4*sorszám] helyen lévı távoli címen vannak megvalósítva. INT sorszám megszakítás hívása, interrupt táblában lévı cím szerint: PUSHF, CALL far ptr 0000h:[4*sorszám] egymás után INTO INT 4 hívása, ha az O flag értéke 1 IRET visszatérés megszakításból (RETF, POPF egymás után)
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észletesebbenBevezeté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észletesebbenBalaton 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észletesebbenDigitá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észletesebbenAssembly programozás levelező tagozat
Assembly programozás levelező tagozat Németh Gábor Szegedi Tudományegyetem Képfeldolgozás és Számítógépes Grafika Tanszék 2011-2012-2 A kurzusról Tematika Assembly nyelvi szint. Az Intel 8086/88 regiszter
Részletesebbentalá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észletesebbenAssembly. 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észletesebbenAssembly 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észletesebben1. 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
RészletesebbenAritmetikai 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észletesebbenDr. Máté Eörs docens. Képfeldolgozás és Számítógépes Grafika Tanszék Árpád tér 2. II. em
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 mate@inf.u-szeged.hu Máté: Assembly programozás
RészletesebbenA 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
RészletesebbenII. KMAPR21TNB, KMAPR21ONB PC
Programozás II. KMAPR21TNB, KMAPR21ONB PC assembly Sándor Tamás Ajánlott irodalom Diós Gábor és Rodek Lajos jegyzete. (http://www.inf.uszeged.hu/~rusko/asm/jegyzet.pdf) Máté Eörs: Assembly programozás,
RészletesebbenAssembly 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,
RészletesebbenMá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észletesebbenGyakorló 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észletesebbenassume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz
Feladat5: rajzolo.asm Feladat meghatározása A feladat célja bemutatni egy egyszerű grafikai program segítségével a közvetlen címzést (grafikus VGA 320*200). A program a kurzor mozgató gombok segítségével
RészletesebbenA 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észletesebbenMi 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észletesebbenAssembly. 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
RészletesebbenAdatelé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észletesebbenA 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észletesebbenAssembly programozás Bevezetés
Assembly programozás Bevezetés Varga László Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem (Tanács Attila nappali előadás fóliái alapján) Elérhetőségek, anyagok Személyesen Előadás
RészletesebbenGÁ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észletesebbencode segment para public 'code' assume cs:code, ds:code, es:nothing, ss:nothing
Készítsen VIZSGA3.COM programot, amely a képernyő bal felső sarkában megjeleníti az egérgombok pillanatnyi állapotát. Azaz a "bal", "jobb", "mindkettő", "egyik sem" szövegeket írja ki, attól függően, hogy
RészletesebbenA 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[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észletesebbenHARDVERKÖZELI PROGRAMOZÁS1
HARDVERKÖZELI PROGRAMOZÁS1 Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék 2015.05.11 Követelmények Gyakorlat (aláírás) Óralátogatás (maximum hiányzás: 3) C programozási beugró
RészletesebbenMikroprocesszor 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észletesebbenIntel 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észletesebbenArchi2 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észletesebbenA 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észletesebbenAritmetikai utasítások
Aritmetikai utasítások 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át. A 8086/8088-as processzor memóriája és regiszterei a little endian tárolást követik,
RészletesebbenAssembly 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észletesebbenA 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észletesebbenAz 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észletesebbenProcesszorok Utasításszintű Kezelése tavasz
Processzorok Utasításszintű Kezelése 2014 tavasz 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 oktatóközpont,
RészletesebbenIntel 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észletesebbenElőszó avagy Murphy és az optimizmus. Tartalomjegyzék
Előszó avagy Murphy és az optimizmus Tartalomjegyzék Tartalomjegyzék...3 Előszó avagy Murphy és az optimizmus...7 1. Fejezet...8 A PC (DOS) filekezelésetm "filekezelése"...8 Egy file létrehozása...8 File
RészletesebbenJá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észletesebbenKitlei Róbert kitlei.web.elte.hu. Karunkról Kari digitális könyvtár
. előadás Kitlei Róbert kitlei.web.elte.hu Jegyzet: ssembly programozás www.inf.elte.hu Karunkról Kari digitális könyvtár i az assembly? gépi kód: a számítógép által közvetlenül értelmezett és végrehajtott
RészletesebbenGPU Lab. 3. fejezet. Az X86 Utasításkészlet. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc
3. fejezet Az X86 Utasításkészlet Grafikus Processzorok Tudományos Célú Programozása Assembly nyelv Assembly nyelv: Bitkódok (gépikód) helyett rövid párbetűs nevek (mnemonic) az utasításoknak és a regisztereknek.
Részletesebbenassume 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észletesebbenArchitektú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
RészletesebbenAssembly Címzési módok. Iványi Péter
Assembly Címzési módok Iványi Péter Gépi kód Gépi kód = amit a CPU megért 1-13 byte hosszúak lehetnek az utasítások Kb. 20 000 variációja van a gépi kódú utasításoknak Számítógép architektúrától függ Feszültség
RészletesebbenEgyszerű 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észletesebbenAz assembly nyelv sor-orientált nyelv, tehát minden sorba pontosan egy utasítás kerül. Egy sor mezőkből áll a következőképpen:
Informatika szigorlat 16-os tétel: Az assembly nyelvek tulajdonságai és fordítása Az assembly nyelv tulajdonképpen a gépi kód szimbolikus megfelelője, azért jött létre, hogy könnyebben lehessen programozni
RészletesebbenParaméter átadás regisztereken keresztül
Eljárások paramétereinek átadási módjai Az eljárások deklarációjánál nincs mód arra, hogy paramétereket adjunk meg, ezért más, közvetett módon tudunk átadni paramétereket az eljárásoknak. Emlékeztetőül:
RészletesebbenStack Vezérlés szerkezet Adat 2.
Stack Vezérlés szerkezet Adat 2. Kód visszafejtés. Izsó Tamás 2013. november 14. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 1 Változó típusú paraméterekátadása 1. #include < s t d i o. h> int64 myfunc
RészletesebbenProgramozá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:
RészletesebbenINTEL 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észletesebbenBevezeté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észletesebbenBevezeté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észletesebben1. á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észletesebbenASSEMBLY PROGRAMOZÁS TANTÁRGYHOZ SZÜKSÉGES ELŐISMERETEK ISMÉTLÉSE
ASSEMBLY PROGRAMOZÁS TANTÁRGYHOZ SZÜKSÉGES ELŐISMERETEK ISMÉTLÉSE Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék 2019. augusztus 31. A C programozási nyelv alapos ismerete
RészletesebbenMáté: Számítógép architektúrák
Pentium 4 Nagyon sok előd kompatibilitás!), a fontosabbak: 44: 4 bites, 88: 8 bites, 886, 888: es, 8 bites adat sín 8286: 24 bites nem lineáris) címtartomány 6 K darab 64 KB-os szegmens) 8386: IA-32 architektúra,
RészletesebbenMutatók és mutató-aritmetika C-ben március 19.
Mutatók és mutató-aritmetika C-ben 2018 március 19 Memória a Neumann-architektúrában Neumann-architektúra: a memória egységes a címzéshez a természetes számokat használjuk Ugyanabban a memóriában van:
RészletesebbenMikrokontrollerek. 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észletesebbenn-pr H 5 C 6 CHCl 2 Pascal és assembler
súlyosan károsította a magzatot, (a gyerekek csökevényes végtagokkal születtek). A teratogén hatást az S-(-) enatiomér hordozza, míg az R-(+) hatástalan. Az 1-metil-5-fenil-5-propilbarbitursav egyik enatiomere
RészletesebbenAssembly programozás. szerkesztette: Iványi Péter. September 27, 2010
Assembly programozás szerkesztette: Iványi Péter September 27, 2010 2 Tartalomjegyzék 1 Bevezetés 11 1.1 RISC és CISC processzor architektúrák......................... 11 1.2 Assembly elsőre......................................
RészletesebbenSzá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észletesebbenSzá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észletesebbenMegszakí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észletesebbenAssembly 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észletesebbenDigitá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észletesebbenAssembly programozás. szerkesztette: Iványi Péter. September 22, 2009
Assembly programozás szerkesztette: Iványi Péter September 22, 2009 2 Tartalomjegyzék 1 Bevezetés 9 1.1 Assembly elsőre...................................... 9 1.2 Miért tanuljunk assembly nyelvet?............................
RészletesebbenInformatika 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észletesebben1 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,
RészletesebbenMemóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
RészletesebbenMikrovezé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észletesebbenA 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észletesebbenJava II. I A Java programozási nyelv alapelemei
Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve
RészletesebbenMá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észletesebben5-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észletesebbenLaborgyakorlat 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észletesebbenDigitá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észletesebbenA 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
RészletesebbenBELÉPTETİ RENDSZER TERVEZÉSE
BELÉPTETİ RENDSZER TERVEZÉSE Számítógép-architektúrák 2. gyakorlat Dr. Lencse Gábor lencse@hit.bme.hu 2014. szeptember 25., Budapest Dr. Koller István koller@hit.bme.hu ISMÉTLÉS: A BELÉPTETİ PERIFÉRIA
RészletesebbenELŐSZÓTJ "Előszó" \l
ELŐSZÓTJ "Előszó" \l Ebben a könyvben megpróbálom egy kicsit másképpen megközelíteni a gépi kódú programozást mint ahogyan az az eddig megjelent hasonló témájú kiadványokban történt. Nem elsősorban a programozás
RészletesebbenMechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások
Mechatronika és mikroszámítógépek 2018/2019 I. félév Külső megszakítások Megszakítás, Interrupt A megszakítás egy olyan esemény, vagy feltétel teljesülése, amely felfüggeszti a program futását, a vezérlést
RészletesebbenMáté: Assembly programozás
Paraméter másutt is előfordulhat a makró törzsben, nemcsak az operandus részen, pl.: PL macro p1,p2 mov ax,p1 P2 p1 PL mov INC Adat, INC ax,adat Adat A &, %,! karakterek továbbá a és ;; speciális szerepet
RészletesebbenMáté: Számítógép architektúrák
Máté: Számítógép architektúrák 211117 Utasításrendszer architektúra szintje ISA) Amit a fordító program készítőjének tudnia kell: memóriamodell, regiszterek, adattípusok, ok A hardver és szoftver határán
RészletesebbenSzá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észletesebbenArchitektúra, címzési módok
Architektúra, címzési módok Mirıl lesz szó? Címzés fogalma, címzési módok Virtuális tárkezelés Koschek Vilmos Példa: Intel vkoschek@vonalkodhu Fogalom A címzési mód az az út (algoritmus), ahogyan az operandus
RészletesebbenA 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[1] Bevezetés. A "debug" a DOS-ból közvetlenûl indítható a "debug" szó begépelésével. Kilépés hasonlóképpen a "q" paranccsal történik.
Assembly Tutorial 1. Bevezetés 2. Hexaritmetika 3. Negatív számok 4. Regiszterek 5. Memória 6. Összeadás 7. A négy alapmûvelet 8. Megszakítások 9. Programok beírása 10. Karakterlánc kiírása 11. Átviteljelzô
RészletesebbenAz 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észletesebbenA kódgenerálás helye a fordítási folyamatban. Kódgenerálás I. (kifejezések és vezérlési szerkezetek) A kódgenerálás feladata. Ebben az előadásban...
A kódgenerálás helye a fordítási folyamatban Forrásprogram Forrás-kezelő (source handler) Kódgenerálás I. (kifejezések és vezérlési szerkezetek) Fordítóprogramok előadás (A,C,T szakirány) 2008. őszi félév
RészletesebbenArchitektúrák és operációs rendszerek: Processzorok
Balogh, Lőrentey: Architektúrák és operációs rendszerek 2005 2006. második félév Architektúrák és operációs rendszerek: Processzorok Balogh Ádám Lőrentey Károly Eötvös Loránd Tudományegyetem Informatikai
RészletesebbenMá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észletesebbenDigitá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észletesebbenBevezeté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.
RészletesebbenINFORMATIKA MATEMATIKAI ALAPJAI
INFORMATIKA MATEMATIKAI ALAPJAI Készítette: Kiss Szilvia ZKISZ informatikai szakcsoport Az információ 1. Az információ fogalma Az érzékszerveinken keresztül megszerzett új ismereteket információnak nevezzük.
RészletesebbenPMU Kezdı lépések. 6-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez. 6-1 Kommunikáció LG PMU és LG GLOFA-GM7 / GM6 / GM4 között
-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez -1 Kommunikáció LG PMU és LG GLOFA-GM / GM között -1-1 PLC programozó csatlakozója ( CPU loader port ) -1- PLC beépített C-NET csatlakozója (CPU C-net) -1-
RészletesebbenMáté: Számítógép architektúrák
Pentium 4 utasításformái (4 ábra) Több generáción keresztül kialakult architektúra Csak egy operandus lehet memória cím Prefix, escape (bővítésre), MOD, SIB (Scale Index Base) 0- prefix - művkód 6 utasítás
RészletesebbenA 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észletesebbenMá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észletesebbenSzA19. 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
RészletesebbenSzámítógép architektúrák
Számítógép architektúrák Számítógépek felépítése Digitális adatábrázolás Digitális logikai szint Mikroarchitektúra szint Gépi szint Operációs rendszer szint Assembly nyelvi szint Probléma orientált (magas
RészletesebbenKözponti vezérlőegység
Központi vezérlőegység A számítógép agya a központi vezérlőegység (CPU: Central Processing Unit). Két fő része a vezérlőegység (CU: Controll Unit), ami a memóriában tárolt program dekódolását és végrehajtását
Részletesebben