Varga, ImrePapp, Ádám2025-02-232025-02-232024https://hdl.handle.net/2437/387531Szakdolgozatom célja egy olyan oktatóprogram fejlesztése, amely segítheti a mérnökinformatikus BSc szakos hallgatókat az x86-64 assembly programozás alapjainak megértésében. Az oktatóprogram a hallgatók által írt assembly forráskódot "valós" időben képes futtatni. Az egyes utasítások végrehajtásának nyomonkövetését előre-, valamint hátra lépkedéssel, illetve számos IDE-ben is megtalálható breakpoint funkcionalitással segíti. Az oktatóprogram a Unicorn Engine CPU emulátor keretrendszer köré épül, amely lehetővé teszi gépi kód futtatását és az utasítások végrehajtásának egy adott ponton történő megakasztását egy instrumentációs rétegen keresztül integrált, úgynevezett "hook" mechanizmussal. Az assembly forrásfájlokból a gépi kódot egy C nyelven írt előfeldolgozó alegység nyeri ki, az objdump parancsot felhasználva, Linux operációs rendszer alatt. A Unicorn Engine API-ját használó, szintén C-ben írt emulátor alegység a kinyert, tiszta gépi kódot emulálja és futás közben kimenti az egyes utasítások végrehajtási kontextusát. Egy Python nyelven írt, DearPyGui grafikus könyvtárat használó interaktív grafikus felhasználói felület a kimentett adatokat feldolgozva képes megjeleníteni az utasításokat és azok memóriacímét, az áltanálos és speciális célú regisztereket, beleértve az állapotregiszter bitjeit, a rendszerverem tartalmát hexadecimális és decimális formában, valamint az egyes memóriaszegmensekben található szimbólumok (konstans, illetve inicializált és inicializálatlan változók) tartalmát. Képes továbbá a soron következő utasítás, illetve az RSP regiszter által mutatott érték, a verem tetejének kijelzésére.70hux86-64emulátoroktatóprogramUnicorn EngineCPythonDearPyGuiobjdumpGCCassemblyLinuxEgy x86-64 emulátort alkalmazó oktatóprogram fejlesztéseInformatika::SzámítógéptudományHozzáférhető a 2022 decemberi felsőoktatási törvénymódosítás értelmében.