Skip navigation

Assembly programozás gyakorlat

Témakörök

A kurzus keretein belül megismerkedünk az Assembly nyelvvel és sajátosságaival. A félév során leadásra kerülő főbb támakörök:

  • Számrendszerek közti átváltások
  • Címzési módok és adatkezelés
  • Adatmozgató és aritmetikai utasítások
  • Vezérlésátadás
  • Tömbök és sztringek kezelése
  • Paraméter átadások eljárások számára
  • Számok kiíratása és sztring műveletek

Fejlesztőkörnyezet

A félév során a Visual Studio 2015 Enterprise fejlesztőkörnyezetet fogjuk használni. A szoftver beszerzésére az alábbi két lehetőséget ajánljuk:

Motiváció

  • Az Assembly nyelv segítségével többet megtudhatunk a számítógép belső működéséről, hogy hogyan működnek a CPU/CPU regiszterek a memória címzésekkel, alapszintű utasításokat felhasználva, hogy milyen adattípust mikor használjunk, hogyan írjunk kisebb, gyorsabb és hatékonyabb routine-okat.
  • Az Assembly nyelv egy szimbolikus reprezentációja a gépi kódnak, ami lehetőséget nyújt a programozók számára, hogy gépi kódot írjanak anélkül, hogy hosszú bináris karaktersorozatokkal kellene bajlódniuk. Az Assembler fordítja az Assembly kódot gépi kódra. Az Assembly nyelvnek a végrehajtási hatékonysága megegyezik a gépi szintű nyelvekével. Majd látni fogjuk, hogy egy Assembly nyelven írt kódot akár együttesen is alkalmazhatunk C++ kóddal.
  • Azt gondolhatnánk, hogy az Assembly egy halott nyelv. Bár valószínűleg valóban nem fog egyikünk se a következő szembe jövő felhasználónak Assembly nyelven új alkalmazást írni, mégis van némi előnye az Assembly nyelv tanulásának. Manapság az Assembly nyelvet első sorban közvetlen hardver manipulációra használják. Speciális processzor utasításokhoz való hozzáférés miatt, vagy kritikus teljesítmény problémák kezelésére. Tipikus felhasználása driver-ek, alacsony szintű beágyazott rendszerek és valós idejű rendszerek programozásában található meg. Az Assembly hasznos lehet sebesség optimalizálásra is. Teljes irányítási lehetőséget nyújt a rendszer forrásokhoz. De pl. PoC exploit (Proof Of Concept exploit - támadás egy számítógép vagy hálózat ellen. Nem okoz sérülést, de megmutatja, hogy egy hacker hogyan tudja kihasználni egy gép sebezhetőségét szoftver vagy hardver szinten) írásakor is hasznos lehet az assembly tudás.