Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aubstract/aublang_assembler
An assembler for my language AubLang, to be used with my Minecraft CPU
https://github.com/aubstract/aublang_assembler
assembler assembly cpu isa minecraft redstone syntax-highlighting
Last synced: about 1 month ago
JSON representation
An assembler for my language AubLang, to be used with my Minecraft CPU
- Host: GitHub
- URL: https://github.com/aubstract/aublang_assembler
- Owner: Aubstract
- Created: 2022-10-18T23:18:02.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-07T23:02:31.000Z (almost 2 years ago)
- Last Synced: 2023-04-26T08:38:39.029Z (over 1 year ago)
- Topics: assembler, assembly, cpu, isa, minecraft, redstone, syntax-highlighting
- Language: Python
- Homepage:
- Size: 163 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AubLang Assembler
**An assembler for my language AubLang, which outputs a schematic file that can be pasted into Minecraft for use on my Aub CPU.**
How to use the assembler:
- Run the main.py file in the assembler directory
- When the program starts, it will prompt you for a file path to the source file. This can be a .txt or a .aub file containing your AubLang assembly code.
- Next it will prompt you for assembler arguments, these are currently just used to specify secondary outputs. Meaning you can print info to the terminal, or write it to a file (not yet implemented). Or you can choose to run the assembled program on the emulator (WIP).Here is a list of assembler arguments:
- *print* - the specified outputs will be sent to the terminal.
- *file* - the specified outputs will be sent to a file (not yet implemented).
- *label* - labels are like variable names. There are two types of labels, one stores a memory (register or RAM) address, the other stores a program memory (PROM) address and is used to make jumps in the program. This argument will output the label dictionaries created during runtime which contain the label name, and the associated address.
- *aub* - output the assembly code with literal addresses (instead of labels).
- *bin* - output the machine code (binary).
- *run* - run the assembled program in the emulator.