Skip to content

🧠 Instruction Set

Version: 0.5.0
Total Instructions Supported: 73
Operand Size: Up to 2 operands, each of 64-bits


🧩 Operand Types

Instructions in SASM accept a variety of operand types:

Immediate Values

0, 1, 2, 3

Constants

M, N, O, P

Registers

L0, L1, L2, L3


🗂️ Register Dereferencing

SASM registers are identified by unique IDs. Each register can be accessed either as a reference or as a value using compile-time functions.

ref(L1)  ; reference to register L1
val(L1)  ; value stored in register L1

These are compile-time functions that tell the assembler how to interpret operands.


Instruction Set - Quick Reference

OPCODE INST
13 ADDI
14 SUBI
15 MULI
16 DIVI
17 MODI
OPCODE INST
18 ADDU
19 SUBU
20 MULU
21 DIVU
22 MODU
OPCODE INST
23 ADDF
24 SUBF
25 MULF
26 DIVF
OPCODE INST
35 EQI
36 GEI
37 GTI
38 LEI
39 LTI
40 NEI
OPCODE INST
41 EQU
42 GEU
43 GTU
44 LEU
45 LTU
46 NEU
OPCODE INST
47 EQF
48 GEF
49 GTF
50 LEF
51 LTF
52 NEF
OPCODE INST
57 I2F
58 U2F
59 F2I
60 F2U
OPCODE INST
61 READ1U
62 READ2U
63 READ4U
64 READ8U
65 READ1I
66 READ2I
67 READ4I
68 READ8I
69 WRITE1
70 WRITE2
71 WRITE4
72 WRITE8
OPCODE INST
1 INVOK
2 RETVL
8 CALL
9 LOOP
27 JMPU
28 JMPC
33 RET
OPCODE INST
34 NOT
53 ORB
54 XOR
55 SHR
56 SHL
29 ANDB
30 NOTB
OPCODE INST
0 DONOP
3 PUSHR
4 SPOPR
5 SHUTS
6 SETR
7 GETR
10 PUSH
11 SPOP
12 SWAP
31 COPY
32 DUPS