Releases: katepavlu/greg
3.0.4 - Fixed pseudo instructions
3.0 - Stack operations
Changes
- added automatic prelude insertion. Before each program, the following instructions are inserted:
lui $gv, 0x1000 # initialize global pointer lui $sp, 0x8000 # initialize stack pointer ja $zero, main # jump to main function
- because ja is a pseudoinstruction, this translates to five machine instructions. As such, your program now starts at address 0x14(=20)
- added two new pseudo-instructions:
push $t0 # push the contents of t0 onto the stack pop $t0 # retrieve the top value from the stack into $t0
- error messages now correctly refer to the file the error is in
- error messages now count lines from 1 (was 0 in previous releases)
Migration
- add a "main:" label to the entry point of your program
- if you are using manually calculated jumps anywhere, add 20 to your addresses
2.0 - intel HEX version
This version changes the output format to Intel HEX for easier uploading. Ouput addresses are adapted to the hardware: word addressable, default offset 0x0400
WARNING:
Some browsers and antiviruses on Windows may flag the executable as malicous, since it is not signed. Signing requires an investment of abou 300$, which I do not have.
1.0 - Full release!
This marks the first full release of greg. The code has been substantially refactored, the command has changed.
Main changes:
- fully tested!
- better detection of syntax errors
- supports multiple input files
- supports multiple .text/.data segments per file
- bug fixes
0.1.1 - Field testing
Now with a windows build and no debug prints.
greg - generic 64b linux build
greg.exe - 64b Windows build
0.1 - Basic features
This should fully implement basic assembly language. Supports identifiers, four pseudo-instructions related to those, the data segment, direct access to memory mapped IO. No support for bytes or other widths other than word.
https://docs.google.com/document/d/1AN-uqAFlSWyhOYCu5r69SF4dksxHxVPF_hEuQTsxCZg/edit?usp=sharing