Simulace procesoru ARM pro výuku programování v asembleru
Simulation of an ARM Processor for the Education of Programming in Assembler

Author
Advisor
Orság, FilipReferee
Goldmann, TomášGrade
AAltmetrics
Metadata
Show full item recordAbstract
Cílem této práce je vytvoření didaktického nástroje pro simulaci činnosti procesoru z rodiny Arm, který je integrován do editoru Visual Studio Code. Nástroj je určen pro výuku programování těchto procesorů na strojové úrovni. Implementuje službu umožňující překlad jazyka symbolických adres instrukční sady A32 a simulaci provádění jejích instrukcí. Využívá k tomu emulační jádro Unicorn a další nástroje s otevřeným zdrojovým kódem. Rozšíření pro editor poskytuje s pomocí služby podporu pro vývoj a ladění programů v tomto jazyce. Při tvorbě programu zobrazuje uživateli vysvětlivky pro použité instrukce a pomáhá s pochopením jejich funkcí. Při ladění umožňuje krokování a různé pohledy na vnitřní stav simulovaného procesoru, obsah registrů i paměti. Výsledkem práce je řešení, které je možné použít při výuce předmětu Pokročilé asemblery na FIT VUT. V budoucnu bude možné rozšířit jej o podporu jiných architektur a poskytnout tak nástroj pro usnadnění výuky i v dalších předmětech zaměřených na programování na strojové úrovni. This thesis aims to implement a didactic tool for simulation of an Arm-based processor integrated into the Visual Studio Code editor. The tool facilitates learning about the machine-level programming of these processors. It implements a service that provides an assembler and a simulator for the A32 instruction set. The service is built using the Unicorn emulation framework and other open-source tools. The editor extension uses the service to add support for the development and debugging of programs written in the assembly language. It shows descriptions of used instructions and helps the programmer understand their function. When debugging, it enables stepping through the code and provides various views of the state of the simulated processor, its registers and memory. The solution can be used in the Advanced Assembly Languages course at FIT BUT. It could be further improved in the future to support other architectures and provide an easy learning environment in other courses related to machine-level programming.
Keywords
Arm, AArch32, A32, jazyk symbolických adres, assembler, instrukce, simulace, emulace, Unicorn, Visual Studio Code, rozšíření, jazykový server, LSP, ladicí adaptér, DAP, výuka, vzdálený překlad, ladění, krokování kódu, Arm, AArch32, A32, assembly language, assembler, instruction, simulation, emulation, Unicorn, Visual Studio Code, extension, Language Server, LSP, Debug Adapter, DAP, education, remote assembling, debugging, stepping through codeLanguage
čeština (Czech)Study brunch
Informační technologieComposition of Committee
doc. Ing. Peter Chudý, Ph.D., MBA (předseda) doc. Ing. Jiří Jaroš, Ph.D. (místopředseda) Ing. František Grézl, Ph.D. (člen) Ing. Libor Polčák, Ph.D. (člen) Ing. Jaroslav Rozman, Ph.D. (člen)Date of defence
2022-08-23Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A. Otázky u obhajoby: V kapitole 5.2 Rozšíření pro Visual Studio Code máte uvedené, že rekurzivně zanořené regulární výrazy mají větší vyjadřovací sílu oproti regulárním výrazům (necitováno). Vysvětlete, jak jste k tomuto závěru došel a případně vaše tvrzení podložte. Uvažoval jste možnostech sběru statistik chování procesoru?Result of the defence
práce byla úspěšně obhájenaPersistent identifier
http://hdl.handle.net/11012/208257Source
ONDRYÁŠ, O. Simulace procesoru ARM pro výuku programování v asembleru [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2022.Collections
- 2022 [309]