HARDVERKÖZELI PROGRAMOZÁS1

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

Download "HARDVERKÖZELI PROGRAMOZÁS1"

Átírás

1 HARDVERKÖZELI PROGRAMOZÁS1 Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék

2 Követelmények Gyakorlat (aláírás) Óralátogatás (maximum hiányzás: 3) C programozási beugró (1 javítási lehetőség) 2 gyakorlati ZH Mindegyik legalább 50% A 2 ZH átlaga legalább 60% 1 javítási lehetőség (teljes féléves anyag) Elmélet (kollokvium) Írásbeli vizsga (gyakorlati aláírás esetén) Jegy: 75% elméleti vizsga + 25% gyakorlati eredmény Hardverközeli programozás 1 2

3 Mérnökinformatikus képzés absztakció, logikai szint Döntéstámogató rendszerek Mesterséges intelligencia alapjai Bevezetés a LabView programozásba Magas szintű programozási nyelvek 1-2 Hardverközeli programozás 1-2 Digitális technika Elektronika 1-2 Fizika 1-2 Hardverközeli programozás 1 3

4 Tematika Számábrázolás, adattípus implementáció Digitális elektronika alapjai CPU felépítése és működése Assembly programozás Magas szint leképezése alacsonyra Modern processzorok A programozás operációsrendszerhez kapcsolódó aspektusai Konkrét processzor architektúrák Utasításkészletük, programozásuk Hardverközeli programozás 1 4

5 A tárgy célja Összeköttetés teremtése Az absztrakt és az alapozó ismeretek között A program és az elektronika között Hardver ismeretek átadása Magas szintű programozás mélyebb megértése Hatékonyabb programozás Az assembly programozás bemutatása Szemléletformálás Átfogó kép kialakítása a számítógép rendszerekről Hardverközeli programozás 1 5

6 Számábrázolás, adattípusok Fixpontos számábrázolás Lebegőpontos számábrázolás A C nyelv típusainak reprezentációja

7 Mi az outputja a programnak? Hardverközeli programozás 1 7

8 Adategységek Bit: két állapot (0, 1) Nibble(fél byte): 4 bit Byte: 8 bit Félszó: 16 bit Szó: (többnyire) 32 bit Dupla szó: 64 bit Adatszervezés Hardverközeli programozás 1 8

9 Megadás Adattípus Reprezentáció Tartomány Műveletek A C nyelv aritmetikai (egyszerű) típusai [unsigned signed] char [unsigned signed] [short long long long*] int float [long*] double *ISO C99 Hardverközeli programozás 1 9

10 Fixpontos számábrázolás Egész értékek reprezentálása Előjel nélküli eset ábrázolandó szám kettes számrendszerben adott számú biten Példa (1 byte esetén) N biten ábrázolható legkisebb szám: 0 Legnagyobb szám: 2 N -1 Hardverközeli programozás 1 10

11 Előjeles eset Fixpontos számábrázolás Nem negatív érték esetén: előjel nélküli logika Negatív érték esetén: kettes komplemens Bitek invertálása(egyes komplemens) A kapott érték növelése 1-gyel Példa (1 byte esetén) N biten ábrázolható legkisebb szám: -(2 N-1 ) Legnagyobb szám: 2 N meghatározza az előjelet Hardverközeli programozás 1 11

12 Aritmetikai túlcsordulás Két féle hibalehetőség Előjel nélkül: több bit lenne szükséges (carry) >255 Előjeles: nem várt előjelváltás (overflow) Hardverközeli programozás 1 12

13 Kiterjesztés Néha szükség van egy adatot a korábbinál több biten ábrázolni úgy, hogy az értéke ne változzon Nulla kiterjesztés Rövid előjel nélküli értékből hosszú előjelnélküli 8 bit: bit: bit: bit: Előjel tartó kiterjesztés Rövid előjeles értékből hosszú előjeles 8 bit: bit: bit: bit: Hardverközeli programozás 1 13

14 BCD ábrázolás Binárisan kódolt decimális Minden számjegy 4 biten ábrázolva Vannak kihasználatlan bitkombinációk Pakolatlan BCD 1 számjegy -1 byte: 0000 vagy (0011 * ) bevezető Pakolt BCD 2 számjegy 1 byte: nibblealapú *ASCII miatt Hardverközeli programozás 1 14

15 Ábrázolás Egész típus Fixpontos számábrázolás Előjeles vagy előjel nélküli BCD Bájtsorrend Little-endian: LSB elől (gazdagép bájtsorrend) Big-endian: MSB elől (hálózati bájtsorrend) Megadás különböző módokon Pl. C nyelven: 30=30u=30l=036=0x1E=0b11110 * *ISO C99 Hardverközeli programozás 1 15

16 Értékei karakter kódok Karakter típus Fixpontos számábrázolás C: ASCII (1 byte, előjeles/előjel nélküli, egészként használható) Java: Unicode (2byte, előjel nélküli) ASCII ISO (Latin 1) Unicode ASCII kódtábla 0x00-0x1F: vezérlő karakter 0x30-0x39: számjegy 0x41-0x5A: angol nagy betű 0x61-0x7A: angol kis betű Hardverközeli programozás 1 16

17 Felsorolásos típus Alacsony szinten int-ként reprezentált C nyelven a két kód assembly szinten azonos Hardverközeli programozás 1 17

18 A Cegész típusai típus méret tartomány [signed] char unsigned char 1 byte [signed] short unsigned short 2 byte [signed] int unsigned int 4 byte [signed] long 8 byte unsigned long (4 byte) [signed] long long unsigned long long 8 byte Hardverközeli programozás 1 18

19 Lebegő pontos számábrázolás Valós számok ábrázolása Alapja a normalizálás: 123,45 = 1, Minden (2 számrendszerbeli) szám felírható így: (-1) S M A K ahol a mantissza (M) 1.H alakú, azaz 1 2 M < 10 2 karakterisztika (K) pozitív és negatív is lehet Nem tároljuk: alap (A=2), rejtett bit, K előjele E=K+B adott számú biten nem negatív (B: nulla pont) Tárolandó: S, H, E Hardverközeli programozás 1 19

20 Lebegő pontos szabvány IEEE 754/1985 szabvány (ISO/IEC/IEEE 60559:2011) Előjel Pozitív: 0; Negatív: 1 Formátumok Egyszeres pontosság Dupla pontosság Kiterjesztett pontosság méret S hossz E hossz H hossz 32 bit 1 bit 8 bit 23 bit bit 1 bit 11 bit 52 bit bit 1 bit 15 bit 63(+1) bit Hardverközeli programozás 1 20 B

21 Lebegő pontos számábrázolás Példa: egyszeres pontossággal = = Előjel: S =1 Karakterisztika: K = 3 10 = 11 2 Mantissza: M = Hasznos bitek: H = Eltolt karakterisztika: E = = S E H Hardverközeli programozás 1 21

22 Kerekítési hiba Ok: hasznos bitek tárolás véges számú biten Túl sok hasznos bit esetén kerekítés szükséges Ha az utolsó tárolható hasznos bit után 0 áll, akkor a további biteket levágjuk Különben felfelé kerekítünk Kerekítési hiba: nem pontos ábrázolás Példa: 0.3 ábrázolása egyszeres pontossággal hasznos bitek: tárolt bitek: Hardverközeli programozás 1 22

23 Speciális lebegőpontos értékek +0 és -0 előjel bit 0 (+) vagy 1 (-), minden más bit 0 Pl.: 0.0/-1.0, -1.0*0.0 ±végtelen (Inf) karakterisztika csupa 1, mantissza csupa 0 Pl.: 1.0/0.0, inf+1.0 nem szám (NaN) karakterisztika csupa 1, mantissza nem csupa 0 Pl.: 0.0/0.0, inf-inf, NaN+1.0 denormalizált szám (subnormal) karakterisztika csupa 0, mantissza nem csupa 0 Hardverközeli programozás 1 23

24 A Cnyelv valós típusai Valós típusú konstansok formátuma f 75.1e L E+1 Valós típusok paraméterei méret minimum maximum pontosság float 4 byte számjegy double 8 byte számjegy long double* 10 byte számjegy Hardverközeli programozás 1 24

25 Mutató típus Indirekt hivatkozásra szolgálnak Tartományának elemei tárcímek A mutató típusú változónak is van saját címe A Cnyelvben Előjel nélküli egész reprezentáció (32 vagy 64 bit) NULL: csupa nulla bit Értéke adatcím és kódcím (!) is lehet Aritmetikai műveletek is végezhetőek velük Hardverközeli programozás 1 25

26 Rekord típus Különböző típusú területek együtt Mindegyik mező a saját reprezentációjával Nem biztos, hogy folytonos memóriaterületen A.a A.b A.c A.d sizeof(a)==16 B.d B.a B.c B.b sizeof(b)==24 nem használt byte Hardverközeli programozás 1 26

