Assembly utasítások listája

Hasonló dokumentumok
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.

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

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.

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.

Assembly programozás levelező tagozat

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

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

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

Aritmetikai utasítások

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

Assembly. Iványi Péter

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

Kitlei Róbert kitlei.web.elte.hu. Karunkról Kari digitális könyvtár

II. KMAPR21TNB, KMAPR21ONB PC

code segment para public 'code' assume cs:code, ds:code, es:nothing, ss:nothing

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz

Assembly programozás levelező tagozat

Assembly programozás Bevezetés

Egyszerű RISC CPU tervezése

Aritmetikai utasítások I.

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

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

Előszó avagy Murphy és az optimizmus. Tartalomjegyzék

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

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

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

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

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 32 bites x86-os architektúra regiszterei

A MiniRISC processzor

HARDVERKÖZELI PROGRAMOZÁS1

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

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

GPU 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

Intel x86 utasításkészlet

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

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

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

Processzorok Utasításszintű Kezelése tavasz

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

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

Mikrokontrollerek. Tihanyi Attila május 8

Stack Vezérlés szerkezet Adat 2.

n-pr H 5 C 6 CHCl 2 Pascal és assembler

ASSEMBLY PROGRAMOZÁS TANTÁRGYHOZ SZÜKSÉGES ELŐISMERETEK ISMÉTLÉSE

Máté: Assembly programozás

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

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Assembly programozás. szerkesztette: Iványi Péter. September 22, 2009

Assembly programozás. szerkesztette: Iványi Péter. September 27, 2010

Introduction to 8086 Assembly

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

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

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

ELŐSZÓTJ "Előszó" \l

Assebly feladatok SHR SHL NOT NEG AND XOR. Ezt követően ismertetni kell a szoftver megszakítás fogalmát és szükségességét.

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

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

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

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

Bevezetés a méréstechnikába és jelfeldolgozásba. Tihanyi Attila április 24.

Bevezetés az informatikába

Kitlei Róbert. Assembly programozás ELTE, Lektorálta: Dévai Gergely. Kitlei Róbert Assembly programozás 1

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

Paraméter átadás regisztereken keresztül

Máté: Assembly programozás

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

Információs Technológia

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

Digitális technika VIMIAA hét

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Bevezetés az assembly nyelvbe

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

Mérési utasítás Mikrokontroller programozás 2.sz. mérés

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

A hibát az alábbi Python program segítségével tudjuk előidézni:

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Architektúrák és operációs rendszerek: Processzorok

Digitális technika VIMIAA hét

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

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

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

Assembly. Iványi Péter

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

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

Adatszerkezetek 1. Dr. Iványi Péter

Digitális technika VIMIAA01

Szemantikai elemzés. konzisztenciájának vizsgálata a szemantikai elemzés feladata lesz.

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

2. Fejezet : Számrendszerek

Alprogramok fordítása. Kódgenerálás II. (alprogramok, memóriakezelés) Függvény, eljárás. Alprogramok írása assemblyben

Megszakítások és kivételek

HLA zsebkönyv. 1 Áttekintés. 2 A HLA üzembe helyezése. 3 A HLA futtatása. HLA zsebkönyv

Bevezetés az informatikába

SzA19. Az elágazások vizsgálata

A TMS320C50 és TMS320C24x assembly programozására példák

Bevezetés az assembly nyelvbe

1 Doszpi

Verilog HDL ismertető 2. hét : 1. hét dia

Átírás:

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 az ismerete nélkül valószínűleg a ZH-kat sem lehet megoldani. Az egyéb kategóriába esnek azok az utasítások, amik szintén előkerülnek, és megkönnyíthetik a feladatok megoldását, de nem feltétlenül elengedhetetlenek. FONTOS DOLGOK: 1. Az utasítok megtanulása még nem jelenti, hogy az ember használni is tudja őket. Minden utasítás működését érdemes átgondolni, és kipróbálni 1-2 példán. 2. A segédanyag még nem végleges, és nem hivatalos. Bővül, változik. Amíg így van, addig csak jelzés értékkel kezelendő. Ha ez a helyzet változik, akkor ezt a pontot ki fogom törölni. 3. Hibákkal, megjegyzéseekel, észrevételekkel kapcsolatban senki ne fogja vissza magát. Nyugodtan lehet szólni. Alkalomadtán javítani is fogom a jegyzetet. 4. Illetve, ha valaki érez erőt és kedvet a jegyzet írásába való bekapcsolódásba, akkor bártan jelentkezzen. Sok a dolgom Nekem is így lassan haladok a segédanyagokkal. Fontos utasítások MOV ADD SUB MOV op1, op2 ; op1 <= op2 ADC Kétoperandusú utasítás. Az első operandusába átrakja a második operandus által jelölt adatot. A két operandus közül legalább egy regiszter kell, hogy legyen. ADD op1, op2 ; op1 <= op1 + op2 SUB op1, op2 ; op1 <= op1 - op2

