II. KMAPR21TNB, KMAPR21ONB PC

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

Download "II. KMAPR21TNB, KMAPR21ONB PC"

Átírás

1 Programozás II. KMAPR21TNB, KMAPR21ONB PC assembly Sándor Tamás Ajánlott irodalom Diós Gábor és Rodek Lajos jegyzete. ( Máté Eörs: Assembly programozás, Novadat, Egyetemi Könyvtár Magyar nyelvű programozás honlap Pethő Ádám: Assembly alapismeretek

2 Tartalom Assembly, assembler Assembly jelentősége, jellemzői Számrendszerek, gépi adatábrázolás I8086 processzor család Assembly szerkezete, szintaxisa Az i8086 processzor utasítás készlete Assembly programok készítése Vezérlési szerkezetek megvalósítása Turbo debugger használata BCD aritmetika, bitforgatás és léptetés Assembly és a magasszintű nyelvek kapcsolata Műveletek sztringekkel Az.EXE és.com programok, a PSP Szoftver megszakítások Hardver megszakítások, rezidens programok Assembly, assembler Assembly Gépi szintű programozási nyelv, közvetlenül a processzor utasítás készletét használja Assembler Fordító program, amely az assembly programozási nyelven elkészített programot (.asm) tárgykódú programmá (.obj) fordítja. Linker A tárgykódú programból futtatható fájlt (.exe) állít elő. Mnemonikkal (mnemonic) Egy gépi utasítást helyettesítő 2-5 betűs kulcsszó. Assembly jelentősége, jellemzői nagyon egyszerű, elemi műveletek típustalanság rögzített utasításkészlet világos, egyszerű szintaxis kevés vezérlési szerkezet nagyon kevés adattípus; ha több is van, akkor általában egymásból származtathatók Assembly előnyei korlátlan hozzáférésünk van a teljes hardverhez, beleértve az összes perifériát (billentyűzet, nyomtató stb.) pontosan ellenőrizhetjük, hogy a gép tényleg azt teszi-e, amit elvárunk tőle ha szükséges, akkor minimalizálhatjuk a program méretét és/vagy sebességét is

3 Assembly hátrányai a forrás sokszor áttekinthetetlen még a szerzőnek is a kódolás nagy figyelmet, türelmet, és főleg időt igényel nagy a hibalehetőség a hardver alapos ismerete elengedhetetlen a forrás nem hordozható, azaz más alapokra épülő számítógépre átírás nélkül nem vihető át (ez persze igaz a gépi kódra is) Számrendszerek, gépi adatábrázolás 2, 8, 10, 16-os számrendszerben előjeles és előjelnélküli számokkal történő művelet végzés (+, -, *, /) BCD aritmetika 8086-os processzor jellemzői 8086-os felépítése Memóriakezelés Regiszterek Adattípusok Memória hivatkozások, címzési módok Veremkezelés I/O, megszakítási rendszer

4 8086 felépítése

5 8088 funkcionális blokkvázlata

6 Memóriakezelés

7 Memória- modellek A memória-modell a memória hozzáférésének módját és technikáját írja le. Fajtái: Lineáris modell Szegmentált modell Lapozásos modell Szegmentált memóriakezelés Fizikai cím = 10H* szegmens cím + ofszet cím 6A4B0H = 10H * 6A3BH H 00400H = 10H * 0030H H 00400H = 10H * 0020H H Regiszterek Általános regiszterek AX (Accumulator) Aritmetikai utasítások bemeneti és eredmény értékét tárolhatja. BX (Base) Báziscímzés használt regiszter. CX (Counter) Ciklus utasítás esetén ciklusszámlálóként használatos. DX (Data) Port kezelő utasítások (In, Out) esetén a port címét tartalmazza. Általános regiszterek osztott hivatkozása AX AH AL

8 Vezérlő regiszterek SI (Source Index) Blokk kezelő utasítások esetén a forrás terület címét tartalmazza. DI (Destination Index) Blokk kezelő utasítások esetén a cél terület címét tartalmazza. SP (Stack Pointer) A verembe legutóbb behelyezett érték címét tartalmazza. BP (Base Pointer) Báziscímzés esetén használatos, de alapesetben a verem egy elemét jelöli ki. Vezérlő regiszterek II. IP (Instruction Pointer) A következő végrehajtandó utasítás memóriacímét tartalmazza. Közvetlenül nem érhető el, de tartalma írható és olvasható is a vezérlésátadó utasításokkal. SR avagy Flags (Status Register) A processzor aktuális állapotát, az előző művelet eredményét tartalmazza, illetve a processzor működését befolyásoló biteket, ú.n. flag-eket (jelzőket) tartalmazza. Szintén nem érhető el közvetlenül, de manipulálható különféle utasításokkal. Állapot regiszter (SR avagy Flags (Status Register) ) I. C (Carry) Előjel nélküli számábrázolás esetén művelet végzés után a számtartomány túllépését jelzi. O (Overflow) Előjeles számábrázolás esetén művelet végzés után a számtartomány túllépését jelzi. P (Parity even) 1, ha az eredmény legalsó bájtja páros számú 1-es bitet tartalmaz, különben 0. Állapot regiszter (SR avagy Flags (Status Register) ) II. A (Auxilliary carry, Adjust) 1 jelzi, ha volt átvitel az eredmény 3-as és 4-es bitje (tehát az alsó és a felső nibble) között. Adjuk össze a 78BCD és a 87BCD értékeket! 78BCD 87BCD 165BCD «« BCD kiegészítés, A és a Cy bitek miatt BCD aritmetika MOV AX,78h ; 78BCD-t hex formában adjuk meg ADD AX,87h DAA ; 87BCD-t hex formában adjuk meg ; BCD kiegészítést, ha szükséges, akkor elvégzi ; Carry és Ac állapotától függően Állapot regiszter (SR avagy Flags (Status Register) ) III. Z (Zero) Értéke 1, ha az eredmény zérus lett. S (Sign) Értéke 1, ha az eredmény nullánál kisebb lett. T (Trap) Ha 1, akkor a lépésenkénti végrehajtás (single-step execution) engedélyezve van. I (Interrupt enable) Ha 1, akkor a maszkolható megszakítások engedélyezettek.

9 D (Direction) Ha 0, akkor a blokk mozgató utasítások növelik SI-t és/vagy DI-t, különben csökkentés történik. Szegmens regiszterek CS (Code Segment) A végrehajtandó program kódját tartalmazó szegmens címe. Nem állítható be közvetlenül, csak a vezérlésátadó utasítások módosíthatják. DS (Data Segment) Az alapértelmezett, elsődleges adatterület szegmensének címe. ES (Extra Segment) Másodlagos adatszegmens címe. SS (Stack Segment) A verem szegmensének címe. Címzési módok Program terület címzése Közeli cím JMP címke; ugrás szegmensen belül Távoli cím JMP FAR cím; ugrás szegmensen kívülre Relatív cím JE címke; ugrás előjeles egy bájtnyit Adatterület címzése Adatterület címzése Közvetlen címzés A címzés alakja [offs16], ahol offs16 egy 16 bites abszolút, szegmensen belüli ofszetet (rövid mutatót) jelöl. MOV AX, [3F4Bh] Báziscímzés A címzés egy bázisregisztert használ az ofszet cím megadására. A lehetséges alakok: [BX], [BP]. A forrás adat ofszet címét a használt bázisregiszterből fogja venni a processzor. MOV CX, [BP] Indexcímzés A címzés egy index regisztert használ az ofszet cím megadására. MOV AX, [SI] Bázis+relatív címzés Ide a [BX+rel8], [BX+rel16], [BP+rel8], [BP+rel16] formájú címmegadások tartoznak. A rel16 egy előjeles szó, rel8 pedig egy előjeles bájt, amit a processzor előjelesen kiterjeszt szóvá. Ezek az ú.n. eltolások (displacement). Bármelyik változatnál a megcímzett bájt ofszetjét a bázisregiszter tartalmának és az előjeles eltolásnak az összege adja meg. MOV AX, [BP+07Ah]

10 Index+relatív címzés Hasonlóan a báziscímzés / indexcímzés pároshoz, ez a bázis+relatív címzési mód párja. Alakjai: [SI+rel8], [SI+rel16], [DI+rel8], [DI+rel16]. MOV AX, [SI+06Bh] Bázis+index címzés A két nevezett címzési mód keveréke. A következő formákat öltheti: [BX+SI], [BX+DI], [BP+SI] és [BP+DI]. A regiszterek sorrendje természetesen közömbös, így [BP+SI] és [SI+BP] ugyanazt jelenti. A cél bájt ofszetjét a két regiszter értékének összegeként kapjuk meg. MOV [SI+BP], AX Regiszter-regiszter címzés MOV AX, BX Stack terület címzése PUSH op. POP op.

11 Stack (verem) Működése: Last In First Out Alkalmazás: Szubrutinok visszatérési érték tárolása Paraméter átadás szubrutin híváskor Regiszterek ideiglenes tárolása Változók ideiglenes tárolása Utasítás: PUSH op. POP op. Veremkezelés példa mov mov mov push push pop push pop pop ax,1212h bx,3434h cx,5656h ax bx ax cx bx cx

12 Kiindulási állapot SS:SP Memória cím tartalma hexában SS:0100H? SS:00FEH? SS:00FCH? SS:00FAH? AX=1212H, BX=3434H, CX=5656H, SP=0100H PUSH AX után SS:SP Memória cím tartalma hexában SS:0100H? SS:00FEH 1212 SS:00FCH? SS:00FAH? AX=1212H, BX=3434H, CX=5656H, SP=00FEH PUSH BX után SS:SP Memória cím tartalma hexában SS:0100H? SS:00FEH 1212 SS:00FCH 3434 SS:00FAH? AX=1212H, BX=3434H, CX=5656H, SP=00FCH POP AX után SS:SP Memória cím tartalma hexában SS:0100H? SS:00FEH 1212 SS:00FCH 3434 SS:00FAH? AX=3434H, BX=3434H, CX=5656H, SP=00FEH PUSH CX után SS:SP Memória cím tartalma hexában SS:0100H? SS:00FEH 1212 SS:00FCH 5656 SS:00FAH? AX=3434H, BX=3434H, CX=5656H, SP=00FCH POP BX után SS:SP Memória cím tartalma hexában SS:0100H? SS:00FEH 1212 SS:00FCH 5656 SS:00FAH? AX=3434H, BX=5656H, CX=5656H, SP=00FEH POP CX után SS:SP Memória cím tartalma hexában SS:0100H? SS:00FEH 1212 SS:00FCH 5656 SS:00FAH? AX=3434H, BX=5656H, CX=1212H, SP=0100H

13 Assembly sor szerkezete, szintaxisa Szimbólum Műveleti kód Operandusz(ok) megjegyzés kiir: MOV AX, BX ; AX<-BX Szimbólum Direktíva Operandus ;megjegyzés SZAM EQU 5 ; konstans deklaráció Assembly nyelv elemei assembly utasítások (főleg ezek alkotják a tényleges program kódját) pszeudo utasítások (pl. makrók, helyettesítő szimbólumok) direktívák Assembly utasítások Operátorok Processzor utasításai Operátorok kerek zárójelek szokásos aritmetikai műveleti jelek (+, -, *, /, MOD) mezőkiválasztó operátor (.) szegmens-előírás / -felülbírálás (:) memóriahivatkozás ([... ]) típus felülbírálás (PTR) adattípus megadás (BYTE, WORD, DWORD) duplikáló operátor (DUP) relációs operátorok (EQ, NE, GT, GE, LT, LE) pointer típusok (NEAR, FAR) szegmens /ofszet lekérdezés (SEG, OFFSET) méretlekérdező operátorok (LENGTH, SIZE, TYPE, WIDTH) Direktívák modul/forrásfájl lezárása (END) szegmens definiálása (SEGMENT...ENDS) szegmenscsoport definiálása (GROUP) szegmens hozzárendelése egy szegmensregiszterhez (ASSUME) értékadás a $ szimbólumnak (ORG) memória-modell megadása (MODEL)

14 egyszerűsített szegmensdefiníciók (CODESEG, DATASEG, FARDATA,UDATASEG,UFARDATA, CONST, STACK,.CODE,.DATA,.STACK) helyfoglalás (változó létrehozása) (DB, DW, DD, DF, DQ, DT) Konstans / helyettesítő szimbólum létrehozása (=, EQU) címke létrehozása (LABEL) eljárás definiálása (PROC...ENDP) külső szimbólum definiálása (EXTRN) szimbólum láthatóvá tétele a külvilág számára (PUBLIC) feltételes fordítás előírása (IF, IFccc, ELSE, ELSEIF, ENDIF) külső forrásfájl beszúrása az aktuális pozícióba (INCLUDE) felhasználói típus definiálása (TYPEDEF) struktúra, unió, rekord definiálása (STRUC...ENDS, UNION...ENDS, RECORD) a számrendszer alapjának átállítása (RADIX) makródefiníció (MACRO...ENDM) makróműveletek (EXITM, IRP, IRPC, PURGE, REPT, WHILE) utasításkészlet meghatározása (P8086, P186, P286, P386 stb.;.8086,.186,.286,.386 stb.) i8086 utasítás csoportjai Adatmozgató utasítások Blokk mozgató utasítások Aritmetikai és logikai utasítások Vezérlési szerkezetek Ugró utasítások Ciklus utasítások Szubrutinok Bitforgató, bitléptető utasítások Input, output utasítások Processzor vezérlő utasítások Megszakítás kezelő utasítások Adatmozgató utasítások MOV adatok mozgatása XCHG adatok cseréje PUSH adat betétele a verembe PUSHF Flags regiszter betétele a verembe POP adat kivétele a veremből POPF Flags regiszter kivétele a veremből LEA tényleges memóriacím betöltése LDS, LES teljes pointer betöltése szegmensregiszter: általános regiszter regiszter párba CBW AL előjeles kiterjesztése AX-be CWD AX előjeles kiterjesztése DX:AX-be XLAT, XLATB AL lefordítása a DS:BX című fordító táblázattal LAHF Flags alsó bájtjának betöltése AH-ba SAHF AH betöltése Flags alsó bájtjába Blokkmozgató utasítás MOVS, MOVSB, MOVSW blokk mozgatása

15 CMPS, CMPSB, CMPSW blokkok összehasonlítása SCAS, SCASB, SCASW keresés blokkban LODS, LODSB, LODSW betöltés blokkból STOS, STOSB, STOSW tárolás blokkba Példa a blokk másolásra Feladat: Másoljuk át 00100h forráscímtől kezdve 200h bájtot a 00200h címen kezdődő célterületre! forrásterület: 00100h 002FFh célterület: 00200h 003FFh beállítása masol: MOVSB CX>0 STD MOV CX, 200H ; D bit beállítása ; ciklus számláló MOV AX, DS ; MOV ES, AX ;ES <- DS MOV DI, 3FFH ; cél ofszet cím MOV SI, 2FFH ; forrás ofszet cím ;ES:[DI] <- DS:[SI] LOOP masol ; CX=CX-1 addig, ;amíg Vezérlési szerkezetek I. JMP feltétel nélküli ugrás JCXZ ugrás, ha CX = 0000h Jccc feltételes ugrás ( ccc egy feltételt ír le) CMP op1, op2; op2-op1 Reláció Műveleti kód S (előjelbit) Z (zéró bit) op1 > op2 JA 1 0 op1 < op2 JB 0 0 op1 = op2 JE 0 1

16 Ciklus utasítás LOOP címke masol: MOVSB CX>0 LOOP masol ; CX=CX-1 addig, ;amíg CX=végrehajtási szám Ciklustörzs CX=CX-1 i CX>0 h Feltételes ciklusok LOOPE címke LOOPZ címke masol: MOVSB ZF = 1 LOOPNE címke LOOPNZ címke LOOPZ masol ; CX=CX-1 addig, ;amíg CX>0 és

17 Szubrutinok CALL eljárás (szubrutin) hívása RET, RETF visszatérés szubrutinból mov ax, bx call szamol; SS:[SP] <- IP mov cx, dx szamol proc mov ax, 3 mov bx, 2 add ax,bx ret ; IP <- SS:[SP] szamol endp Szubrutin híváskor az IP értéke elmentődik A szubrutinból való visszatérés után a következő utasítással folytatódik a program Szubrutin befejezésekor az IP értéke visszaállítódik

18 Input, output utasítások IN al, dx IN ax, dx dx: port cím OUT dx, al OUT dx, ax dx: port cím Megszakítások INT megszakítási szám INT 21H INTO INT 04h hívása, ha OF = 1, különben NOP-nak felel meg IRET visszatérés megszakításból Egész számos aritmetika ADD összeadás ADC összeadás átvitellel (CF) együtt SUB kivonás SBB kivonás átvitellel (CF) együtt CMP összehasonlítás (flag-ek beállítása a cél és a forrás különbségének megfelelően) INC inkrementálás (növelés 1-gyel), CF nem változik DEC dekrementálás (csökkentés 1-gyel), CF nem változik NEG kettes komplemens képzés (szorzás 1-gyel) MUL előjeltelen szorzás IMUL előjeles szorzás DIV előjeltelen maradékos osztás IDIV előjeles maradékos osztás Összeadás Adjuk össze a 3F4Bh és 4141h értéket! MOV AX, 3F4Bh MOV BX, 4141h ADD AX, BX ;AX<- AX+BX

19 Végezzük el az alábbi műveletet! «4C22 9A4Dh + 3D33 8B3Ah 7F h MOV AX, 9A4Dh MOV BX, 8B3Ah ADD AX, BX MOV CX, 4C22h MOV DX, 3D33h ADC CX, DX ;AX<-AX+BX ;CX<-CX+DX+Cy Logikai utasítások AND op1, op2 ;op1<-op1&op2 Maszkolás & MOV AX, 3F4Bh AND AX, 0040h OR op1, op2 ;op1<-op1+op2 Maszkolás MOV AX, 3F4Bh OR AX, FFBFh XOR op1, op2 ; op1 <- op1 op2 MOV AX,0 XOR AX,AX NOT egyes komplemens képzés TEST logikai bit tesztelés MOV AX, 3F4Bh

20 TEST AX, 0040h ; S és Z bit állítása Bitléptető utasítások SHL előjeltelen léptetés (shiftelés) balra SHL op, 1/CL MOV CL, 3 MOV AX, 2 SHL AX, CL ;AX<- 2*2*2 SAL előjeles léptetés balra (ugyanaz, mint SHL) SHR előjeltelen léptetés jobbra SHR op, 1/CL MOV CL, 3 MOV AX, 8 SHR AX, CL ;AX<- 8/2/2/2 SAR előjeles (aritmetikai) léptetés jobbra SAR op, 1/CL MOV CL, 3 MOV AX, F8h SAR AX, CL ;AX <- -8/2/2/2 ROL balra forgatás (rotálás)

21 ROL op, 1/CL MOV CL, 3 MOV AX, 8h ROL AX, CL RCL balra forgatás Carry Flag-en át RCL op, 1/CL ROR jobbra forgatás ROR op, 1/CL RCR jobbra forgatás CF-en át RCR op, 1/CL Processzor vezérlő utasítások CLC CF flag törlése CMC CF flag komplementálása (invertálása) STC CF flag beállítása CLD DF flag törlése STD DF flag beállítása CLI IF flag törlése STI IF flag beállítása

22 Assembly programok készítése TASM {opciók} forrás{,tárgykód}{,lista}{,xref} /a, /s A szegmensek szerkesztési sorrendjét befolyásolják. Az első ábécé rend szerint, míg a második a definiálás sorrendje szerinti szegmens-sorrendet ír elő. Alapértelmezés a /s. /l, /la A listázás formátumát befolyásolják: normál (opció/l) ill. kibővített (/la) lista fog készülni. Alapértelmezésben nem készül lista. /m# A fordítás # menetes lesz (a # helyére egy számot kell írni). Alapérték a 2. /z Hiba esetén a forrás megfelelő sorát is kiírja. /zi, /zd, /zn A tárgykódba bekerülő nyomkövetési információt befolyásolják: teljes (/zi), csak a programsorok címei (/zd) vagy semmi (/zn). Alapértelmezés a /zn. Linkelés TLINK {opciók} tárgykód fájlok{, futtatható fájl}{, térkép}{, könyvtárak} /x, /m, /l, /s A térkép (map) tartalmát befolyásolják: nincs térkép (/x), publikus szimbólumok listája lesz (/m), kódhoz tartozó sorszámok lesznek (/l), szegmensinformáció lesz (/s). Alapértelmezés a /s. /c Érzékeny lesz a kisbetűkre és nagybetűkre. /v Engedélyezi a nyomkövetési információk beépítését a futtatható fájlba. /t Az alapértelmezett.exe helyett.com típusú futtatható fájlt készít. Fordítás menete outint proc push ax push bx push cx push dx ;soremeles mov dl,13d mov ah,2 int 21h mov dl,10d mov ah,2 int 21h mov ax,szam mov bx,10 mov cx,0 oszt: xor dx,dx div bx push dx inc cx cmp ax,0 ja oszt kiir: pop dx

23 vege1: pop outint add dx,'0' mov ah,2 int 21h loop kiir dx pop cx pop bx pop ax ret endp Programfordítás Fordítás lépései: Fordításhoz használható batch fájl: tasm /zd /la %1.asm tlink /v %1.obj Turbo debugger használata Assembly és a magas szintű nyelvek kapcsolata C forrás: extern "C" { extern unsigned int szamol(char,char, char); } ASM forrás: PUBLIC _szamol Példaprogram I. #include <stdio.h> char a=3, b=4, c=5; extern "C" { extern unsigned int szamol(char,char, char); } void main(void) { unsigned int eredmeny; eredmeny = szamol(a, b, c);

24 printf("eredmény: %d\n", eredmeny); } DOSSEG.MODEL SMALL.CODE PUBLIC _szamol _szamol PROC push bp mov bp,sp xor mov add adc pop ret _szamol END ax,ax al,byte PTR [bp+4] al,byte PTR [bp+6] al,byte PTR [bp+8] bp ENDP Példaprogram II. #include <stdio.h> char * TestString="Line 1\nline 2\nline 3"; extern "C" { extern unsigned int LineCount(char * StringToCount, unsigned int * CharacterCountPtr); } main() { unsigned int LCount; unsigned int CCount; LCount = LineCount(TestString, &CCount); printf("lines: %d\ncharacters: %d\n", LCount, CCount); } NEWLINE EQU 0ah ;the linefeed character is C's newline character DOSSEG.MODEL SMALL.CODE PUBLIC _LineCount _LineCount PROC push bp mov bp,sp

