addled shift right logical (srl)

master
bx 2021-08-30 20:12:26 +01:00
parent 97b12551e5
commit 53c69e77a9
1 changed files with 30 additions and 4 deletions

View File

@ -51,6 +51,16 @@ def lui(reg, val)
word op word op
end end
# shift right logical
def srl(src, amt, dest)
# oooooo ----- sssss ddddd hhhhh oooooo
op = 0b000000_00000_00000_00000_00000_000010
op |= (src & 0b11111) << 16
op |= (amt & 0b11111) << 6
op |= (dest & 0b11111) << 11
word op
end
# this is a terrible idea and im doing it # this is a terrible idea and im doing it
#$labels = {} #$labels = {}
@ -59,7 +69,11 @@ end
# super # super
#end #end
# # # CONSTANTS # # #
$base_addr = 0x80010000 # 0x10000 # 0x80010000 $base_addr = 0x80010000 # 0x10000 # 0x80010000
$file_size = 0x800
# # # EXE HEADER # # # # # # EXE HEADER # # #
@ -68,7 +82,7 @@ zero_fill 0x00f
word $base_addr # initial pc word $base_addr # initial pc
word 0x00000000 # initial GP/R28 word 0x00000000 # initial GP/R28
word $base_addr # destintation address in RAM word $base_addr # destintation address in RAM
word 0x800 # file size excluding header (must be N * 0x800) word $file_size # file size excluding header (must be N * 0x800)
word 0x00000000 # Unknown/Unused word 0x00000000 # Unknown/Unused
word 0x00000000 # Unknown/Unused word 0x00000000 # Unknown/Unused
word 0x00000000 # Memfill start address word 0x00000000 # Memfill start address
@ -87,16 +101,28 @@ $bytes = []
# # # PROGRAM CODE # # # # # # PROGRAM CODE # # #
nop nop
nop nop
lui 2, 0
lui 3, 0
lui 2, 1
nop nop
srl 2, 14, 3
srl 2, 1, 6
nop
nop nop
nop nop
jmp $base_addr jmp $base_addr
nop nop
lui 2, 1
# int 0b101011_00010_00001_01111111_11111111
string "this is a test lol" string "this is a test lol"
word 0xFFAAFFAA word 0xFFAAFFAA
@ -112,7 +138,7 @@ word 0b001000_00101_00101_11111111_11111111
zero_fill 0xfff zero_fill $file_size - 1
f = File.new "LOADTHIS.EXE", "wb" f = File.new "LOADTHIS.EXE", "wb"
f.write $exe_header.pack("C*") f.write $exe_header.pack("C*")