Original title:
Simulace procesoru ARM pro výuku programování v asembleru
Translated title:
Simulation of an ARM Processor for the Education of Programming in Assembler
Authors:
Ondryáš, Ondřej ; Goldmann, Tomáš (referee) ; Orság, Filip (advisor) Document type: Bachelor's theses
Year:
2022
Language:
cze Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[cze][eng]
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:
A32; AArch32; Arm; assembler; assembly language; DAP; Debug Adapter; debugging; education; emulation; extension; instruction; Language Server; LSP; remote assembling; simulation; stepping through code; Unicorn; Visual Studio Code; A32; AArch32; Arm; assembler; DAP; emulace; instrukce; jazyk symbolických adres; jazykový server; krokování kódu; ladicí adaptér; ladění; LSP; rozšíření; simulace; Unicorn; Visual Studio Code; vzdálený překlad; výuka
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/208257