.gitignore | ||
LICENSE | ||
README.md |
r16
number | instruction | argument 1 | argument 2 | explanation |
---|---|---|---|---|
0x00 | HLT | halts the CPU | ||
0x01 | ADD | value 1 | value 2 | ACU = value 1 + value 2 |
0x02 | SUB | value 1 | value 2 | ACU = value 1 - value 2 |
0x03 | MUL | value 1 | value 2 | ACU = value 1 * value 2 |
0x04 | DIV | value 1 | value 2 | ACU = value 1 / value 2 |
0x05 | LBS | value | amount | ACU = value << amount |
0x06 | RBS | value | amount | ACU = value << amount |
0x07 | BAN | value 1 | value 2 | ACU = value 1 & value 2 |
0x08 | BOR | value 1 | value 2 | ACU = value 1 | value 2 |
0x09 | BXO | value 1 | value 2 | ACU = value 1 ^ value 2 |
0x0A | BNO | value | ACU = ~ value | |
0x0B | PUS | value | pushes value onto the stack | |
0x0C | POP | pops a value from the stack and stores it in ACU | ||
0x0D | JMP | address | jumps to address | |
0x0E | JEQ | address | value | jumps to address, if value is equal to ACU |
0x0F | JNZ | address | value | jumps to address, if value is not zero |
0x10 | CAL | address | pushes PC + 1 to the stack, then jumps to address | |
0x11 | RET | pops value from stack and jumps to it | ||
0x12 | REG | int type | address | registers int type to address |
0x13 | INT | int type | interrupts as int type | |
0x14 | INP | inputs a character into ACU | ||
0x15 | OUT | value | outputs value | |
0x16 | DIN | location | reads value from disk at location to ACU | |
0x17 | DOT | location | value | writes value to disk at location |
Number | Register | Usage |
---|---|---|
0x0 | R0 | general usage |
0x1 | R1 | general usage |
0x2 | R2 | general usage |
0x3 | R3 | general usage |
0x4 | ACU | Accumulator |
0x5 | PC | Program Counter |
0x6 | SP | Stack Pointer |
Area of RAM | reserved | usage |
---|---|---|
00000 - 00064 | YES | system header |
00064 - 65263 | NO | executable |
65263 - 65519 | YES | interupt pointers |
65519 - 65535 | YES | stack |
BYTE 1 | BYTE 2 | BYTE 2 | ||
---|---|---|---|---|
OPCODE | arg 1 info | arg 2 info | ARGUMENT 1 | ARGUMENT 2 |
bit 0 - 12 | bit 12 - 14 | bit 14 - 16 | bit 0 - 16 | bit 0 - 16 |
State | Argument Interpretation |
---|---|
0x0 | Value in argument |
0x1 | Value in register |
0x2 | Value in RAM |
0x3 | Value in RAM, at address stored in register |