25 push si ;preserve calling program's register variable, if any mov si,[bp+4] ;point SI to the string sub cx,cx ;set character count to 0 mov dx,cx ;set line count to 0 LineCountLoop: lodsb ;get the next character and al,al ;is it null, to end the string? jz EndLineCount ;yes, we're done inc cx ;no, count another character cmp al,newline ;is it a newline? jnz LineCountLoop ;no, check the next character inc dx ;yes, count another line jmp LineCountLoop EndLineCount: inc dx ;count the line that ends with the null character mov bx,[bp+6] ;point to the location at which to return the character count mov [bx],cx ;set the character count variable mov ax,dx ;return line count as function value pop si ;restore calling program's register variable, if any pop bp ret _LineCount ENDP END Az.EXE és.com programok, a PSP comprog.asm exeprog.asm Szoftver megszakítások 10h FFh Jellegzetes szoftveres megszakítások Hardver megszakítások 0 Fh Megszakítás vezérlő Megszakítás fogalma Megszakítás kiszolgálás lépései Megszakításkérés hatására a futó program felfüggesztődik (CS:IP értéke és a Flags regiszter elmentődik) Megszakításkérés elbírálásra kerül (Flags regiszter Interrupt bit) Ha engedélyezett a megszakításkérés kiszolgálása, akkor a megszakítás vektortáblából (0:mszam*4) a kiszolgáló rutin címe betöltődik Kiszolgáló rutin lefut (IRET) CS:IP érték visszatöltődik A felfüggesztett program futása folytatódik a következő utasítással

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

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

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

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

