Load a binary value directly into a register. The value is written as an 8-bit binary number.
Add two registers together and store the result in a third register.
Subtract the second register from the first (Ra − Rb) and store the result in a third register.
Bitwise AND two registers. Each output bit is 1 only if both input bits are 1.
Bitwise OR two registers. Each output bit is 1 if either input bit is 1.
Bitwise NAND two registers. The inverse of AND — each output bit is 0 only if both input bits are 1.
Bitwise XOR two registers. Each output bit is 1 if the input bits are different.
Unconditionally jump to a memory address. Execution continues from that instruction onward. The address is an 8-bit binary value.
Halt the computer. Execution stops immediately. Every program should end with HLT.
No operation. The computer does nothing for one clock cycle. Useful for timing or padding.
Output the value of a register to the screen display.
There are 15 general-purpose registers, R1 through R15. Each holds a 4-bit value. Any register can be used as a source or destination in any instruction.