Skip to content

Releases: katepavlu/greg

3.0.4 - Fixed pseudo instructions

05 Nov 17:18
Compare
Choose a tag to compare

A quick fix to pseudo-instruction logic.

3.0 - Stack operations

02 Nov 09:27
Compare
Choose a tag to compare

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

30 Oct 11:09
Compare
Choose a tag to compare

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!

29 Oct 18:38
Compare
Choose a tag to compare

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

14 Oct 09:03
Compare
Choose a tag to compare
0.1.1 - Field testing Pre-release
Pre-release

Now with a windows build and no debug prints.

greg - generic 64b linux build
greg.exe - 64b Windows build

0.1 - Basic features

13 Oct 14:15
Compare
Choose a tag to compare
0.1 - Basic features Pre-release
Pre-release

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