Assembly programozás levelező tagozat

Assembly programozás levelező tagozat Assembly programozás levelező tagozat Szegedi Tudományegyetem Képfeldolgozás és Számítógépes Grafika Tanszék 2011-2012-2 Tematika Assembly nyelvi szint. Az Intel 8086/88 regiszter készlete, társzervezése,

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

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

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

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

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

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

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

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. Iványi Péter

Assembly. Iványi Péter Assembly Iványi Péter Miért? Ma már ritkán készül program csak assembly-ben Általában bizonyos kritikus rutinoknál használják Miért nem használjuk? Magas szintű nyelven könnyebb programozni Nehéz más gépre

Részletesebben

Assembly programozás levelező tagozat

Assembly 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észletesebben

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.

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni. Példák számok kiírására A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni. Decimális számok kiírása Az alábbi

Részletesebben

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

Az 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észletesebben

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

1. Az utasítás beolvasása a processzorba A MIKROPROCESSZOR A mikroprocesszor olyan nagy bonyolultságú félvezető eszköz, amely a digitális számítógép központi egységének a feladatait végzi el. Dekódolja az uatasításokat, vezérli a műveletek elvégzéséhez

Részletesebben

Aritmetikai utasítások

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

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

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

Assembly programozás Bevezetés

Assembly 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észletesebben

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

