Virtual machine/emulator based on architecture of CARDboard Illustrative Aid to Computation
label: operation argument
Instruction | Alias | Description |
---|---|---|
Standart instruction set | ||
Data access | ||
CLA xx | LOAD | Read memory at address xx into accumulator |
STO xx | STORE | Write accumulator contents to memory at address xx |
Arithmetic | ||
ADD xx | Add contents of memory at address xx to accumulator | |
SUB xx | Subtract contents of memory at address xx from accumulator | |
SFT xy | SHIFT | Shift accumulator contents x times left and y times right |
Control flow | ||
JMP xx | Saves program counter to memory cell 99 and jumps to address xx | |
TAC xx | JNEG | Jumps to address xx if accumulator content is less than 0 |
HRS xx | RESET | Stops evaluation and sets program counter to xx |
I/O | ||
INP xx | Read user input to memory at address xx | |
OUT xx | Writes content of memory at address xx | |
Additional assembler macros | ||
ORG xx | Following code will be put to memory starting from location xx | |
SET xxx | Puts constant to accumulator (expands to 3 instructions) | |
RET | Jump to saved return address (cleans accumulator) |
For compatibility purposes memory cell 0 contains value 001, but instead of bootstrapping, assembled program is directly written to "memory" starting from address 1.