27 Tömb típus Azonos típusú elemek folytonosan tárolva Minden elem az adott reprezentációval A tömb neve C nyelven: az első elemre mutató nevesített konstans Egyes nyelveken: az összes elemre hivatkozás Egydimenziós tömb i. elemének a címe (A i ) 1 ahol E egy adatelem mérete és A 1 a tömb kezdőcíme Hardverközeli programozás 1 27

28 Több dimenziós tömbök Sorfolytonos tárolás,,,,,,,,,,,,, Az i. sor j. elemének címe (A i,j ) egy NxM-es mátrixban,, 1 j 1 E ahol E egy adatelem mérete és A 1,1 a mátrix első elemének címe Hardverközeli programozás 1 28

29 Karakterek sorozata Sztringtípus Elemei a megfelelő belső reprezentációban (pl. C: 1byte, ASCII; Java: 2 byte, Unicode) Hossza Fix hosszúságú Változó hosszúságú A sztring elején hossz tárolás (pl. Pascal) A sztring végén speciális lezárójel(pl. C) Kombinált (pl. Delphi) Hardverközeli programozás 1 29

30 A C nyelv tömbje Tömb index 0-tól (db-1)-ig Csak egydimenziós tömb van, viszont van tömbök tömbje Sztring: karaktertömb Lezáró karakter \0 (ASCII kód: 0) A tömb neve az első elemre mutató nevesített konstans (mutatóorientáltság erős) egyenértékű utasítások Hardverközeli programozás 1 30

31 Digitális elektronikai alapok Félvezető Dióda, tranzisztor Logikai kapu Flip-flop Multiplexer, címdekódoló Összeadó áramkör

32 Félvezetők Rossz vezető, rossz szigetelő Ok: szilárdtestek sávszerkezete 4 vegyérték elektron (Si, Ge) Kvantumfizika Bohr-féle atommodell szilárdtestben atomban elektron energia elektron energia elektron energia elektron energia vezetési sáv tiltott sáv vegyérték sáv vezető félvezető szigetelő Hardverközeli programozás 1 32

33 Szennyezett félvezető n-szennyező(elektron) 5 vegyérték elektron (As, Sb) p-szennyező( lyuk ) 3 vegyérték elektron (Ga, In) Új energiaszint a tiltott sávban elektron energia Si Si Si Si As Si Si Si Si Si Si Si Si Ga Si Si Si Si n-típus p-típus Hardverközeli programozás 1 33

34 p-n átmenet Félvezető egykristály eltérően szennyezett részei között található Szabad töltéshordozók átáramlanak a másik rétegbe, rekombinálódhatnak. n p kiürített réteg töltéssűrűség + - elektrosztatikus potenciál potenciálgát Hardverközeli programozás 1 34

35 Dióda Záró irányú előfeszítés Nyitó irányú előfeszítés Dióda: egyenirányításra képes Jele: Speciális: LED Hardverközeli programozás 1 35

36 Tranzisztor 2 darab p-n átmenet ( összefordított diódák ) Kapcsoló, erősítő p n n p Bipoláris tranzisztor E B C Unipoláris tranzisztor D G S p n p p n p C S B E G n-csatornás JFET D Hardverközeli programozás 1 36

37 A logikai NAND kapu 2 bemenetű logikai kapu ( nem és ) Jele: Felépítése, működése: V cc A B TTL NAND kapu GND Q A B Q Hardverközeli programozás 1 37

38 További logikai kapuk Felépíthetőek NAND kapukból NOT AND OR XOR A Q A B Q A B Q A B Q Hardverközeli programozás 1 38

39 Flip-flopok Szekvenciális digitális elektronikai áramkör 1 bit információ tárolására képes Alkalmazás: regiszter, számláló, frekvenciaosztó D CLK Q _ Q CLK adat kimenet adat bemenet D flip-flop 4 bites regiszter Hardverközeli programozás 1 39

40 Kombinációs hálózat Multiplexer N jelből 1-et kiválaszt a vezérlőjelek alapján K darab vezérlőjel 2 K darab bemenő jelet tud azonosítani S 0 S 1 Z 0 0 A 0 1 B 1 0 C 1 1 D D C B A S 0 S 1 4:1 multiplexer Hardverközeli programozás 1 40 Z

41 Kombinációs hálózat Címdekódoló A címbemenetre adott jel alapján kiválasztja a kimenő jelek egyikét N bites címbemenetre adott érték a 2 N darab kimeneti vonal közül 1-et aktivál A 0 A 1 D 0 D 1 D 2 D A 0 A 1 D 0 D 1 D 2 D 3 2 bites címdekódoló Hardverközeli programozás 1 41

42 Összeadó áramkör Félösszeadó: 2 bit összeadására képes A B A B C S Teljes összeadó: 3 bit összeadására képes (2 félösszeadó) A B C i C o S C out Hardverközeli programozás 1 42 C S A B S C in

43 Ripple-carryösszeadó Több bites adatok összeadására képes Láncba fűzött teljes összeadók A 3 B 3 A 2 B 2 A 1 B 1 A 0 B C 0 S 3 S 2 S 3 S 2 A 3 A 2 A 1 A 0 B 3 B 2 B 1 B 0 teljes összeadó c S 3 S 2 S 1 S 0 primitív 4 bites ALU kezdemény Hardverközeli programozás 1 43

44 A processzorok felépítése Számítógép architektúra CPU Regiszterek Fetch-execute ciklus RISC / CISC processzorok

45 Számítógép rétegmodell 0. szint: digitális logikai áramkörök (logikai kapu, flip-flop) 1. szint: mikro-architektúra (konkrét ALU, buszok) 2. szint: utasításkészlet architektúra (ISA) 3. szint: operációs rendszer (ütemezés, tárkezelés) 4. szint: programozási nyelvek (alkalmazások) Hardverközeli programozás 1 45

46 Neumann architektúra Princeton architektúra (Neumann János) Neumann elvek (1945): Elektronikus működés Kettes számrendszer használata Tárolt program elve Adat és program tárolás ugyanott/ugyanúgy Soros programvégrehajtás Univerzális felhasználhatóság Hardverközeli programozás 1 46

47 Harvard architektúra Külön adat és program memória Eltérő felépítés, címtartomány, típus is lehet Párhuzamos adat és utasítás elérés miatt nagyobb teljesítmény Főként mikrokontrollerekben használt Első alkalmazás: Mark I (1944) Módosított Harvard architektúra Külön adat/utasítás gyorsítótár, közös memória Modern CPU-k esetén elterjedt Hardverközeli programozás 1 47

48 A számítógép alapvető felépítése Processzor Memória Input-Output interfész Buszrendszer Perifériák Perifériák Processzor Memória I/O interfész Buszrendszer Hardverközeli programozás 1 48

49 Buszrendszer Busz (sín): vezetékek egy csoportja, amelyeken digitális jelet lehet továbbítani Buszrendszer logikai részei Címbusz: a címek bitsorozatának átvitelét biztosítja Adatbusz: adatok átviteléért felelős Vezérlő busz: részegységek működésének összehangolását segítő vezérlő jelek továbbítása címbusz adatbusz vezérlő busz Processzor Memória I/O interfész Hardverközeli programozás 1 49

50 Processzor Központi feldolgozó egység (CPU) A számítógép agya Vezérlés, utasítás végrehajtás Részei: Vezérlő egység (CU) Aritmetikai és logikai egység (ALU) Végrehajtó egység (EU) Címző egység (AU) és Busz illesztő egység (BIU) Regiszterek Belső gyorsítótár Hardverközeli programozás 1 50

51 Regiszterek Kis méretű (flip-flop-szerű) tároló áramkör Mérete általában az adatbusz szélességével egyenlő Általában bit Gyors hozzáférésű (elérési idő < 1ns) Darabszámát a processzor határozza meg (10-100) Gyakran regisztertömböket alkot Néha átnevezhetőek 3 kategória: Rendszer-, általános célú-és speciális célú regiszter Hardverközeli programozás 1 51

52 Regiszterek Programszámláló regiszter (PC vagy IP) A következő utasítás memóriacímét tartalmazza Az utasítás végrehajtása során (általában) átáll a következő utasítás címére, azaz az aktuális utasítás méretével növekszik Szekvenciális végrehajtás eszköze Értékét egyes utasítások is állíthatják (vezérlés átadás) Vezérlőegységhez (CU) kapcsolódik Hardverközeli programozás 1 52

53 Utasítás regiszter (IR) Regiszterek A memóriából beolvasott utasítás műveleti kódját tartalmazza A vezérlőegységhez kapcsolódik A CU ez alapján dönti el milyen műveletet kell végeztetni milyen adaton kell dolgozni (és az hol van) A programozó által nem hozzáférhető Hardverközeli programozás 1 53