Elő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észletesebben

Processzorok Utasításszintű Kezelése tavasz

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

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

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

Assembly Címzési módok. Iványi Péter

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

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

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

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

assume 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észletesebben

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

Stack Vezérlés szerkezet Adat 2.

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

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

Paraméter átadás regisztereken keresztül

Paramé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észletesebben

Máté: Assembly programozás

Máté: Assembly programozás Szegmens, szegmens csoport sz_név SEGMENT aling_type combine_type osztály... szegmens sz_név ENDS sz_név a szegmens (szelet) neve. A fordító az azonos nevű szegmens szeleteket úgy tekinti, mintha folyamatosan,

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

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

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

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

Máté: Assembly programozás

Má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é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

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memó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é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

ASSEMBLY PROGRAMOZÁS

ASSEMBLY PROGRAMOZÁS ASSEMBLY PROGRAMOZÁS AJÁNLOTT IRODALOM 1)Pethő Ádám: Assembly alapismeretek 1. kötet, Számalk, Budapest, 1992 2)Peter Norton-John Socha: Az IBM PC Assembly nyelvű programozása, Novotrade, Budapest, 1991

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

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

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

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

n-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észletesebben

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

code 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észletesebben

Programozás alapjai. 10. előadás

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

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

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

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

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép

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

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

