Skip to content

Instantly share code, notes, and snippets.

@dbwodlf3
Last active June 29, 2018 02:47
Show Gist options
  • Select an option

  • Save dbwodlf3/725e81da172c53000ae52e8e53b836cb to your computer and use it in GitHub Desktop.

Select an option

Save dbwodlf3/725e81da172c53000ae52e8e53b836cb to your computer and use it in GitHub Desktop.
Basic Instruction Set
Instruction Name Operation ID Format Binary
write 0000 constant
(MBR <- Constant)
ex)
write 1111
write 0110
(MBR) == 1111 0110)
write 1010
(MBR == 1010 0110)
write 1000
(MBR == 1010 1000)
0000 xxxx
save 0001 Reg, Address
(Address <- Reg)
xx | xx
0001 xx xx
load 0010 Reg, Address
(Reg <- Address)
0010 xx xx
jump 0011 Reg
(PCR <- Reg)
0011 00 xx
beq 0100 Reg2~3
(branch to address of Reg2 or Reg3 data, if Reg0 and Reg1 are equal)
0100 00 1x
bne 0101 Reg2~3
(branch to address of Reg2 or Reg3 data, if Reg0 and Reg1 are not equal)
bgt 0110 Reg2~3
(branch to address of Reg2 or Reg3 data, if Reg0 is greater than Reg1)
0110 00 1x
regwrite 0111 Reg
(Reg <- MBR)
0111 00 xx
add 1000 AReg, BReg
(AReg <- ALU[AReg+BReg])
1000 xx xx
sub 1001 AReg, BReg
(AReg <- ALU[AReg-BReg])
1001 xx xx
mul 1010 AReg, BReg
(AReg <- ALU[AReg*BReg])
1010 xx xx
div 1011 AReg, BReg
(AReg <- ALU[AReg/BReg])
1011 xx xx
equ 1100 AReg, BReg
(AReg <- ALU[AReg==BReg])
1100 xx xx
gth 1101 AReg, BReg
(AReg <- ALU[AReg>BReg])
1101 xx xx
mv 1110 AReg, BReg
(AReg <- BReg)
1110 xx xx
syscall 1111 syscall 1111 xx xx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment