Simulace procesoru ARM pro výuku programování v asembleru
Loading...
Date
Authors
Ondryáš, Ondřej
ORCID
Advisor
Referee
Mark
A
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
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.
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.
Description
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 code
Citation
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.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
Informační technologie
Comittee
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 acceptance
2022-08-23
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 defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení