From d5fbe1a89b9aba8d59fcf8752f3ef49ab6ee7d34 Mon Sep 17 00:00:00 2001 From: bx Date: Tue, 31 Aug 2021 11:13:55 +0100 Subject: [PATCH] added register names, base on no$ docs --- assembler.rb | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/assembler.rb b/assembler.rb index 462b253..202487e 100644 --- a/assembler.rb +++ b/assembler.rb @@ -22,6 +22,39 @@ def string(s) end +# # # REGISTER NAMES # # # +def at() 1 end # assembler temporary + +# subroutine return values, may be changed by subroutines +def v0() 2 end ; def v0() 3 end + +# subroutine arguments, may be changed by subroutines +def a0() 4 end ; def a1() 5 end +def a2() 6 end ; def a3() 7 end + +# temporaries, may be changed by subroutines +def t0() 8 end ; def t1() 9 end +def t2() 10 end ; def t3() 11 end +def t4() 12 end ; def t5() 13 end +def t6() 14 end ; def t7() 15 end + +# static variables, must be saved by subs +def s0() 16 end ; def s1() 17 end +def s2() 18 end ; def s3() 19 end +def s4() 20 end ; def s5() 21 end +def s6() 22 end ; def s7() 23 end + +# temporaries, may be changed by subroutines +def t8() 24 end ; def t9() 25 end + +# reserved for kernel, detroyed by some irq handlers +def k0() 26 end ; def k1() 27 end + +def gp() 28 end # global pointer, rarely used +def sp() 29 end # stack pointer +def fp() 30 end # frame pointer +def ra() 31 end # return address + # # # INSTRUCTIONS # # # @@ -113,7 +146,7 @@ end # # # CONSTANTS # # # $base_addr = 0x80010000 # 0x10000 # 0x80010000 -$file_size = 0x800 +$file_size = 0x800 * 3 $gp0 = 0x1F801810 # # # EXE HEADER # # #