54 Regiszterek Akkumulátor (ACC, W, AX) Általános munka regiszter az ALU-ban Aritmetikai és logikai műveletek operandusait tartalmazza legtöbbször Általában az ilyen műveletek eredménye is itt tárolódik Újabb processzorokban több hasonló regiszter ugyanerre a célra (kevesebb memória művelet) Általában egész típusú adatokat tartalmaznak Hardverközeli programozás 1 54

55 Regiszterek Állapot regiszter (SR, FLAGS) Processzor állapottal, művelet eredményével kapcsolatos jelző/vezérlő biteket tartalmaz Feltételes vezérlésátadásnál (is) nagyon fontos Átvitel (CF) Nibble átvitel (AF) Túlcsordulás (OF) Előjel (SF) Megszakítási maszk (IF) Nulla (ZF) Paritás (PF) Hardverközeli programozás 1 55

56 Regiszterek Verem mutató regiszter (SP) A hardveres rendszerverem használatához A verem tetejének memóriacímét tartalmazza Általában a verem előrefelé nő Általában SP a legutóbb betett elemet címzi (Intel) Speciális célú regiszter A push és pop művelet automatikusan változtatja az SP értékét Hardverközeli programozás 1 56

57 Regiszterek Címzéssel kapcsolatos speciális regiszterek Operandusok címének meghatározásánál egy alap címhez képesti relatív cím (eltolás) megadásához használható Az AU-hoz kapcsolódnak Tömbök, sztringekés lokális változók esetén hasznos Például: BP, X, SI, DI, CS, DS, SS, ES Hardverközeli programozás 1 57

58 Regiszterek Memória cím regiszter (MAR) Összeköti a külső és belső címbuszt Azt a címet tartalmazza, amelyhez legközelebb hozzá kell férni (írásra vagy olvasásra) A címző egység hajtja meg Címbusz szélességű Hardverközeli programozás 1 58

59 Regiszterek Memória adat regiszter (MDR) Összeköti a külső és belső adatbuszt Azt az adatot tartalmazza amelyet legközelebb ki kell írni a memóriába vagy amely legutóbb be lett olvasva a memóriából Kétirányú regiszter Adatbusz szélességű Hardverközeli programozás 1 59

60 Aritmetikai és logikai egység Számítási műveleteket végez Tartalmaz: fixpontos összeadót, komplemens képzőt, léptető regisztereket, bitenkénti logikai művelet végző, stb. áramköröket A operandus B operandus utasítás ALU állapot eredmény Hardverközeli programozás 1 60

61 Vezérlő egység Az IR-benlévő érték alapján irányítja, szabályozza a többi egység (pl. ALU) működését Fontos regiszterei: IR, PC, SR A vezérlés történhet Huzalozott logikával (közvetlenül) Minden utasításhoz létrehozott bonyolult digitális elektronika segítségével Mikroprogramozott(közvetett) módon Minden műveleti kód elindít egy apró (ROM-ban tárolt) mikroprogramot Hardverközeli programozás 1 61

62 Címző egység Addressing Unit (AU), Address Generation Unit (AGU) Az utasítások sokféle címzési mód segítségével határozhatják meg hol található az operandus Az AU az operandus címét állítja elő és helyezi el az MAR-ban Az utasításban található címet képezi le fizikai memóriacímre Tárolóvédelmi hibák felismerése Kapcsolat: BIU Hardverközeli programozás 1 62

63 Órajel Periodikus négyszög hullám Órajel generátor (oszcillátor) állítja elő Szinkronizálja az egységek működését Arányos a CPU által disszipált hővel Periódusidő nagyobb, mint a jelterjedési idő 1 MHz 3 GHz Gyakran változtatható (turbo, powersave) Egyéb sebesség jellemzők: MIPS, FLOPS Hardverközeli programozás 1 63

64 CISC processzor Komplex utasításkészletű számítógép Sok, összetett utasítás Sokféle címzési mód Változó hosszúságú utasítások Utasítás több gépi ciklust igényel Mikroprogramotott Kevés regiszter Utasítások elérhetik közvetlenül a RAM-ot Hardverközeli programozás 1 64

65 RISC processzor Csökkentett utasításkészletű számítógép Kevés, egyszerű utasítás Kevés címzési mód Állandó hosszúságú utasítások Utasítás egy gépi ciklust igényel Huzalozott vagy mikroprogramotott Sok regiszter Csak a Load/Storeutasítás éri el a RAM-ot Hardverközeli programozás 1 65

66 Fetch-Executeciklus 1. Utasítás beolvasása A PC-ben található érték megmondja, hol található a memóriában a következő utasítás. Ezt be kell olvasni az IR-be. 2. Dekódolás A beolvasott műveleti kódot értelmezni kell. Milyen művelet? Milyen adatokon? Eredmény hová kerül? Utasításkészlet architektúra (ISA) definiálja Lehet huzalozott vagy mikroprogramozott Hardverközeli programozás 1 66

67 Fetch-Executeciklus 3. Operandus beolvasása Az operandus címének meghatározása és onnan beolvasása a megfelelő regiszterbe 4. Művelet végrehajtása például az ALU által, az eredmény egy átmenti regiszterbe kerül 5. Eredmény tárolás regiszterbe vagy memóriacímre 6. Következő utasítás címének meghatározása Hardverközeli programozás 1 67

68 DIY Calculator esetén Olvasási ciklus C. Maxfield, A. Brown: The Official DIY Calculator Data Book Hardverközeli programozás 1 68

69 DIY Calculator esetén Írási ciklus C. Maxfield, A. Brown: The Official DIY Calculator Data Book Hardverközeli programozás 1 69

70 Assembly programozás Assembly nyelv Utasítás készlet Címzési módok Fordítás-szerkesztés-betöltés Gépi kód

71 Assembly programozás Alacsony absztrakciós szint Programozói szabadság Feladatra optimalizálható kód Nagyobb program teljesítmény Hardverismeret szükség Nehezebben átlátható kód PC, mikrokontroller Magasszintű programnyelvek Assembly programozás Gépi kód Hardverközeli programozás 1 71

72 Utasítás szerkezet 4 címes utasítás Műveleti kód 3 címes utasítás Műveleti kód 1. Operandus cím 1. Operandus cím 2. Operandus cím 2. Operandus cím Eredmény cím Eredmény cím Következő utasítás cím 2 címes utasítás Műveleti kód 1. Operandus cím 2. Operandus + eredmény cím 1 címes utasítás Műveleti kód 1. Operandus cím Hardverközeli programozás 1 72

73 Program és utasítás felépítés Forrás fájl utasítás_1 utasítás_2 utasítás_3 utasítás_4 utasítás_5 Címke Művelet Operandus(ok) Megjegyzés.L1: mov ax, 0 #zerotoax Címke Azonosító, általában kettősponttal zárul Művelet Az elvégzendő művelet mnemonic-ja Operandus(ok) Adat(ok) vagy adat(ok)ra hivatkozás(ok) Megjegyzés Sor végéig a fordító figyelmen kívül hagyja Hardverközeli programozás 1 73

74 Utasításkészlet architektúra ISA (Instruction Set Architecture) A számítógép programozáshoz kötődő részletei Bitszélesség (buszok és regiszterek) Regiszter készlet Gépi utasítások Címzési módok Memória architektúra Megszakítás kezelés Hardverközeli programozás 1 74

75 Utasítás típusok Adatmozgató utasítások (Egész) aritmetikai utasítások Bitenkénti logikai utasítások Bitléptető utasítások Vezérlésátadó utasítások Sztringkezelő utasítások BCD és valós aritmetikai utasítások Fordítási direktívák Egyéb utasítások Hardverközeli programozás 1 75

76 Utasítás típusok Adatmozgató utasítások Regiszter-regiszter (mov, xchg) Regiszter-memória (mov) Regiszter-I/O port (in, out) Regiszter-verem (push, pop) Kiterjesztés (bitszélesség fontos) (cbw, cwd) Státusz bit állítás (sti, cli) Hardverközeli programozás 1 76

77 Utasítás típusok Aritmetikai utasítások Összeadás (átvitel nélkül/átvitellel) (add, adc) Kivonás (átvitel nélkül/átvitellel) (sub, sbb) Inkrementálás, dekrementálás(inc, dec) Kettes komplemens(neg) Előjeltelen/előjeles szorzás (mul, imul) Előjeltelen/előjeles osztás (div, idiv) Összehasonlítás (cmp) Hardverközeli programozás 1 77

78 Utasítás típusok Bitenkénti logikai utasítások ÉS művelet (and) VAGY művelet (or) KIZÁRÓ VAGY művelet (xor) Egyes komplemens(not) Bit tesztelés (test) Hardverközeli programozás 1 78

79 Utasítás típusok Bitléptető utasítások Logikai/előjeltelen balra léptetés (shl) Logikai/előjeltelen jobbra léptetés (shr) Aritmetikai/előjeles balra léptetés (sal=shl) Aritmetikai/előjeles jobbra léptetés (sar) Jobbra/balra forgatás (ror, rol) Jobbra/balra forgatás carry-n keresztül (rcr, rcl) Hardverközeli programozás 1 79

