diff options
author | WlodekM <[email protected]> | 2025-03-31 19:27:55 +0300 |
---|---|---|
committer | WlodekM <[email protected]> | 2025-03-31 19:27:55 +0300 |
commit | ef4e8c20719822eebd6318a878cc37902c2b85a5 (patch) | |
tree | c80cc67921c8b511f5a50ec68834b5b28deb05a1 /shit-instruction-set-2 |
pc thing
Diffstat (limited to 'shit-instruction-set-2')
-rw-r--r-- | shit-instruction-set-2 | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/shit-instruction-set-2 b/shit-instruction-set-2 new file mode 100644 index 0000000..08864fb --- /dev/null +++ b/shit-instruction-set-2 @@ -0,0 +1,62 @@ +# the SHIT PC(R) INSTRUCTION SET(TM) 2 # + +> format: +> +> OPCODE[ARGS] -> (OUT/VOID) + +## Math ## +``` +ADD[REG1, REG2, REG3] -> (REG1) Add +SUB[REG1, REG2, REG3] -> (REG1) Subtract +MUL[REG1, REG2, REG3] -> (REG1) Multiply +DIV[REG1, REG2, REG3] -> (REG1) Divide +MOD[REG1, REG2, REG3] -> (REG1) Modulo +SHL[REG1, REG2] -> (REG1) Shift left +SHR[REG1, REG2] -> (REG1) Shift right +CMP[REG1, REG2] -> (VOID) Compare +CMR[REG1, REG2, REG3] -> (REG1) Compare Register +AND[REG1, REG2, REG3] -> (REG1) Logical AND +OR[REG1, REG2, REG3] -> (REG1) Logical OR +XOR[REG1, REG2, REG3] -> (REG1) Logical XOR +NOT[REG1, REG2] -> (REG1) Logical NOT +``` +## Registers ## +``` +MOV[REG, VAL] -> (REG) Move +SWP[REG1, REG2] -> (REG1, REG2) Swap register +``` +## Memory ## +``` +LD[REG1, REG2] -> (REG1) Load from address +STR[REG1, REG2] -> ($REG1) Set address +``` +## Jumping & stuff ## +``` +JMP[REG] -> (VOID) Jump to address +JNZ[REG] -> (VOID) Jump if flag is non-zero +JZ[REG] -> (VOID) Jump if flag is zero +JMR[REG] -> (VOID) Jump with return +RET[] -> (VOID) Return +``` +## Stack ## +> [!NOTE] +> The stack limit is 256, and it is only enabled once $7000h is set to a stack address +> +> $7001h has the pointer +> +> Keep in mind that the stack pointer goes **down** from that address +``` +PUSH[REG] -> (VOID) Push to stack +POP[REG] -> (REG) Pop from stack +``` +## System ## +``` +HALT[] -> (VOID) Halt the processor +``` + +#### extra #### + +this might get replaced with a thing yin the ram in the future possibly +``` +SYS[TYPE, ...] -> (VOID) Systemcall +``` \ No newline at end of file |