SBB CBW CWD MUL IMUL DIV IDIV ADC op1, op2 ; op1 <= op1 + op2 + carry SBB op1, op2 ; op1 <= op1 - op2 - carry CBW ; Nincs operandusa ; Az AL-ben tárolt számot terjeszti ki ELŐJELESEN AX -be CWD ; Nincs operandusa ; Az AX-ben tárolt számot terjeszti ki ELŐJELESEN DX:AX -be MUL op ; 1 operandusú, az operandus nem lehet közvetlen ; előjel nélküli számok szorzására használatos ; Ha op 8 bites, akkor: ; AX <= AL * op ; Ha op 16 bites, akkor: ; (DX:AX) <=AX * op IMUL op ; Ugyanaz, mint a MUL, csak előjelesen kezeli a számokat. ; FONTOS: az előjeles és előjel nélküli számok kezelése meg ; van különböztetve DIV op ; 1 operandusú, az operandus nem lehet közvetlen ; előjel nélküli számok osztására használatos ; Ha op 8 bites, akkor: ; AL <= AX / op (AL-be a hányados) ; AH <= AX % op (AH-ba a maradék) ; Ha op 16 bites, akkor: ; AX <= (DX:AX) / op (AX-be a hányados) ; DX <= (DX:AX) % op (DX-ba a maradék)

IDIV op ; Ugyanaz, mint a DIV, csak előjelesen kezeli a számokat. ; FONTOS: az előjeles és előjel nélküli számok kezelése meg ; van különböztetve INC DEC NEG XCHG PUSH POP CMP INC op ; op <= op + 1 ; csak növeli egyel az operandusa értékét DEC op ; op <= op - 1 ; csak csökkenti eggyel az operandusa értékét NEG op ; op <= -op ; negálja az operandus értékét XCHG op1 op2 ; op1 = op2, op2 = op1 ; megcseréli a két operandus értékét ; legalább az egyik operandusa regiszter PUSH op ; op 16 bites (word) ; csökkenti SP értékét kettővel ; beteszi a 16 bites regisztert (op) a verem tetejére POP op ; op 16 bites (word) ; növeli SP értékét kettővel ; a verem tetején lévő értéket op-ba tölti CMP op1, op2 ; két operandus, legalább az egyik regiszter ; a flags regisztert állítja be op1-op2 szerint ; gyakorlatilag a két operandusának a relációját számítja ki ; utána feltételes ugrásokat lehet végezni, ha ; (op1 > op2), (op1=op2), stb. ; fontos, hogy csak addig van hatása amíg egy másik utasítás ; meg nem változtatja a FLAGS tartalmát

Feltételes ugró utasítások: (Általában de nem feltétlenül CMP utasítás után állnak.) JCXZ Formájuk általában: o JE címke ; ugrik a címkére, ha egy feltétel teljesül ; ebben az esetben, ha az előző aritmetikai művelet ; eredménye 0 CMP után, számok összehasonlításakor (egy ugrásra több utasítás is lehet): Előjeles számoknál Ugrik ha Előjel nélküli számoknál JE, JZ = JE, JZ JNE, JNZ JNE, JNZ JG, JNLE > JA, JNBE JGE, JNL JAE, JNB, JNC JL, JNGE < JB, JNAE, JC JLE, JNG JBE, JNA A FLAGS regiszter bitjei alapján ugró utasítások: Ugrik, ha a flag értéke 1 Vizsgált flag Ugrik, ha a flag értéke 0 JZ JNZ JC JNC JS JNS JO JNO JP JNP LOOP JMP CALL RET MOVSB JCXZ címke ; ugró utasítás. A vezérlés ugrik a címkére, ha CX=0 LOOP címke ; ciklusszervező utasítás ; a CX értékét csökkenti egyel, ; és ugrik a címkére, ha a CX elérte a 0-t ; A CX-et számlálóként használva a címke és a LOOP közötti ; kódrész le lehet futtatni adott számban. JMP címke ; ugró utasítás. A vezérlés feltétel nélkül ugrik a cimkére CALL címke ; a visszatérési címet a verem tetejére teszi ; ugrik a címkére RET ; nincs operandusa ; kiveszi a verem tetejéről a visszatérési címet és odaugrik

MOVSB ;sztring mozgatása, byte ;átvitel az (ES:DI) által mutatott cimre ; a (DS:SI) által mutatott címrõl MOVSW LODSB LODSW MOVSW ;sztring mozgatása, word ;átvitel az (ES:DI) által mutatott cimre ; a (DS:SI) által mutatott címrõl LODSB ; nincs operandusa (8 bit) ; a DS:[SI] által mutatott helyről betölti a string/számsorozat ; következő elemét az AL-be, és a D flag alapján lépteti SI-t ; (ha D=0, akkor +1 ha D=1, akkor -1) LODSW ; nincs operandusa (16 bit) ; a DS:[SI] által mutatott helyről betölti a string/számsorozat ; következő elemét az AX-be, és a D flag alapján lépteti SI-t ; (+2 vagy -2) STOSB STOSW CMPSB CMPSW SCASB SCASW AND TEST OR XOR NOT RCR RCL

ROR ROL SHR SHL SAR SAL További utasítások PUSHF POPF XLAT LDS LES LEA LAHF SAHF AAA DAA AAS DAS AAM

Készítették: Antal Gábor