Special cases:
INC OPERAND;
DEC OPERAND;
JMP #OPERAND;
Valid instructions:
OPCODE(hex) | OPCODE | OPERANDS | Explanation |
a0 | add | value,#address; | add the value to this address |
A0 | ADD | #address1,#address2; | add contents of address1 to address2 and store in address2 |
a2 | SUB | value,#address; | subtract the contents of address1 from address2, store in address2 |
A2 | SUB | #address1,#address2; | subtract the contents of address1 from address2, store in address2 |
a3 | MUL | #address1,#address2; | multiply the contents of address1 by address2, store in address2 |
A3 | MUL | value,#address; | multiply the contents of the address by this value, store back in address |
a4 | DIV | #address1,#address2; | divide the contents of address2 by contents of address1, store result in address2 |
A4 | DIV | value,#address; | divide the contents of the address by value, store result in address |
A5 | INC | #address; | increment the contents of this address |
A6 | DEC | #address; | decrement the contents of this address |
D0 | MOV | #address1,#address2; | Move the contents of address1 to address2 |
C0 | JMP | #address; | Jump to this address |
C1 | JMPZ | #address1,#address2; | Jump to address1 if the contents of address2 is equal to zero |
C2 | JMPN | #address1,#address2; | Jump to address1 if the contents of address2 is negative |
a0 | add | value,#address; | add the value to this address |
FF | HALT; | None | Stop the machine. Input this as your final instruction. Not required if program loops indefinitely. |