MiniISA has four registers: $0, $1, $2 and $r, represented as 00, 01, 10 and 11 respectively. The special register $01 is actually the 16-bit representation of registers $0 and $1, with $0 as the high bits. _'s in the bit representation of operations are ignored bits. bits name function ---------------------------------------- 0000aa__ load $a load into register a from address in $01 0001aa__ store $a store from register a into address in $01 0010____ jump jump to address in $01 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 1000aabb sub $a $b $r = $a - $b 1001oooo branch o if ($r < 0) jump o instructions (signed) 1010aabb swap $a $b $a and $b are swapped 1100aabb srl $r = $a >> $b (logical) 1101aabb sra $r = $a >> $b (arithmetic) 111_aabb sll $r = $a << $b pseudoinstructions: imm $a 0xAB high $a 0xA low $a 0xB addr 0xABCD high $0 0xA low $0 0xB high $1 0xC low $1 0xD