MiniISA has four registers: $1, $1, $2 and $r, represented as 00, 01, 10 and 11 respectively. 0000aaxx load $a load into register a from address in $0$1 0001aaxx store $a store from register a into address in $0$1 0010xxxx jump jump to address in $0$1 0011oooo jump o jump o instructions (signed) 0100iiii high $0 i high bits of register 0 set to iiii 0101iiii low $0 i low bits of 0 0110iiii high $1 i high bits of 1 0111iiii low $1 i low bits of 1 1000xxxx sub $r = $0 - $1 1001oooo branch o if ($r < 0) jump o instructions (signed) 1010aabb swap $a $b $a and $b are swapped 1100xxxx srl $r = $0 >> $1 (logical) 1101xxxx sra $r = $0 >> $1 (arithmetic) 111xxxxx sll $r = $0 << $1