Here is MARIE's instruction set (each instruction has an opcode and up to $1$ operand:)
| Opcode | Syntax | Description |
|---|---|---|
| 0001 | LOAD X | Loads the value at address X into the AC. |
| 0010 | STORE X | Stores the value in the AC into address X in memory. |
| 0011 | ADD X | Adds the value at address X to the AC. |
| 0100 | SUBT X | Subtracts the value at address X from the AC. |
| 0101 | INPUT | Takes input from the user and places it into the AC. |
| 0110 | OUTPUT | Outputs the value in the AC to the user. |
| 0111 | HALT | Stops the execution of the program. |
| 1000 | SKIPCOND | Skips the next instruction based on a condition in the AC. |
| 1001 | JUMP X | Sets the PC to X, causing the program to jump to the specified address. |
| 1010 | JNS X | Jumps to the instruction at address X. |
| 1011 | JUMPI X | Indirectly jumps to the address stored at address X. |