HARDVERKÖZELI PROGRAMOZÁS1

HARDVERKÖ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é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

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

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

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

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

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

Karunkról Kari digitális könyvtár

Karunkról Kari digitális könyvtár . előadás Jegyzet 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 jelsorozat assembly: a gépi kód emberek számára könnyen

Részletesebben

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

1 Doszpi

1 Doszpi ADDLW Konstans hozzáadása W-hez ADDLW k Állított jelződitek: C, DC, Z A 8 bites k konstans hozzáadása W értékéhez; az eredmény a W-be kerül. ADDWF W és f összeadása ADDWF f, d Állított jelződitek: C, DC,

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

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

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

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

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

A fordítóprogramok szerkezete. 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észletesebben

ASSEMBLY 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 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észletesebben

PE/COFF fájl formátum

PE/COFF fájl formátum PE/COFF fájl formátum Kód visszafejtés. Izsó Tamás 2013. december 5. Izsó Tamás PE/COFF fájl formátum/ 1 Szimbólumtábla A programozási nyelvekben az típusokra, adatokra, függvényekre, ugrási címekre szimbólikus

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

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

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

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

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

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

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

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

Adatok ábrázolása, adattípusok

Adatok ábrázolása, adattípusok Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

S z á m í t ó g é p e s a l a p i s m e r e t e k

