0x00 |
HLT |
|
|
Halt |
halts the CPU |
0x01 |
ADD |
value 1 |
value 2 |
Add |
ACU = value 1 + value 2 |
0x02 |
SUB |
value 1 |
value 2 |
Subtract |
ACU = value 1 - value 2 |
0x03 |
MUL |
value 1 |
value 2 |
Multiply |
ACU = value 1 * value 2 |
0x04 |
DIV |
value 1 |
value 2 |
Divide |
ACU = value 1 / value 2 |
0x05 |
LBS |
value |
amount |
Left Bit-Shift |
ACU = value << amount |
0x06 |
RBS |
value |
amount |
Right Bit-Shift |
ACU = value << amount |
0x07 |
BAN |
value 1 |
value 2 |
Bitwise And |
ACU = value 1 & value 2 |
0x08 |
BOR |
value 1 |
value 2 |
Bitwise Or |
ACU = value 1 \ |
0x09 |
BXO |
value 1 |
value 2 |
Bitwise Exclusive Or |
ACU = value 1 ^ value 2 |
0x0A |
BNO |
value |
|
Bitwise Not |
ACU = ~ value |
0x0B |
PUS |
value |
|
Push |
pushes value onto the stack |
0x0C |
POP |
|
|
Pop |
pops a value from the stack and stores it in ACU |
0x0D |
JMP |
address |
|
Jump |
jumps to address |
0x0E |
JEQ |
address |
value |
Jump If Equal |
jumps to address, if value is equal to ACU |
0x0F |
JNZ |
address |
value |
Jump If Not Zero |
jumps to address, if value is not zero |
0x10 |
CAL |
address |
|
Call |
pushes PC + 1 to the stack, then jumps to address |
0x11 |
RET |
|
|
Return |
pops value from stack and jumps to it |
0x12 |
REG |
int type |
address |
Register Interrupt |
registers int type to address |
0x13 |
INT |
int type |
|
Interrupt |
interrupts as int type |
0x14 |
INP |
|
|
Input |
inputs a character into ACU |
0x15 |
OUT |
value |
|
Output |
outputs value |
0x16 |
DIN |
location |
|
Disk In |
reads value from disk at location to ACU |
0x17 |
DOT |
location |
value |
Disk Out |
writes value to disk at location |
0x18 |
MOV |
value 1 |
value 2 |
Move |
move value 2 to value 1 |