Add Assembler

2025-06-16 16:27:35 +01:00
parent 6f1616ffb6
commit 9228674867
+16
@@ -0,0 +1,16 @@
# Pseudo Instructions Reference
| Mnemonic | Args | Description |
|----------|------|-------------|
| DB | name, u8[..] | Takes a comma separated list of bytes and inserts them into the binary at a location addressable by 'name' |
| DH | name, u16[..] | Takes a comma separated list of 16-bit values and inserts them into the binary at a location addressable by 'name' |
| DW | name, u32[..] | Takes a comma separated list of 32-bit values and inserts them into the binary at a location addressable by 'name' |
| RESB | name, size | Reserves space for 'size' 8-bit values at a location addressable by 'name' |
| RESH | name, size | Reserves space for 'size' 16-bit values at a location addressable by 'name' |
| RESW | name, size | Reserves space for 'size' 32-bit values at a location addressable by 'name' |
| PUSH | reg | Pushes the value in 'reg' to the stack. Equivalent to: `INC SPR` then `STW register, SPR` |
| POP | reg | Pops the top value in the stack to 'reg'. Equivalent to: `LDW SPR, register` then `DEC SPR` |
| LDB | name, reg | Loads the 8-bit value at the address referenced by name into reg. Equivalent to: `LLI varname, reg`, `LUI varname, reg`, `LDB reg, reg` |
| LDH | name, reg | Loads the top 16-bits of the value at the address referenced by name into reg. Equivalent to: `LLI varname, reg`, `LUI varname, reg`, `LDH (0)reg, reg` |
| LDW | name, reg | Loads the 32-bit value at the address referenced by name into reg. Equivalent to: `LLI varname, reg`, `LUI varname, reg`, `LDW reg, reg` |
| LWI | name, reg | Loads the address of 'name' into reg. Equivalent to: `LLI name, reg`, `LUI name, reg` |