S z á m í t ó g é p e s a l a p i s m e r e t e k S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami

Részletesebben

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

Verilog HDL ismertető 2. hét : 1. hét dia BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető 2. hét : 1. hét + 15 25 dia Fehér Béla, Raikovich

Részletesebben

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

Szemantikai elemzés. konzisztenciájának vizsgálata a szemantikai elemzés feladata lesz. Szemantikai elemzés A szintaktikai elemzés meghatározta az elemzend szöveg szintaxisfáját. szintaxisfa pontjaihoz olyan attribútumokat rendelünk, amelyek leírják az adott pont tulajdonságait. Ezeknek az

Részletesebben

Fordító Optimalizálás

Fordító Optimalizálás Fordító Optimalizálás Kód visszafejtés. Izsó Tamás 2012. szeptember 27. Izsó Tamás Fordítás Optimalizálás / 1 Section 1 Fordító részei Izsó Tamás Fordítás Optimalizálás / 2 Irodalom Fordító részei Optimalizálás

Részletesebben

Informatika érettségi vizsga

Informatika érettségi vizsga Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

A TURBO DEBUGGER HASZNÁLATA

A TURBO DEBUGGER HASZNÁLATA HASZNÁLATA Az eddig megírt programjaink működését nem tudtuk ellenőrizni, így elég kényelmetlen programozni, hogy nem látjuk, tényleg azt csinálja-e a program, amit elvárunk tőle. Ha valami rosszul működik,

Részletesebben

Algoritmizálás + kódolás C++ nyelven és Pascalban

Algoritmizálás + kódolás C++ nyelven és Pascalban Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban

Részletesebben

Operációs Rendszerek II. labor. 2. alkalom

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

Részletesebben

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

Kitlei 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észletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben