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

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

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

Átírás

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

2 Algoritmusok előadás Rekurzív függvény

3 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

4 org 100h mov ah, 02 push 04 call nyomtat add sp,2 int 20h Rekurzív függvény nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret

5 Rekurzív függvény org 100h mov ah, 02 push 04 call nyomtat add sp,2 int 20h SP 4 visszatérési cím BP BX 0

6 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 0 4 visszatérési cím

7 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 0 4 visszatérési cím BP tartalma

8 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 0 4 visszatérési cím BP tartalma

9 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 0 4 visszatérési cím BP tartalma BX tartalma DX tartalma

10 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 4 4 visszatérési cím BP tartalma BX tartalma DX tartalma

11 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 4 4 visszatérési cím BP tartalma BX tartalma DX tartalma

12 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma

13 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3

14 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3 visszatérési cím

15 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3 visszatérési cím BP tartalma

16 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3 visszatérési cím BP tartalma

17 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3 visszatérési cím BP tartalma BX tartalma DX tartalma

18 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3 visszatérési cím BP tartalma BX tartalma DX tartalma

19 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 2 És így tovább 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3 visszatérési cím BP tartalma BX tartalma DX tartalma

20 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3 visszatérési cím BP tartalma BX tartalma DX tartalma

21 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3 visszatérési cím

22 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3

23 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 3 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3

24 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 4 4 visszatérési cím BP tartalma BX tartalma DX tartalma 3

25 nyomtat: push bp mov bp,sp push dx mov bx, word [bp+4] mov dl,bl add dl, 30h; int 21h cmp bl, 0 jz nyomtat_vege dec bl call nyomtat add sp,2 nyomtat_vege: pop dx pop bx pop bp ret Rekurzív függvény SP BP BX 4 4 visszatérési cím

26 org 100h mov ah, 02 push 04 call nyomtat add sp,2 int 20h Rekurzív függvény 4 SP BP BX 4

27 org 100h Rekurzív függvény mov ah, 02 push 04 call nyomtat add sp,2 int 20h SP BP BX 4

28 EXE és COM programok, kitérő Eddig: COM Csak egy szegmens EXE Több szegmens lehet Különbség: Objektum formátum

29 COM Azonnal futtatható COM programok A rendszer betölti a memóriába A DOS a 100h címre adja át a vezérlést Kód szegmens relokálható A program mindig ugyanarra az offset-re töltődik be De a kód szegmens szabadon változhat Minden cím állandó a programban

30 EXE EXE programok Nem lehet azonnal futtatni Bizonyos címeket nem lehet fordítási időben meghatározni, futáskor kell kiszámolni A file-nak van egy fejléce, amit a linker hozott létre Relokációs tábla Megadja CS, IP, SS, SP regiszterek értékét A program bármilyen címen kezdődhet Kilépés MOV AH, 04Ch INT 21h

31 EXE program fejléc ex_magic dw? ;.exe signature [MZ vagy ZM] ex_lpage dw? ;.exe file hossza mod 512 bytes < 512 bytes ex_fpages dw? ;.exe file hossza div 512 bytes ha ; Lpage>0,akkor hozzáadunk még egyet ex_relocitems dw? ; relokációs tábla hossza ex_hdrpara dw? ;.exe fejléc mérete paragrafusokban ex_minalloc dw? ; minimális memória ex_maxalloc dw? ; maximális memória ex_oss dw? ; SS [verem szegmens] ex_osp dw? ; SP [verem offset] ex_chk_sum dw? ; checksum ex_oip dw? ; IP [innen kezdődik a program] ex_ocs dw? ; CS [ez a szegmense] ex_ofstbl dw? ; az első relokációs tábla offset-e ex_ovrnum dw? ; overlay-ek száma

32 EXE program segment data msg db "hello, world!", 0dh,0ah, '$' segment stack stack resb 30 segment code..start: mov ax, data ; szegmens regiszter beállítása mov ds, ax mov es, ax mov dx, msg ; nyomtatandó szöveg mov ah, 09h int 21h mov ah, 0 ; billentyű lenyomásra várunk int 16h mov ah, 4ch ; kilépés int 21h

33 EXE program A program hol kezdődik?..start: Különböző szegmenseket lehet definiálni Kód szegmens Adat szegmens Verem szegmens Például: segment data

34 EXE program fordítása hello.asm program forráskód assembly hello.obj program tárgy modul linking hello.exe futtatható program object module library object module library egyéb tárgy modul

35 EXE program fordítása Tárgykód létrehozása nasm -fobj hello.asm Futtatható file létrehozása alink hello.obj -o hello.exe Külső referenciák feloldása, linkelés Eredmény: hello.exe 150 byte

36 EXE relokáció A rendszer csak a betöltés során határozza meg hol fut a program Több szegmens van, így ez probléma lehet COM esetén nincs ez a probléma LINK úgy készíti el a programot mintha a 00000h címen kezdődne Betöltéskor ismerjük a CS, DS címét A kódban elszórt címekhez kell a CS és DS aktuális értékét hozzáadni Erre szolgál a relokációs tábla

37 Relokációs tábla: EXE relokáció Minden bejegyzés két szavas (szegmens:offset) A program terület kezdetétől számítva adja meg a módosítandó címet A rendszer minden betöltéskor felülírja a programterületet Nem túl elegáns, de jól működik Biztosítja az áthelyezhetőséget

38 hello.exe relokációs tábla mérete relokációs tábla címe B módosítandó cím: 0003:0001

39 hello.exe Program kezdete: 0003:0000

40 Kapcsolat C programmal C programok ugyanazt a függvényhívási konvenciót használják Minden függvény egyenlő! Paraméterátadás a vermen keresztül Visszaadott érték Vermen keresztül AX regiszteren keresztül

41 C programból assembly hívása, példa #include <stdio.h> extern void nyomtat(char *); int main() { nyomtat("hello"); return 0; }

42 Assembly program, példa SEGMENT _TEXT PUBLIC CLASS=CODE USE16 ALIGN=16 _nyomtat: pushbp mov bp, sp pushax pushbx pushdx mov ah, 2h mov bx, [bp+4] call kiir pop dx pop bx pop ax pop bp ret...

43 Assembly program, példa... ; teljesség kedvéért kiir: mov dl,[bx] cmp dl, 0 jz vege int 21h inc bx jmp kiir vege: ret SEGMENT DATA

44 Kapcsolat C programmal C programban is definiálni kell, hogy a függvényünk hogyan néz ki Assembly-ben A függvény neve aláhúzással kezdődik Minden regisztert mentsünk el és állítsunk vissza Paraméterek a vermen

45 Címzés, egy kitérő Miért van szegmens:offset címzés? 16 bites processzor, max byte címezhető, de több kellett Nem nagyobb regisztert terveztek Speciális címzés Speciális címzés Abszolút cím = szegmens * 16 + offset (16-al szorzás = egy nullát írunk a címhez)

46 Szegmens:offset F000:FFFD F FFFD FFFFD 923F:E2FF 923F0 + E2FF A06EF

47 Szegmens:offset A probléma, hogy ugyanaz a cím nagyon sokféleképpen írható le Mindegyik ugyanaz: 0007:7B :7B :7B70 000A:7B60 000B:7B50 000C:7B : : : A: B: C: : : : A: B: C: FF:5C :5C :5BF0 0202:5BE0 0203:5BD0 0204:5BC0 07BB: BC: BD: BE: BF: C0:0000

48 Szegmens:offset Valójában van olyan memória cím, amit 4096 féle módon címezhetünk meg A szegmensek igazából csak képzeletbeli konstrukciók A szegmensek átfedik egymást A köztük levő különbség 16 byte

49 0000: : : :0000 Szegmens:offset 16 byte 0000:000F 16 byte 0001:000F 16 byte 0002:000F 16 byte 0003:000F 0000:FFF0 0001:FFF0 0002:FFF0 0003:FFF0 Minden Szegmens byte-ot tartalmaz 0000-FFFF 0000:FFFF 0001:FFFF 0002:FFFF 0003:FFFF

50 Egy kód szegmens van tiny, small, compact Memória modell függvények közel vannak egymáshoz csak az offset (IP) kerül a veremre (16 bites cím), CS változatlan CALL és RETN használható Kód szegmens neve: _TEXT Egy helyre kerülnek a függvények

51 Több kód szegmens van medium, large, huge Memória modell függvények távol vannak egymástól távoli függvényhívások kellenek CALL FAR CALL segment:offset RETF

52 Adat szegmens Egy 16 bites címek DS nem változik Több 32 bit írja le a címet Huge modell Memória modell A szegmens lehet 64 Kbyte-nál nagyobb A közös adatszegmens neve: _DATA

53 Tiny Memória modell code+adat <= 64K (COM program) Small code <= 64K, adat <= 64K Medium adat <= 64K, csak egy adat szegmens Compact code <= 64K, csak egy kód szegmesn

54 Large: Memória modell Több kód és adat szegmens Huge Egyedi tömb nagyobb lehet mint 64K Flat Nincs szegmens, 32 bites címek, védett mód

55 Szegmens definíció SEGMENT _TEXT PUBLIC CLASS=CODE USE16 ALIGN=16 PUBLIC Fordítási fázisban a linker ezeket összevonja CLASS=CODE Azonos osztályba tartozó szegmensek közel kerülnek egymáshoz USE16 16 bites assemblálási mód ALIGN=16 A szegmenst olyan címre kell illeszteni, amelyik osztható 16-al

56 PUBLIC Szegmens típus Összefűzi a szegmenseket COMMON overlay STACK Olyan mint PUBLIC SS-hez képest van relatív offset SP regisztert a végére állítja

57 Osztály (Class) Szegmens osztály Megadja hogy milyen sorrendben töltődjenek be a szegmensek Azonos nevűek egymás után töltődnek be Az osztály neve bármilyen szöveg lehet

58 Szegmens align Ha a cím 1-el osztható, byte alapú illesztés A szegmens közvetlenül a másik szegmens után következik Szegmens 1 Szegmens 2

59 Szegmens align Ha a cím 2-vel osztható, word alapú illesztés A szegmens páros címen kezdődik Szegmens 1 Szegmens 2 elpazarolt byte-ok, ha vannak

60 Szegmens align Ha a cím 4-vel osztható, dupla word alapú illesztés Elpazarolhatunk 1, 2 vagy 3 byte-ot Szegmens 1 Szegmens 2 elpazarolt byte-ok, ha vannak

61 Szegmens align Ha a cím 16-vel osztható, paragraph alapú illesztés Ez az alap eset 0-15 byte-ot lehet elpazarolni Szegmens 1 Szegmens 2 elpazarolt byte-ok, ha vannak

62 Szegmens align Hogyan lehet nem 16 bites szegmens illesztést megvalósítani? Átlapolással Például byte alapú illesztés: Előző szegmens vége: 10F87h Következő szegmens kezdete (byte aligned): 10F88h 10F90h Szegmens 1 Szegmens 2 10F80h=szegmens regiszter aktuális adat vagy kód itt kezdődik offset: 8

63 Sajnos Különböző assembler és C fordító különböző konvenciót használ Az előző példák esetén használt szoftver: NASM Turbo C 2.01 Ingyenes Kicsi 16-bites kódot generál!!! MINGW, DJGPP, CL fordítók esetén másképpen kellene eljárni

64 C és Assembly összefordítása Assembly fordítása nasm -fobj hello.asm C program fordítása tcc prog1.c hello.obj Alapeset Small memória modell Turbo C lefordítja és összelinkeli a két programot

65 Assembly-ből C függvény hívása global extern _main _printf SEGMENT _TEXT PUBLIC CLASS=CODE USE16 ALIGN=16 _main: push message call _printf add esp, 2 ret SEGMENT _DATA PUBLIC CLASS=DATA USE16 ALIGN=16 message: db 'Hello, World', 10, 0

66 Assembly-ből C függvény hívása _main A C program kezdőfüggvénye Paraméterátadás a szokásos módon Adatok külön szegmensben Assembly fordítása Linkelés nasm -fobj printf.asm tcc printf.obj

67 Paraméter átadás A paramétereket fordított sorrendben kell feltölteni a veremre Példa C nyelven: int myint = 1234; printf( A szam: %d, myint);

68 Paraméter átadás fordított sorrendben global extern _main _printf SEGMENT _TEXT PUBLIC CLASS=CODE USE16 ALIGN=16 _main: push word [myint] ; jobbról balra!!!!! push message call _printf add esp, 4 ret SEGMENT _DATA PUBLIC CLASS=DATA USE16 ALIGN=16 message db 'A szam: %d', 10, 0 myint dw 1234d

69 Függvény hívási konvenció Eddig a C hívási módot tárgyaltuk Bizonyos fordítók más konvenciót használnak A cdecl és stdcall hívási módok közötti különbség, hogy az stdcall esetén a szubrutin takarít maga után! stdcall : Pascal hívási mód Borland és Microsoft fordítók esetén: void _cdecl f(int)

70 Függvény hívási konvenció cdecl Előnye: Egyszerű és flexibilis Bármely C fordítóval használható Hátránya: Lassú lehet és sok memóriát használ stdcall Előnye: Nem kell takarítani, kevesebb hely Hátránya: Nem lehet változó paraméter számú függvénynél használni

71 Változók elérése Egy C programban deklarált változó: int i; Assembly-ben a hivatkozás extern _i mov ax,[_i]

72 Változók elérése Egy assembly programban deklarált változó: global _j _j dw 0 A C programban extern int j;

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

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

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

[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

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

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

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

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

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

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

1. ábra: Perifériára való írás idődiagramja BELÉPTETŐ RENDSZER TERVEZÉSE A tárgy első részében tanult ismeretek részbeni összefoglalására tervezzük meg egy egyszerű mikroprocesszoros rendszer hardverét, és írjuk meg működtető szoftverét! A feladat

Részletesebben

A 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

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

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

Megszakítások és kivételek

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

Részletesebben

Szegmentálás. Memória kezelési stratégia mely a felhasználó nézőpontját támogatja Például:

Szegmentálás. Memória kezelési stratégia mely a felhasználó nézőpontját támogatja Például: Szegmentálás 1 Szegmentálás Memória kezelési stratégia mely a felhasználó nézőpontját támogatja Például: Egy program szegmensekből áll Mindegyik szegmens külön címtér Egy eljárás nullás címen kezdődik

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

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

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

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

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

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

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

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

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

Introduction to 8086 Assembly

Introduction to 8086 Assembly Introduction to 886 Assembly Lecture 7 D and N-D Arrays D Arrays 4 5 tabular data rows and columns 4 6 8 6 9 5 4 8 6 D Arrays 4 5 4 6 8 6 9 5 https://advancedmathclubsk.weebly.com/matrices.html 4 8 6 5

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

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

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

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

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

Részletesebben

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

AVR assembly és AVR C modulok együttes használata AVR C projektben. Összeállította: Sándor Tamás

AVR assembly és AVR C modulok együttes használata AVR C projektben. Összeállította: Sándor Tamás AVR assembly és AVR C modulok együttes használata AVR C projektben Összeállította: Sándor Tamás //AVR C project létrehozása során a main.c AVR C modulba a következő forráskód részletet //elhelyezni. A

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

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

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

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

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

Részletesebben

Az egér, a botkormány (joystick) és a nyomtató programozása DOS-ban

Az egér, a botkormány (joystick) és a nyomtató programozása DOS-ban Az egér, a botkormány (joystick) és a nyomtató programozása DOS-ban Az egér, a joystick és a nyomtató egyre elterjedtebb segédeszközzé vált a számítógép felhasználásában. Napjaink Windows alapú programjai

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

Irvine eljárások. ClrScr - Törli a képernyő tartalmát és a kurzort a képernyő bal felső sarkába helyezi (Clear Screen).

Irvine eljárások. ClrScr - Törli a képernyő tartalmát és a kurzort a képernyő bal felső sarkába helyezi (Clear Screen). Irvine eljárások Ahogy azt már év elején is említettük, a 32 bites környezet lehetővé tette számunkra, hogy több, már előre létrehozott eljárást használhassunk. Ehhez csupán telepítenünk kellett az Irvine

Részletesebben

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

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

Részletesebben

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.

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. Bevezetés Assebly feladatok A feladatok mindegyike működőképes. A programkódok sok esetben tartalmaznak felesleges, vagy logikátlan megoldásokat. Ezeket a bemutatás során a hallgatókkal együtt kell optimalizálni.

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

4. Programozási nyelvek osztályozása. Amatőr és professzionális

4. Programozási nyelvek osztályozása. Amatőr és professzionális 4. Programozási nyelvek osztályozása. Amatőr és professzionális programozási nyelvek. Számítási modellek (Neumann-elvű, automataelvű, funkcionális, logikai). Programozási nyelvekkel kapcsolatos fogalmak

Részletesebben

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

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

Részletesebben

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

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos

Részletesebben

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

Mérési utasítás Mikrokontroller programozás 2.sz. mérés Mérési utasítás Mikrokontroller programozás 2.sz. mérés Szükséges ismeretanyag: - IBM PC kezelése, szövegszerkesztés, Double Commander - SB80C515 mikrokontroller felépítése, utasításai - HyperTerminál

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

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

A mikroszámítógép felépítése. 1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az

Részletesebben

Programozás C++ -ban 2007/7

Programozás C++ -ban 2007/7 Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum

Részletesebben

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja. 5-6-7. előadás Memóriakezelés

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja. 5-6-7. előadás Memóriakezelés Processzus Operációs rendszerek MINB40 5-6-7. előadás Memóriakezelés Egy vagy több futtatható szál Futáshoz szükséges erőforrások Memória (RAM) Program kód (text) Adat (data) Különböző bufferek Egyéb Fájlok,

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

Rekurzió. Dr. Iványi Péter

Rekurzió. Dr. Iványi Péter Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(

Részletesebben

Ipari Robotok Programozása

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

Részletesebben

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

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

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

Részletesebben

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

VBA. Visual Basic for Applications

VBA. Visual Basic for Applications VBA Visual Basic for Applications Mi a közös a Microsoft Word, Excel, Power Point, Access alkalmazásokban? HÁT A VBA! Visual Basic for Applications Program nyelv: Menő programokat lehet benne írni English

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

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

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

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

Részletesebben

Hangkártya programozása

Hangkártya programozása Hangkártya programozása A hangfeldolgozás és a hangok tárolási módszerei az elmúlt néhány évben a digitális technikai megoldások felé tolódtak el. Az egyik legjobb példa erre a Compact Disc és a hangkártya,

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

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

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

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

Részletesebben

Fordítóprogramok szerkezete avagy Mi történik Pascalban mikor F9-et nyomunk?

Fordítóprogramok szerkezete avagy Mi történik Pascalban mikor F9-et nyomunk? volnék én, a nemes, a tündökl, az értékek értéke, akkor hamarosan egy sárgöröngyöt választanátok s amiatt zsigerelnétek egymást. Akarva, nem-akarva érettem hajszolódtok, amíg éltek, st újabban a modern

Részletesebben

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

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

Részletesebben

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

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat PM-04 p. 1/18 Programozási módszertan Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu

Részletesebben

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

A Microsoft Visual Studio 2005 fejlesztőkörnyezet Vizuális és eseményvezérelt programozás BMF NIK A Microsoft Visual Studio 2005 fejlesztőkörnyezet Az integrált fejlesztőkörnyezet (IDE) alapelemei Projektek és megoldások Új projekt indítása, projektek

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

Arany Dániel Matematikai Tanulóverseny 2007/2008-as tanév 2. forduló haladók I. kategória

Arany Dániel Matematikai Tanulóverseny 2007/2008-as tanév 2. forduló haladók I. kategória Bolyai János Matematikai Társulat Oktatási és Kulturális Minisztérium Támogatáskezelő Igazgatósága támogatásával Arany Dániel Matematikai Tanulóverseny 007/008-as tanév. forduló haladók I. kategória Megoldások

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

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

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

Részletesebben

Memóriakezel. riakezelés s I. A memória címzése; A memória felosztása; Abszolút változó (rádefiniálás); Memóriatömbök. dr.

Memóriakezel. riakezelés s I. A memória címzése; A memória felosztása; Abszolút változó (rádefiniálás); Memóriatömbök. dr. Memóriakezel riakezelés s I. A memória címzése; A memória felosztása; Abszolút változó (rádefiniálás); Memóriatömbök. Készítette: dr. Nyári Tibor Emlékeztető! A memória címzc mzése: A memóri riát byte-onk

Részletesebben

Operációs rendszerek Memóriakezelés 1.1

Operációs rendszerek Memóriakezelés 1.1 Operációs rendszerek Memóriakezelés 1.1 Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK Operációs rendszerek p. A memóriakezelő A

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

ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK

ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK az OTP Pénztárszolgáltató Zrt. által kibocsátott OTP SZÉCHENYI PIHENŐKÁRTYA e-utalvány elfogadásáról Hatályos: 2016. március 25. napjától I. Általános rendelkezések 1. Az

Részletesebben

Bevezetés Alapfogalmak Jog

Bevezetés Alapfogalmak Jog Bevezetés Alapfogalmak Jog Kód visszafejtés. Izsó Tamás 2015. szeptember 18. Izsó Tamás Bevezetés Alapfogalmak / 1 Tartalom 1 Bevezetés 2 Alapfogalmak 3 Motivációs példák 4 Jog Izsó Tamás Bevezetés Alapfogalmak

Részletesebben

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

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

Részletesebben

Szupermikroprocesszorok és alkalmazásaik

Szupermikroprocesszorok és alkalmazásaik Szupermikroprocesszorok és alkalmazásaik VAJDA FERENC MTA Központi Fizikai Kutató Intézet Mérés- és Számítástechnikai Kutató Intézet 1. Bevezetés ÖSSZEFOGLALÁS Egy rétegezett modell alapján mutatjuk be

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

Programozás II gyakorlat. 4. Öröklődés

Programozás II gyakorlat. 4. Öröklődés Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési

Részletesebben

Tesztelés és hibajavítás Microsoft Visual Studio 2005 fejlesztőkörnyezetben

Tesztelés és hibajavítás Microsoft Visual Studio 2005 fejlesztőkörnyezetben Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK Tesztelés és hibajavítás Microsoft Visual Studio 2005 fejlesztőkörnyezetben Fordítás és futtatás Tesztelés és hibakeresés Töréspontok,

Részletesebben

Mikrokonverterrel vezérelt digitális jelgenerátor fejlesztése

Mikrokonverterrel vezérelt digitális jelgenerátor fejlesztése SZEGEDI TUDOMÁNYEGYETEM Természettudományi Kar Kísérleti Fizika Tanszék Informatikus Fizikus szak Mikrokonverterrel vezérelt digitális jelgenerátor fejlesztése Diplomamunka Készítette: Kopasz Péter Gábor

Részletesebben

Számlázás-házipénztár. (SZAMLA) 2015.21 verzió. Kezelési leírás

Számlázás-házipénztár. (SZAMLA) 2015.21 verzió. Kezelési leírás Számlázás-házipénztár (SZAMLA) 2015.21 verzió Kezelési leírás FORINT-Soft Kft. Számlázás-házipénztár 2 Tartalomjegyzék 1. Általános információk... 5 1.1. A program típusai... 5 1.2. Rendszerkövetelmények...

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

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

Számítógép architektúrák Számítógép architektúrák Kártyás ajtónyitó tervezése 2016. március 7. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

Részletesebben

.NET Microsoft.Net Framework

.NET Microsoft.Net Framework 1.oldal.NET Microsoft.Net Framework Előadás jegyzet Előadó: Pócza Krisztián ELTE,2008.NET Framework alapjai Hasznos tudnivalók A jegyzet Pócza Krisztián.NET Framework és Programozása I. című előadása alapján

Részletesebben

1.1 Szakdolgozat témája... 2. 1.2 A Program célja... 2. 1.4 A használt technológiák ismertetése... 2. 2 A program megtervezése...

1.1 Szakdolgozat témája... 2. 1.2 A Program célja... 2. 1.4 A használt technológiák ismertetése... 2. 2 A program megtervezése... 1 Bevezető... 2 1.1 Szakdolgozat témája... 2 1.2 A Program célja... 2 1.3 Fejlesztői környezet... 2 1.4 A használt technológiák ismertetése... 2 2 A program megtervezése... 4 2.1 Az ablak kinézetének megtervezése:...

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

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

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Gyakorlat: SSE utasításkészlet Szántó Péter BME MIT, FPGA Laboratórium Vektorizáció Inline assembly Minden fordító támogatja (kivéve VS x64

Részletesebben

Osztály és objektum fogalma

Osztály és objektum fogalma Osztály és objektum fogalma A C++ programozási nyelv I. CPP1/ 1 Az osztály (class) class: adatok és módszerek (method) (függvények) együttese, amely absztrakt adattípusként működik. objektum: egy osztály

Részletesebben

Szegmens regiszterek (16 bitesek)

Szegmens regiszterek (16 bitesek) Memóriatérkép BIOS (alaplapi) BIOS bővítések (csatolókártyán elhelyezkedő) F000 : FFFF C000 : 0000 B000 : FFFF A000 : 0000 9000 : FFFF Felső memória 246 Kbyte (Videó RAM) képernyő megjelenítéséhez szükséges

Részletesebben

2017/12/16 21:33 1/7 Hardver alapok

2017/12/16 21:33 1/7 Hardver alapok 2017/12/16 21:33 1/7 Hardver alapok < Hardver Hardver alapok Szerző: Sallai András Copyright Sallai András, 2011, 2013, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Bevezetés A számítógépet

Részletesebben

6. Tárkezelés. Operációs rendszerek. Bevezetés. 6.1. A program címeinek kötése. A címleképzés. A címek kötésének lehetőségei

6. Tárkezelés. Operációs rendszerek. Bevezetés. 6.1. A program címeinek kötése. A címleképzés. A címek kötésének lehetőségei 6. Tárkezelés Oerációs rendszerek 6. Tárkezelés Simon Gyul Bevezetés A rogrm címeinek kötése Társzervezési elvek Egy- és többrtíciós rendszerek Szegmens- és lszervezés Felhsznált irodlom: Kóczy-Kondorosi

Részletesebben

Biztonságos programozás Puffer túlcsordulásos támadások

Biztonságos programozás Puffer túlcsordulásos támadások Biztonságos programozás Puffer túlcsordulásos támadások Intel x68 Izsó Tamás 2015. október 5. Izsó Tamás Biztonságos programozás Puffer túlcsordulásos támadások/ 1 Section 1 Puffer túlcsordulás sebezhetőség

Részletesebben

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

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

Virtuális memóriakezelés Védelem. Memória védelem. Intel X86. Izsó Tamás október 1. Izsó Tamás Memória védelem/ 1

Virtuális memóriakezelés Védelem. Memória védelem. Intel X86. Izsó Tamás október 1. Izsó Tamás Memória védelem/ 1 Memória védelem Intel X86 Izsó Tamás 2015. október 1. Izsó Tamás Memória védelem/ 1 Section 1 Virtuális memóriakezelés Izsó Tamás Memória védelem/ 2 Operációs rendszer hardver szintű támogatása Hardver

Részletesebben