Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/notdroplt/meteorite
Assembler targeting Supernova
https://github.com/notdroplt/meteorite
assembler supernova
Last synced: 6 days ago
JSON representation
Assembler targeting Supernova
- Host: GitHub
- URL: https://github.com/notdroplt/meteorite
- Owner: notdroplt
- License: gpl-3.0
- Created: 2024-06-26T04:14:20.000Z (3 months ago)
- Default Branch: dev
- Last Pushed: 2024-08-06T16:24:16.000Z (about 2 months ago)
- Last Synced: 2024-09-29T05:45:20.545Z (6 days ago)
- Topics: assembler, supernova
- Language: C++
- Homepage:
- Size: 23.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Meteorite
This is a very simple assembler that targets the Supernova ISA
### Syntax
To single line comments, just add a `;` to comment until the end of the line:
```meteor
; like so
```To create labels in a line, write their name inside square brackets and
a semi colon afterwards, followed by a comment or a newline:```meteor
[label_1]:
```*In theory* spaces are allowed but better not try.
All instructions will fall in one of the following categories for the instruction """parser""":
* R instructions, which are in the form `instr r* r* r*`, where `*` represents any number of a register
* S instructions with hex immediate, in the form `instr r* r* #h` where `*` represents register numbers and `h` a valid hex number
* S instructions with decimal immediate, in the form `instr r* r* $d` where `*` represents register numbers and `d` a valid decimal number
* S instructions with label, in the form `instr r* r* [l]` where `*` represents register numbers and `l` a valid label name
* L instructions with hex immediate, in the form `instr r* #h` where `*` represents register numbers and `h` a valid hex number
* L instructions with decimal immediate, in the form `instr r* $d` where `*` represents register numbers and `d` a valid decimal number
* L instructions with label, in the form `instr r* [l]` where `*` represents register numbers and `l` a valid label nameThat is basically it for now, data operations and multiple sections is a future for next releases