80 Utasítás típusok Vezérlésátadó utasítások Feltétel nélküli ugrás (jmp) Feltételes ugrás (ja, jae, jb, jbe, je, jne, jc, jo, ) Ciklusszervező (loop, loopz, loopnz, ) Hívó utasítás (call) Szubrutinból visszatérés (ret) Szoftveres megszakítás kérés (int) Megszakítás-kezelőből visszatérés (iret) Hardverközeli programozás 1 80

81 Utasítás típusok Stringkezelő(byte-sorozat kezelő) utasítások Sztring mozgató (movs, movsb, movsw) Sztring összehasonlító (cmps) Keresés sztringben(scas) Egyéb utasítások Koprocesszor vezérlő (wait, esc) Rendszervezérlő (hlt) Üres utasítás (nop) Hardverközeli programozás 1 81

82 Utasítás típusok Fordítási direktívák: gépi kód nincs mögöttük, a fordítás menetét befolyásolják Forrásfájl lezárása (end) Szegmens definiálás (segment, ends) Egyszerűsített szegmensdefiníció (stack,.data) Helyfoglalás (db, dw, dd) Helyettesítő szimbólum létrehozás (equ) Hardverközeli programozás 1 82

83 Címzési módok Adat vagy utasítás hogyan érhető el. Rejtett (implicit, implied) Közvetlen adat megadás (immediate) Közvetlen cím (direct, absolute) Regiszteres cím (register direct) Közvetett cím (indirekt) Regiszter indirekt Indexelt cím Bázis relatív cím Hardverközeli programozás 1 83

84 Címzési módok Rejtett címzés Nincs igazi cím megadás Pl. ha nincs operandus Op.kód1 Op-kód2 Hardverközeli programozás 1 84

85 Címzési módok Közvetlen adat megadás Műveleti kód után közvetlenül található adat Ez lesz az operandus Op.kód Adat Hardverközeli programozás 1 85

86 Címzési módok Regiszteres címzés A műveleti kód hivatkozik egy regiszterre A regiszterben található az operandus értéke Op.kód regiszter Adat Hardverközeli programozás 1 86

87 Címzési módok Közvetlen cím Műveleti kód után található egy memóriacím Itt helyezkedik el az operandus Op.kód 731 Adat Hardverközeli programozás 1 87

88 Címzési módok Közvetett cím A műveleti kód után található egy cím Ezen a címen található az operandus igazi címe Op.kód Adat Hardverközeli programozás 1 88

89 Regiszter indirekt Címzési módok A műveleti kód hivatkozik egy regiszterre A regiszterben található címen helyezkedik el az operandus memóriacíme regiszter Op.kód 731 Adat Hardverközeli programozás 1 89

90 Indexelt Címzési módok A műveleti kód után található egy cím, ehhez hozzáadva az index regiszterben található értéket megkapjuk az operandus memóriacímét index reg Op.kód 731 Adat Hardverközeli programozás 1 90

91 Bázis relatív Címzési módok A műveleti kód után található egy eltolási érték, ehhez hozzáadva a bázis regiszterben található kezdőcímet megkapjuk az operandus címét bázis reg Op.kód 731 Adat Hardverközeli programozás 1 91

92 Gépi kód Az egyetlen nyelv, amit a processzor megért Bináris formátum Processzoronként változó lehet Példa: assembly: SUB EAX, EBX # eax = eax-ebx gépi kód: 0x29 0xD OpKód d s MOD REG R/M SUB művelet Regiszter a forrás 32 bites regiszter Regiszteres címzés Forrás: EBX Cél: EAX Hardverközeli programozás 1 92

93 Editor Programozás Szövegszerkesztőben forráskód létrehozása Forrás kód: háttértárolón tárolt szöveges file Esetleg nyelv érzékeny eszközrendszer Fordító (compiler, assembler) Előfeldolgozás, lexikai/szintaktikai/szemantikai elemzés, optimalizálás, kódgenerálás Eredmény: tárgykód (ojbectfile) Nem interpreter! Hardverközeli programozás 1 93

94 Programozás Kapcsolatszerkesztő (linker) A tárgykódban nem igazi címek, csak hivatkozások vannak (több fájl, könyvtári függv.) Linker feloldja a hivatkozásokat: futtatható fájl Betöltő (loader) Az op. rendszer része: létrehozza a folyamatot RAM-batölti a gépi kódot Inicializál: regiszterek, verem Átadja a vezérlést Hardverközeli programozás 1 94

95 Magasszintűprogramozás leképezése assembly-re 1. Programozás alapjai Kifejezéskiértékelés Elágaztatás Ciklusszervezés

96 Gondolatébresztő kérdések Melyik értékadás fut le rövidebb idő alatt? int a, b=2, c=3, d=4, e=1, f=2; a=(b+c)*(d-e)%f; a=(2+3)*(4-1)%2; a=5; Mi az alábbi kifejezés értéke? (!3+8==2*4)+-1 Mi az alábbi kifejezés típusa? 5/(short)2==.5+ 2 Hardverközeli programozás 1 96

97 Gondolatébresztő kérdések Ki/mikor/hogyan végzi a kifejezés kiértékelést? Van címe a konstansnak? Van-e különbség a #define és a const között? Kétirányú elágaztatásnak minősül-e az if (a==0) b=0; utasítás? Hányszor fut le az alábbi ciklus magja? for(a<1,b=1;c++;d=1) e=1; Hardverközeli programozás 1 97

98 A forráskód alkotórészei Karakterkészlet Lexikális egység Szintaktikai egység Utasítás Programegység Fordítási egység Program Komplexitás nő Hardverközeli programozás 1 98

99 Konstans (literál) Közvetlen adat megadás (immediate) Kódba épített adat 8, 16, 32, 64 bit szélességű Fix vagy lebegőpontos ábrázolás Magas szinten: 123, 1.25f, a Alacsony szinten: 0x b, 0x3fa00000, 0x61 Hardverközeli programozás 1 99

100 Nevesített konstans Komponensei: név, típus, érték #define abc 123 Előfordító kicseréli a nevet az értékre Kódba épített adat Assembly szinten egyszerű konstans const int abc=123; A fordító nem engedi a változtatást Assembly szinten egyszerű változó Hardverközeli programozás 1 100

101 Változó Komponensei: név, attribútum, cím, érték Hatáskör: statikus, dinamikus Deklaráció: explicit, implicit, automatikus Élettartam: statikus, dinamikus, programozó által vezérelt Értékadás: kezdőértékadás(automatikus, explicit), értékadó utasítás, paraméterátadás, input utasítás Hardverközeli programozás 1 101

102 Alacsony szinten Változó Adott méretű lefoglalt memóriaterület Ha van cím komponens mindig van érték is Érték: bitsorozat (tetszőleges értelmezéssel) Értékadás: memóriacímre adat mozgatás Statikus változó adat szegmensben Dinamikus változó verem szegmensben Programozó által vezérelt a heap-ben Mutató: előjel nélküli egész változó C-ben Hardverközeli programozás 1 102

103 Kifejezés Komponensei: típus, érték Formálisan: operátor, operandus és zárójel Operátor: uniáris, bináris, ternáris Alak: infix (2+3)*4 perfix * postfix(rpn) * Infix alak esetén nem egyértelmű kiértékelés: precendencia és kötésirány kell Típusegyenértékűség vagy típuskényszerítés Hardverközeli programozás 1 103

104 Kifejezés kiértékelés A kifejezés értékének, típusának meghatározása Konstans kifejezést a fordító értékel ki Nem konstans infix kifejezést a fordító postfix alakra hozza (figyelembe véve a zárójeleket, precedenciátés a kötésirányt) és az alapján állítja elő a gépi kódot imul ebx, ecx eax+ ebx* ecx& edx add eax, ebx and eax, edx Hardverközeli programozás 1 104

105 Deklarációs utasítás Utasítások Nem áll mögötte gépi kód A fordítóprogramnak szól Végrehajtható utasítás Egy magas szintű utasításból több gépi kódú utasítást is előállíthat a fordító Csoportjai: üres, értékadó, ugró, elágaztató, ciklusszervező, hívó, egyéb Hardverközeli programozás 1 105

106 Elágaztató utasítás Kétirányú elágaztató utasítás C nyelven: if (kifejezés) utasítás1; [else utatsítás2;] Többirányú elágaztató utasítás C nyelven: switch(kifejezés){ case egész_konstans_kif_1: [utasítás1;] [case egész_konstans_kif_2: [utasítás2;]] [default: utasítás3;] } Hardverközeli programozás 1 106

107 A feltételes utasítás alacsony szinten if(feltétel) utasítás1; utasítás2; if(feltétel) utasítás1; else utasítás2; utasítás3; cmp eax, ebx jne.l0 mov ecx, 1.L0: add edx, 1 cmp eax, ebx jne.l2 mov ecx, 1 jmp.l3.l2: mov ecx, 2.L3: add edx, 1 Hardverközeli programozás 1 107

