This project was made for educational reasons.
The initial heap size is 16kb which allows for memory addresses
to be 4 hexadecimal digits long.
Register Name |
Alias |
Size |
Description |
Accumulator A |
AA |
8bit |
Accumulator A |
Accumulator B |
AB |
8bit |
Accumulator A |
Register C |
C |
16bit |
General purpose |
Index X |
IX |
8bit |
General purpose index register |
Index Y |
IY |
8bit |
General purpose index register |
Instruction Pointer |
IP |
16bit |
Next instruction address to be executed |
Stack pointer |
SP |
16bit |
Next empty pointer on the call stack |
Address |
Name |
Description |
0xF000 - 0xFF00 |
Call stack |
3840 bytes reserved for the call stack. |
Type |
Size |
Description |
MEM_ADDR |
16bits |
Address in memory |
Generic instructions are regular instructions that tell the
machine to perform an operation.
Generic instructions range from 0x00 <= X < 0xF0
.
Code |
Name |
Description |
Argument(s) |
0x00 |
Terminate |
|
|
Meta instructions or flags are special instructions that
instruct the machine to change the way it operates.
Meta instructions range from 0xF0 <= X <= 0xFF
.
Code |
Name |
Description |
Argument(s) |
0xF0 |
INITIAL_INSTRUCTION_POINTER |
Instructs the loader at which address to put the rest of the instruction set. This can only be used to head an instruction set. The stack pointer is automatically adjusted. |
MEM_ADDR |