This is a LEGv8 Assembly extension for Visual Studio Code. This extension provides some basic functionality, including, but not limited to: syntax highlighting, autocomplete options, and the ability to simulate a small environment for the assembly to run.
LEGv8 itself is a subset of the ARM assembly architecture. LEG is not used in real applications- it is used merely to be a teaching tool to help make the learning process easier in regards to assembly. The goal of this repository, and this extension, is to help in those efforts to those who are interested in learning assembly.
The LEGv8 Assembly extension has the following features:
- Syntax highlighting.
- Autocomplete/autofill options for all of the implemented instructions.
- A mock debugger that will run through and evaluate the assembly code.
- Ability to configure the simulation within settings.
To see a list of all instructions and features implemented within the simulation, check out the wiki tab.
Many things from LEG have not been fully implemented or tested. Those things are as follows:
- Overflow and carry flag setting/comparisons
- Floating point instructions
- Arithmetic instructions
If you find any new issues, please create an issue for them on the Github repository.
The following contains the release notes for the past 5 releases. Check out the CHANGELOG to see the full list.
- Removed REPL command from startup.
- Adjusted dependencies.
- Fixed the bug that would crash the program when trying to debug or run the simulation.
- Disabled the Language Server Protocol, again.
- Removed uneccessary configuration settings.
- Added configuration setting for simulation memory size.
- Debugger support.
- Step, step in, step out.
- Continue.
- Breakpoints.
- Edit and view registers or memory during runtime.
- Reverse debugging is not supported. Clicking those will act as normal debugging.
- Use the Run menu item to see all available commands with the debugger.
- Stack overflow detection.
- Fixed support for HALT, which currently does the same as DUMP.
- Added
PRNT reg
, wherereg
is a register to be printed. - Fixed bug with memory not being set or read correctly.
- Initial release
The following is a list of useful references that were used for the understanding of LEG Assembly, as well as the creation of this extension:
- LEGv8 Reference Data Cheat Sheet
- Computer Organization and Design: The Hardware/Software Interface, ARM® Edition