108 A switchutasítás alacsony szinten switch(kifejezés){ casekifejezes1: utasítás1; case kifejezes2: utasítás2; default: utasítás3;} utasítás4; cmp eax, 1 je.l3 cmp eax, 2 je.l4 jmp.l2.l3: mov ebx, 1.L4: mov ebx, 2.L2: mov ebx, 3 add edx, 1 Hardverközeli programozás 1 108

109 A breakhatása alacsony szinten switch(kifejezés){ case1: utasítás1; break; case2: utasítás2; break; default: utasítás3;} utasítás4; cmp eax, 1 je.l3 cmp eax, 2 je.l4 jmp.l2.l3: mov ebx, 1 jmp.l5.l4: mov ebx, 2 jmp.l5.l2: mov ebx, 3.L5: add edx, 1 Hardverközeli programozás 1 109

110 Ciklusszervező utasítások Felépítés: fej + mag + vég Működés szempontjából: üres, normál, végtelen Fajtái: Feltételes Kezdőfeltételes Végfeltételes Előírt lépésszámú Előltesztelő Hátultesztelő Felsorolásos Végtelen Hardverközeli programozás 1 110

111 A C nyelv ciklusai Kezdőfeltételes (nem 0 feltétel esetén ismétel) while (feltétel) utasítás; for ([kif1]; [kif2]; [kif3]) utasítás; Végfeltételes (nem 0 feltétel esetén ismétel) do utasítás; while (feltétel); Hardverközeli programozás 1 111

112 A whileés forciklus alacsony szinten utasítás0; while(feltétel) utasítás1; utasítás2; mov eax, 10 jmp.l2.l3: sub eax, 1.L2: cmp eax, 0 jne.l3 add ebx, 1 A for és a while ciklus assembly szinten egyenértékű. Hardverközeli programozás 1 112

113 A do-whileciklus alacsony szinten utasítás0; do utasítás1; while(feltétel); utasítás2; mov eax, 10.L3: sub eax, 1 cmp eax, 0 jne.l3 add ebx, 1 A do-while ciklus nem lehet üres ciklus. Hardverközeli programozás 1 113

114 Magasszintűprogramozás leképezése assembly-re 2. Eljárás, függvény Lokális változó Paraméterátadás

115 Gondolatébresztő kérdések Hol vannak az hívott eljárás utasítási? Mi a kezdő memória címük? Hova kell átadni a vezérlést? Melyik utasítással kell folytatni a végrehajtást ha végeztünk az eljárással? Mi a címe a következő utasításnak? Hova kell átadni a vezérlést? Hol tárolódik a visszatérési cím? Hol van eltárolva a hívási lánc? 115

116 Gondolatébresztő kérdések Hogyan kerülnek át a paraméterek az alprogramba? Hogyan kerül vissza a hívóhoz a visszatérési érték? Ismersz-e változó paraméterszámú függvényt? Hol van tárolva a lokális változó? A memória melyik részén helyezkedik el? Miért dinamikus az alap változó élettartama? Miben különbözik a static változótól? 116

117 Gondolatébresztő kérdések Melyik program a gyorsabb? Miért? #include<math.h> int main(){ int a,b=-23; a=abs(b); return 0;} #define abs(x) ((x)<0)?(-1*(x)):(x) int main(){ int a,b=-23; a=abs(b); return 0;} 117

118 Gondolatébresztő kérdések Mit ír az alábbi program a képernyőre? #include<stdio.h> int b=2; void one(int a){ a=a+1;} int main(){ one(b); printf( %d %d\n,a,b); return 0;} 118

119 Gondolatébresztő kérdések Hányszor fut le az eljárás? #include<stdio.h> void one(int a){ if(a>0) one(a-1); } int main(){ one( ); return 0; } 119

120 Gondolatébresztő kérdések Mit csinál a program? #include<stdio.h> void one(){ int T[ ]; T[12345]=67; printf( %d,t[12345]); } int main(){ one(); return 0; } 120

121 Gondolatébresztő kérdések Mit ír az alábbi program a képernyőre? #include<stdio.h> void one(){ int a=-43;} void two(){ int b; printf( %d\n,b);} int main(){ one(); two(); return 0;} 121

122 Alprogram Az újra felhasználhatóság és a procedurális absztrakció eszköze Komponensei: Név Formális paraméterlista Törzs Környezet Fajtái: Eljárás Függvény 122

123 Eljárás Tevékenységet hajt végre Aktivizálás utasításszerűen lehet Befejezés a törzs végére érve vagy befejeztető utasítással Folytatás a hívás utáni utasítással void procedure(int a, char b){ printf( %d %c,a,b); } // C nyelven nincs eljárás procedure(3, A ); 123

124 Értéket határoz meg Aktivizálás kifejezésben Függvény Befejezés általában befejeztető utasítás révén visszatérési érték megadásával Folytatás a kifejezés kiértékelésnél int function(int a, char b){ return a+b; } x=2*function(3, A )+1; 124

125 LastInFirstOut tároló A verem Tetejének a memóriacímét a verem mutató regiszter (SP) tárolja Pushés Pop művelet A verem mérete korlátos Veremhez gyakran hozzá kell férni Általában gyorsítótárazott(cache) Adat kivétele nem fizikai törlés Külön memóriaszegmensben van 125

126 Eljárás hívás alacsony szinten PC SP RAM: hívó_utasítása_1 hívó_utasítása_2 eljárás_hívás hívó_utasítása_3 hívott_utasítása_1 hívott_utasítása_2 befejeztetés old_pc 126

127 Hívási lánc Az alprogramok hívhatnak újabb alprogramokat, azok továbbiakat, A visszatérési címek folyamatosan a verem tetejére kerülnek (A verem mérete nő.) A hívási lánc dinamikusan épül fel, bomlik le A lánc miden tagja aktív, de csak a legutóbbi működik Rekurzió: egy aktív alprogram meghívása 127

128 Lokális változók Az programegységben deklarált nevek (változók) a programegység lokális nevei (változói). C nyelvnél (alapesetben): Statikus hatáskörkezelés Dinamikus élettartam kezelés Nincs automatikus kezdőérték 128

129 Lokális változó alacsony szinten Az alprogramba lépéskor a verem tetején a visszatérési cím található A verembe mentjük a bázis regiszter értékét A veremmutató (SP) értékét átmásoljuk a bázis regiszterbe (BP) Átállítva a veremmutató értékét hagyunk helyet a lokális változók számára a veremben A verem nem csak FIFO módon kezelhető A lokális változók bázis relatív címzéssel elérhetőek 129

130 Lokális változó alacsony szinten void eljar(){ int a=1; int b=2; int c=3; * } * A RAM tartalma: ??? esp= a=1 b=2 c=3 [ebp-12] [ebp-8] [ebp-4] 750 régi ebp ebp= ret. cím Hardverközeli programozás 1 130

131 Lokális változó alacsony szinten eljar: push ebp mov ebp, esp sub esp, 16 mov DWORD PTR [ebp-12], 1 mov DWORD PTR [ebp-8], 2 mov DWORD PTR [ebp-4], 3 mov esp, ebp pop ebp ret Hardverközeli programozás 1 131

132 Paraméter kiértékelés Formális- és aktuális paraméter összerendelés Sorrendi kötés Név szerinti kötés Számbeli egyeztetés Azonos paraméterszám Eltérő paraméterszám Típusegyeztetés Típusegyezés Típus konverzió 132

133 Paraméterátadás Érték szerinti Cím szerinti Eredmény szerinti Érték-eredmény szerinti Név szerinti Szöveg szerinti Az adatmozgás iránya fontos C nyelvben: csak érték szerinti paraméterátadás 133

134 Érték szerinti paraméterátadás Formális paraméternek van címkomponense a hívott területén. Aktuális paraméternek van érték komponense. Az aktuális paraméter értéke átkerül a hívott alprogram területén lefoglalt címkomponensre. Az információátadás egy irányú. Az alprogram a saját területén dolgozik. Ahívottalprogramnemtudjaholvanahívó. 134

135 Függvényhívás alacsony szinten 1. A hívó a verembe teszi az aktuális paramétereket fordított (!) sorrendben. (sorrendi kötés, számbeli egyeztetés) 2. A verembe bekerül a visszatérési cím (PC aktuális értéke). 3. PC megkapja a hívott alprogram kezdőcímét. 4. Szekvenciálisan lefutnak a hívott utasításai. Hívott alprogram felhasználja a veremben lévő paramétereket (bázis relatív, lokális változó). Meghatározódik a visszatérési érték. 135

136 Függvényhívás alacsony szinten 5. Verembe visszatérési érték betétele (a visszatérési cím alá). 6. Veremből visszatérési cím (hívást követő utasítás címe) kivétele. 7. Vezérlés visszaadása a megadott címre (lásd 5. pont). 8. Visszatérési érték kivétele a veremből. 9. Paraméterek kitakarítása a veremből. 10. Végrehajtás folytatása a következő utasítással. 136

137 Függvényhívás alacsony szinten Egyes esetekben a paraméterek meghatározott sorrendben regiszterekbe kerülnek, itt adódnak át. (El kell menteni a korábbi tartalmat) a visszatérési értéket az egyik regiszteren keresztül adjuk vissza A paraméterek kitakarítása a veremből lehet a hívó vagy a hívott feladata is Hardverközeli programozás 1 137

138 Példa C nyelven int fuggv(int c){ int a; a=c+1; * return a; } int main(int argc, char *argv[]){ int a, b; a=argc; b=fuggv(a); return b; } * A RAM tartalma: fuggv: c fuggv: a régi ebp visszatér. cím param. main: a main: b ősi ebp esp=726 [ebp-8] [ebp-4] ebp=734 [ebp+4] [ebp+8] [ebp+12] [ebp+16] [ebp+20] Hardverközeli programozás 1 138

139 Példa assembly-ben#1 fuggv: push rbp mov rbp, rsp sub rsp, 8 mov eax, DWORD PTR [rbp+16] mov DWORD PTR [rbp-8], eax mov eax, DWORD PTR [rbp-8] add eax, 1 mov DWORD PTR [rbp-4], eax mov eax, DWORD PTR [rbp-4] mov DWORD PTR [rbp+16], eax mov rsp, rbp pop rbp ret Hardverközeli programozás 1 139

140 Példa assembly-ben#2 main: push rbp mov rbp, rsp sub rsp, 8 mov DWORD PTR [rbp-8], edi mov eax, DWORD PTR [rbp-8] push rax call fuggv pop rax mov DWORD PTR [rbp-4], eax mov eax, DWORD PTR [rbp-4] mov rsp, rbp pop rbp ret Hardverközeli programozás 1 140

141 Cím szerinti paraméterátadás Formális paraméternek nincs címkomponense a hívott területén. Aktuális paraméternek van cím komponense a hívó területén. Az aktuális paraméter címe átkerül a hívott alprogramhoz, aki itt dolgozik. Az információátadás két irányú. Az alprogram a hívó területén dolgozik. Gyorsabb, de veszélyesebb. 141

142 Megszakítási rendszer és input/output Megszakítás, kivétel Megszakításkezelés Input/output Buszrendszerek, perifériák

143 Szükségesség Az általános célú számítógépek fontos képessége, hogy kölcsön hat az I/O eszközökkel (billentyűzet, egér, hálózati interfész, monitor). Ezek ez eszközök azonnali választ várnak a processzortól, függetlenül attól mivel foglalkozik éppen. Váratlanul bekövetkező eseményekre a CPU-nak reagálnia kell. A megszakítás szolgál a CPU figyelmének felhívására. Hardverközeli programozás 1 143

144 Megszakítás Speciális jelzés a CPU számára Egy esemény bekövetkeztét jelzi Azonnal reagálni kell rá A normál végrehajtást meg kell szakítani Később tudni kell folytatni Forrás Hardver Processzor Szoftver Hardverközeli programozás 1 144

145 Megszakítás típusok Aszinkron Külső forrásból (például I/O eszköz) származik Független az aktuálisan végrehajtott utasítástól Szinkron (másként kivétel ) Processzor által érzékelt kivétel Hiba: kijavítható probléma, újra próbálkozás Csapda: pl. nyomkövetésnél Elvetés: jelentős, javíthatatlan (hardver) hiba Programozott kivétel (rendszerhívás) Hardverközeli programozás 1 145

146 Megszakítási vonal Fogalmak Egy (vagy több) CPU vezérlő busz vezeték Megszakítási kérelem (IRQ) A megszakítások egész számokkal (0-255) azonosíthatók Lehet prioritásuk Programozható megszakítás vezérlő (PIC, APIC) Azonosítja a megszakítás forrását, aktiválja a megszakítási vonalat, kezeli prioritásokat Hardverközeli programozás 1 146

147 Megszakítási rutin (ISR) Fogalmak Az a programrész, amely megszakítási kérelem esetén aktiválódik, kezeli a speciális helyzetet Hívás nélküli alprogramhoz hasonlít Kontextus Ahhoz, hogy folytatni tudjuk a normál végrehajtást a kivételkezelés után először el kell menteni, majd vissza kell állítani az eredeti környezetet, regisztertartalmakat Hardverközeli programozás 1 147

148 Maszkolás Fogalmak Egyes megszakítási kérelmek figyelése kikapcsolható Egyszerre, globálisan, processzorban Külön-külön, a PIC-ben lévő IMR segítségével Vannak nem maszkolható megszakítások (NMI) Nested interrupt( fészkelt megszakítás ) Megszakítási rutint megszakító újabb IRQ Megszakítás megszakítása Hardverközeli programozás 1 148

149 Megszakításkezelés Utasítás beolvasás Utasítás dekódolás Kontextus mentés Utasítás végrehajtás Eszköz azonosítás nem Megszakítás? Rutin (ISR) keresés igen igen NMI? nem Maszk tilt? igen nem Rutin (ISR) végrehajtás Kontextus visszaállítás Hardverközeli programozás 1 149

150 Megszakításkezelési technikák Vektoros megszakításkezelés Megszakítási vonal aktiválás A megszakítás kérő azonosítja magát Adatbuszon egyedi kódot/címet küld Lekérdezéses (polling) megszakításkezelés Megszakítási vonal aktiválás A CPU sorozatos lekérdezésekkel kideríti kinek van megszakítási igénye Hardverközeli programozás 1 150

151 Megszakításkezelési technikák Vektoros megszakításkezelés IRQ n ISR 1 címe ISRncíme vektor Lekérdezéses megszakításkezelés IRQ megszakítás lekérdező eljárás programkódja ISR 1 programkódja ISR 1 programkódja ISR n programkódja ISR n programkódja Hardverközeli programozás 1 151

152 Input/Output Kapcsolat a külvilággal Hardveres I/O interfészek Szoftver interfész (device driver) Perifériás eszközök Periféria 1 Periféria 2 buffer buffer Processzor Memória Külső buszok I/O interfészek Rendszer busz Hardverközeli programozás 1 152

153 Input/output interfészek Kapcsolat a CPU és a perifériák között Címezhető eszközök Memóriára leképezett I/O (MMIO) Portra leképezett I/O (PMIO) Különböző adatsebesség Különböző fizikai jelek Soros átvitel Párhuzamos átvitel Az eszközvezérlés nem a CPU feladata Hardverközeli programozás 1 153

154 Programozott I/O (PIO) I/O technikák Speciális I/O utasításokkal (in, out) A program írja le mikor kell a perifériához fordulni (függetlenül annak állapotától) Utasításonként csak egy szó átvitele az I/O buffer és a CPU regiszterei között I/O adat és címregiszterek a CPU-ban Sok CPU időt felemészt az eszközök állapotának sorozatos elkérdezése Hardverközeli programozás 1 154

155 Megszakítás vezérelt I/O I/O technikák A periféria megszakításokkal jelez a CPU-nak Ha van új input vagy Ha kész van az outputtal A CPU nem figyel folyamatosan Közben tud mással foglalkozni Az adatmozgás a CPU és az I/O modul között történik Hardverközeli programozás 1 155

156 I/O technikák Direkt memória hozzáférés (DMA) Külön vezérlő révén közvetlen RAM-I/O kapcsolat (RAM-RAM, RAM-I/O) A CPU kéri fel a DMA vezérlőt a műveletre Ha a DMA vezérlő kész van megszakítást kér CPU nem vesz részt az adatmozgatásban Blokkos átviteli mód I/O processzor (IOP) DMA kiterjesztése nagyobb önállósággal Hardverközeli programozás 1 156

157 Buszrendszerek Párhuzamos ISA PCI ATA (ATAPI, UATA, IDE) VESA Local Bus(VLB) SCSI AGP Soros I 2 C PCI Express Serial ATA USB Serial Attached SCSI FireWire Hardverközeli programozás 1 157

158 PCI busz Peripheral Component Interconnect Párhuzamos belső busz Sínszélesség: 32 vagy 54 bit Átviteli sebesség: MB/s Fejlesztés: Külön vezérlőáramkör szükséges Forrás: en.wikipedia.org/wiki/conventional_pci Hardverközeli programozás 1 158

159 PCIebusz Peripheral Component Interconnect Express Soros belső busz 1 link 1, 2, 4, 8, 16 vagy 32 sávból áll Átviteli sebesség: MB/s Fejlesztés: Minden eszköznek külön link (nem osztoznak) Forrás: en.wikipedia.org/wiki/pci_express Hardverközeli programozás 1 159

160 (Parallel) ATA busz (Parallel) AT Attachment Párhuzamos belső busz Szinonimák : PATA, ATAPI, UATA, IDE, EIDE Átviteli sebesség: 3,3-166 MB/s Fejlesztés: HDD, FDD, CD és DVD meghajtó csatlakoztatás Forrás: en.wikipedia.org/wiki/parallel_ata Hardverközeli programozás 1 160

161 SerialATA Soros belső busz Pont-pont kapcsolat SATA busz Átviteli sebesség: MB/s Fejlesztés: HDD, SSD, CD és DVD meghajtó csatlakoztatás Forrás: hu.wikipedia.org/wiki/serial_ata Hardverközeli programozás 1 161

162 Universal Serial Bus Soros külső busz USB busz Plug-and-Play, elosztható (hub) Átviteli sebesség: 0, MB/s Fejlesztés: Csatlakozók: standard-a, standard-b, mini-a, mini-b, micro-a, micro-b Forrás: en.wikipedia.org/wiki/usb Hardverközeli programozás 1 162

163 Vezérlő hub-ok Az alaplap fontos chip-jei Northbridge(memóriavezérlő hub) Southbridge(I/O vezérlő hub) CPU AGP RAM Northbridge Southbridge BIOS PCI IDE USB LAN I/O Hardverközeli programozás 1 163

164 Device Driver Eszköztípusok Eszközmeghajtó Karakteres, blokkos, hálózati, egyéb A programok hardvertől független rendszerhívásokat alkalmaznak open, read, write, close, Az eszközmeghajtók töltik meg ezt konkrét hardver specifikus tartalommal Hardverközeli programozás 1 164

165 Perifériák Input Billentyűzet Egér Szkenner Kamera Tároló Háttértár (HDD, SSD) CD/DVD/Blu-ray USB tároló Memória kártya Output Monitor Nyomtató Projektor Audio rendszer Hálózat Ethernet kártya Wi-Fi kártya Hardverközeli programozás 1 165

166 Adattárolás Operatív memória Cache Háttértárak

167 Tárolók osztályzása Írhatóság szempontjából Csak olvasható, olvasható-írható Hierarchiabeli helye szerint Elsődleges, másodlagos, harmadlagos Tárolási közeg szerint Félvezető, mágneses, optikai Adatmegőrzés szerint Megmaradó, nem megmaradó Elérés szerint Soros elérésű, tetszőleges elérésű Hardverközeli programozás 1 167

168 Elsődleges memória A processzor és a futó programok által aktívan használt tároló Gyors elérésű Nem maradandó memória Méret erősen korlátos Ide tartoznak Regiszterek Gyorsítótárak Operatív memória Hardverközeli programozás 1 168

169 Másodlagos memória Háttértároló Az elsődleges memória kiterjesztése Nagy tároló kapacitás Kisebb elérési sebesség Maradandó tárolás Ide tartoznak HDD, SDD CD-, DVD-meghajtó Memóriakártya Hardverközeli programozás 1 169

170 Harmadlagos memória Többnyire eltávolítható adathordozókra épít Robotikuseszközök csatlakoztatják a kívánt tároló médiumot ( wurlitzer ) Ritka hozzáférés Óriási tároló kapacitás Cél hosszú távú archiválás Ide tartoznak Mágnesszalagos tárolók Optikai tárolók Hardverközeli programozás 1 170

171 Félvezető memóriák Read-Only Memory(ROM) Gyártás során kerül bele a tartalom, ami később nem változtatható Tartalmat sokáig megőrzi, tápfeszültség hiányában is Programable Read-Only Memory(PROM) Gyártás után üres. Speciális eszközzel egyszer beégethető a tartalom Az írás folyamata lassú (a RAM-hoz képest) Hardverközeli programozás 1 171

172 Félvezető memóriák Erasable Programable ROM (EPROM) Erős UV fénnyel (lassan) törölhető a tartalom Majd ismét újraírható Electrically Erasable Programable ROM (EEPROM) Elektronikusan, bájtonként törölhető tartalom Flash memória Speciális továbbfejlesztett EEPROM Blokkonként (gyorsabban) törölhető Hardverközeli programozás 1 172

173 Félvezető memóriák Random Access Memory(RAM) Véletlen elérés Elérési idő nem függ az elhelyezkedéstől Írható/olvasható tetszőleges számban Elveszti a tartalmát tápfeszültség hiányában Nagy írási/olvasási sebesség Static Random Access Memory(SRAM) Frissítés nélkül is megtartja a flip-flipokban a tartalmat a tápellátás megszűnéséig (pl. cache) Hardverközeli programozás 1 173

174 Félvezető memóriák Dynamic Random Access Memory(DRAM) Rendszeresen frissíteni kell, hogy a kondenzátor révén tárolt információ megmaradjon SRAM-nál lassabb (pl. operatív tár) Olyan gyorsan válaszol ahogy tud Syncronous Dynamic RAM (SDRAM) Órajellel szinkronizált válasz Gyorsabb az aszinkron DRAM-nál(pipeline működés) Hardverközeli programozás 1 174

175 Félvezető memóriák Double Data Rate(DDR) Gyorsított SDRAM Az órajel fel és leszálló élére is szinkronizál DDR2, DDR3, DDR4 Egyre nagyobb sebesség Egyre nagyobb adatsűrűség Egyre kisebb feszültség Nem kompatibilis DIMM (SDRAM, DDR, DDR2, DDR3, DDR3) Hardverközeli programozás 1 175

176 Gyorsítótár Egyes eszközök rendszeresen adatot cserélnek Az eszközök adatátviteli sebessége nagyon eltér A lassú eszköz miatt a gyors is lelassul Pl. a CPU kb. 10-szer gyorsabb a RAM-nál Megoldási ötlet Köztes tároló beiktatása (cache) Gyorsabb, mint a lassú eszköz (SRAM, közeli) Magas ára miatt teljesen nem helyettesíti a lassút Létjogosultság: lokalitási elvek Hardverközeli programozás 1 176

177 Térbeli lokalitás elve Gyorsítótár Ha egy program hivatkozik egy memóriacímre (adat vagy utasítás), akkor nagy valószínűséggel hamarosan hivatkozik a szomszédos címekre is Szekvenciális végrehajtás, tömbök Időbeli lokalitás elve Ha egy program hivatkozik egy memóriacímre, akkor nagy valószínűséggel hamarosan ismét hivatkozik rá Ciklusok Hardverközeli programozás 1 177

178 Gyorsítótár Leggyakrabban használt adatok tárolása Kisebb tárolókapacitás, gyorsabb elérés (SRAM), mint az operatív memória esetén Átlátszóak a felhasználó számára Asszociatív (CAM) memóriát tartalmaz CPU cache, GPU cache, Web cache, DNS cache CPU cache Többszintű: L1, L2, L3 cache On-chip vagy off-chip Hardverközeli programozás 1 178

179 Gyorsítótárfelépítése A tárolás egysége a Sor A Sor részei a Tag (toldalék) és a Blokk A Tag tartalmazza a Blokk főtárbeli címét és egyéb vezérlő információkat A Blokk a főtár egy részének a másolata CPU Cache Tag Blokk 128 DEF 131 MNO 129 GHI RAM ABC 127 DEF 128 GHI 129 JKL 130 MNO 131 Hardverközeli programozás 1 179

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

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

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd SZE MTK MSZT lovas.szilard@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? Nem reprezentatív felmérés kinek van

Részletesebben

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

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

Digitális technika VIMIAA01

Digitális technika VIMIAA01 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 Fehér Béla BME MIT Digitális Rendszerek Számítógépek

Részletesebben

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

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

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C programozási nyelvbe Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Oktatási segédletek a levelező műszaki informatikus hallgatók

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

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

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

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai Közlekedés gépjárművek elektronikája, diagnosztikája Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai TÁMOP-2.2.3-09/1-2009-0010 A Széchenyi István Térségi Integrált Szakképző

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

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

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

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

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

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

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

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

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

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

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

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

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

Részletesebben

Széchenyi István Szakképző Iskola

Széchenyi István Szakképző Iskola A SZAKKÖZÉPISKOLAI SZAKMACSOPORTOS ALAPOZÓ OKTATÁS EMELT SZINTŰ ISKOLAI PROGRAMJA 11-12. évolyam Érvényes a 2003-2004-es tanévtől felmenő rendszerben Átdolgozva, utolsó módosítás: 2004. április 26. Az

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

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

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

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

Részletesebben

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

Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu

Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu 1 Bevezetés - fogalmak Informatika sokrétű Információk Szerzése Feldolgozása Tárolása Továbbítása Információtechnika Informatika a technikai

Részletesebben

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

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

Részletesebben

A 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

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait. Mérési útmutató A/D konverteres mérés 1. Az A/D átalakítók főbb típusai és rövid leírásuk // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait. Csoportosítás polaritás szempontjábó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

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

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

Részletesebben

2. Digitális hálózatok...60

2. Digitális hálózatok...60 2 60 21 Kombinációs hálózatok61 Kombinációs feladatok logikai leírása62 Kombinációs hálózatok logikai tervezése62 22 Összetett műveletek használata66 z univerzális műveletek alkalmazása66 kizáró-vagy kapuk

Részletesebben

Számítógépek. 2.a) Ismertesse a kombinációs hálózatok alapelemeit és a funkcionálisan teljes rendszer

Számítógépek. 2.a) Ismertesse a kombinációs hálózatok alapelemeit és a funkcionálisan teljes rendszer Számítógépek 1.a) Ismertesse az információ analóg és digitális leképzésének lehetőségeit, a számrendszereket és a gyakoribb kódrendszereket! Jellemezze a logikai függvényeket, és mutassa be az egyszerűsítési

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

Információs Technológia

Információs Technológia Információs Technológia A C programozási nyelv (Típusok és operátorok) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 szeptember

Részletesebben

Bevezetés a C++ programozásba

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

Részletesebben

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

A Számítógépek hardver elemei Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek hardver elemei Korszerő perifériák és rendszercsatolásuk A µ processzoros rendszer regiszter modellje A µp gépi

Részletesebben

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

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

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

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

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

Részletesebben

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

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

Részletesebben

Méréstechnika. 3. Mérőműszerek csoportosítása, Elektromechanikus műszerek általános felépítése, jellemzőik.

Méréstechnika. 3. Mérőműszerek csoportosítása, Elektromechanikus műszerek általános felépítése, jellemzőik. 2 Méréstechnika 1. A méréstechnika tárgya, mérés célja. Mértékegységrendszer kialakulása, SI mértékegységrendszer felépítése, alkalmazása. Villamos jelek felosztása, jelek jellemző mennyiségei, azok kiszámítása.

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

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

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

Hardverközeli programozás oktatása a DIY Calculator segítségével Teaching hardware programming with DIY Calculator

Hardverközeli programozás oktatása a DIY Calculator segítségével Teaching hardware programming with DIY Calculator Hardverközeli programozás oktatása a DIY Calculator segítségével Teaching hardware programming with DIY Calculator Varga Imre a a Debreceni Egyetem, Informatikai Rendszerek és Hálózatok Tanszék varga.imre@inf.unideb.hu

Részletesebben

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

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

Részletesebben

FPGA áramkörök alkalmazásainak vizsgálata

FPGA áramkörök alkalmazásainak vizsgálata FPGA áramkörök alkalmazásainak vizsgálata Kutatási beszámoló a Pro Progressio alapítvány számára Raikovich Tamás, 2012. 1 Bevezetés A programozható logikai áramkörökön (FPGA) alapuló hardver gyorsítók

Részletesebben

0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása

0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása KöMaL Technikai tanácsok az I- és S-jelű pontversenyhez A standard be- és kimenet kezelése Tartalomjegyzék 0.1. Mi az a standard be- és kimenet?............................. 1 0.2. A két mintafeladat leírása.................................

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

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

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

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 4. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Számítógépes alapismeretek

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

Részletesebben

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

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

2.3. A C nyelv utasításai

2.3. A C nyelv utasításai 2.3. A C nyelv utasításai A C szabvány hét csoportban osztályozza a C nyelv utasításait: Csoport Kulcsszavak, ill. jelölések Kifejezés utasítás Üres utasítás: ; Összetett utasítás: } Szelekciós utasítások:

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

DSP architektúrák dspic30f család

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

Részletesebben

Programozás 3. Dr. Iványi Péter

Programozás 3. Dr. Iványi Péter Programozás 3. Dr. Iványi Péter 1 Egy operandus művelet operandus operandus művelet Operátorok Két operandus operandus1 művelet operandus2 2 Aritmetikai műveletek + : összeadás -: kivonás * : szorzás /

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

11.3.1. Az MSP430 energiatakarékos használata

11.3.1. Az MSP430 energiatakarékos használata 11.3.1. Az MSP430 energiatakarékos használata A Texas Instruments ##LINK: www.ti.com## által fejlesztett MSP430 ##Mixed Signal Processor## család tagjai létrehozásakor a tervezők fontos célja volt a rendkívül

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

Elôszó a magyar kiadáshoz A Kiadó Elôszó

Elôszó a magyar kiadáshoz A Kiadó Elôszó Elôszó a magyar kiadáshoz A C programnyelvet eredetileg a Bell Laboratóriumban az UNIX operációs rendszerhez, az alatt fejlesztették ki PDP-11_ számítógépen. A kifejlesztése óta eltelt évek során bebizonyosodott,

Részletesebben

Szakmai program 2015

Szakmai program 2015 2015 Célok és feladatok a szakközépiskolai képzésben A szakközépiskolában folyó nevelés-oktatás továbbépíti, kiszélesíti és elmélyíti az általános iskolai tantárgyi követelményeket. A szakközépiskolában

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

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 2. ELİADÁS Visual Basic bevezetı Visual Basic.NET nyelvi elemek 2 Visual Basic.NET programozási nyelv Nyelvi elemek: Általában

Részletesebben

Országzászlók (2015. május 27., Sz14)

Országzászlók (2015. május 27., Sz14) Országzászlók (2015. május 27., Sz14) Írjon programot, amely a standard bemenetről állományvégjelig soronként egy-egy ország zászlójára vonatkozó adatokat olvas be! Az egyes zászlóknál azt tartjuk nyilván,

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK ÉRETTSÉGI VIZSGA 2016. május 18. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI VIZSGA 2016. május 18. 8:00 I. Időtartam: 30 perc Pótlapok száma Tisztázati Piszkozati EMBERI ERŐFORRÁSOK MINISZTÉRIUMA

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 5-2. ábra két folyamatos jel (A és B) azonos gyakoriságú mintavételezését mutatja. 5-2. ábra

Az 5-2. ábra két folyamatos jel (A és B) azonos gyakoriságú mintavételezését mutatja. 5-2. ábra Az analóg folyamatjeleken - mielőtt azok további feldolgozás (hasznosítás) céljából bekerülnének a rendszer adatbázisába - az alábbi műveleteket kell elvégezni: mintavételezés, átkódolás, méréskorrekció,

Részletesebben

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

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és memória: The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

Ú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

Programozható logikai vezérlõk

Programozható logikai vezérlõk BUDAPESTI MÛSZAKI EGYETEM KÖZLEKEDÉSMÉRNÖKI KAR KÖZLEKEDÉSAUTOMATIKAI TANSZÉK Programozható logikai vezérlõk Segédlet az Irányítástechnika I. c. tárgyhoz Összeállította: Szabó Géza egyetemi tanársegéd

Részletesebben

Számítógép architektúra kidolgozott tételsor

Számítógép architektúra kidolgozott tételsor Számítógép architektúra kidolgozott tételsor Szegedi Tudományegyetem Szeged, 27. Tartalomjegyzék. Fordítás, értelmezés... 4 2. Numerikus adatok ábrázolása: fixpontos ábrázolás, konverzió számrendszerek

Részletesebben

Számítógépes alapismeretek

Számítógépes alapismeretek Számítógépes alapismeretek 2. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Programtervező Informatikus BSc 2008 / Budapest

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

C programnyelv 1. Kedves Kollegina, Kolléga!

C programnyelv 1. Kedves Kollegina, Kolléga! C programnyelv 1 Kedves Kollegina, Kolléga! A jegyzetet Önnek készítettem azért, hogy referencia anyaga legyen a Programnyelv és a Programfejlesztés tárgyakhoz. Szeretném a segítségét igénybe venni abbó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

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia)

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia) Informatika alapjai-9 Személyi számítógép (PC) 1/12 (Personal computer - From Wikipedia, the free encyclopedia) A személyi számítógépet ára, mérete és képességei és a használatában kialakult kultúra teszik

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

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

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

7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák 7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák A TMS320C50 processzor Ez a DSP processzor az 1.3. fejezetben lett bemutatva. A TMS320C50 ##LINK: http://www.ti.com/product/tms320c50## egy

Részletesebben

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

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és memória: The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

Történeti áttekintés

Történeti áttekintés Történeti áttekintés Előzmények A számítástechnika kezdetén elterjedt (egyeduralkodó) volt a mérnökpult használata, a gép és az ember kommunikációja bináris nyelven zajlott. A gépi kódú programozás nem

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

1. Kombinációs hálózatok mérési gyakorlatai

1. Kombinációs hálózatok mérési gyakorlatai 1. Kombinációs hálózatok mérési gyakorlatai 1.1 Logikai alapkapuk vizsgálata A XILINX ISE DESIGN SUITE 14.7 WebPack fejlesztőrendszer segítségével és töltse be a rendelkezésére álló SPARTAN 3E FPGA ba:

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

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

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

Részletesebben

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

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

Részletesebben

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