A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 21-23 | 18-20 | 15-17 | 12-14 | 9-11 | 6-8 | 3-5 | 0-2 | Mnemonic | Usage | Description | Notes | ||||||||||||||
2 | imm | r0 | rd | 0 | 0 | LOAD | load rd, imm(r0) | Loads data from memory into a register. | rd = *(r0 + imm) | |||||||||||||||||
3 | imm | r1 | r0 | 0 | 1 | STORE | store r0, imm(r1) | Stores data from a register into memory. | Acts like load. | |||||||||||||||||
4 | imm | r0 | rd | 0 | 0 | 2 | ADD IMM | add rd, r0, imm | Adds a register and an immediate. | |||||||||||||||||
5 | imm | r0 | rd | 1 | 0 | 2 | SUB IMM | sub rd, r0, imm | Subtracts a register and an immediate. | |||||||||||||||||
6 | 0 | 0 | 1 | r0 | rd | 2 | 0 | 2 | OSR IMM | osr rd, r0 | Performs an right octit shift on a register. | Immediate is set to 001 for forwards compatibility for when I get around to makin a barrel shifter in V2. | ||||||||||||||
7 | r1 | r0 | rd | 0 | 0 | 3 | ADD REG | add rd, r0, r1 | Adds two registers together. | |||||||||||||||||
8 | r1 | r0 | rd | 1 | 0 | 3 | SUB REG | sub rd, r0, r1 | Subtracts two registers together. | |||||||||||||||||
9 | label | rd | 0 | 4 | JAL | jal rd, label | Jumps to the address given and saves the old program counter in a register. | Immediate is an offset from the current program counter. | ||||||||||||||||||
10 | r0 | rd | 0 | 5 | JALR | jal rd, r0 | Jumps to an address in a register and saves the old program counter in a register. | |||||||||||||||||||
11 | label | r1 | r0 | 0 | 0 | 6 | BLT | blt r0, r1, label | Branches to an address if r0 < r1 (signed). | Immediate is an offset from the current program counter. | ||||||||||||||||
12 | label | r1 | r0 | 1 | 0 | 6 | BLTU | bltu r0, r1, label | Branches to an address if r0 < r1 (unsigned). | ^ | ||||||||||||||||
13 | label | r1 | r0 | 2 | 0 | 6 | BEQ | beq r0, r1, label | Branches to an address if r0 == r1. | ^ | ||||||||||||||||
14 | label | r1 | r0 | 3 | 0 | 6 | BNE | bne r0, r1, label | Branches to an address if r0 != r1. | ^ | ||||||||||||||||
15 | imm | rd | 0 | 0 | 7 | LLI | lli rd, imm | Loads the immediate into the lower 12 bits of a register, sign extended. | ||||||||||||||||||
16 | imm | rd | 1 | 0 | 7 | AUI | aui rd, imm | Adds the immediate into the upper 12 bits of a register. | ||||||||||||||||||
17 | All immediates are sign extended. | |||||||||||||||||||||||||
18 | mr | r0 | 1 | 0 | MLOAD | mload mr, r0 | Loads a register into a machine register. | |||||||||||||||||||
19 | mr | rd | 1 | 1 | MSTORE | mstore rd, mr | Stores a machine register into a register. | |||||||||||||||||||
20 | mr | rd | 1 | 2 | MSWAP | mswap mr, rd | Swaps the contents of a machine register and a register. | |||||||||||||||||||
21 | 1 | 3 | SYSCALL | syscall | Performs a syscall in user mode to machine mode. | |||||||||||||||||||||
22 | 1 | 4 | MRET | mret | Performs a return from an interrupt, updating the current mode and exception enables. | |||||||||||||||||||||
23 | 1 | 5 | ||||||||||||||||||||||||
24 | 1 | 6 | ||||||||||||||||||||||||
25 | 1 | 7 | ||||||||||||||||||||||||
26 | ||||||||||||||||||||||||||
27 | ||||||||||||||||||||||||||
28 | ||||||||||||||||||||||||||
29 | ||||||||||||||||||||||||||
30 | ||||||||||||||||||||||||||
31 | ||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||
33 | ||||||||||||||||||||||||||
34 | ||||||||||||||||||||||||||
35 | ||||||||||||||||||||||||||
36 | ||||||||||||||||||||||||||
37 | ||||||||||||||||||||||||||
38 | ||||||||||||||||||||||||||
39 | ||||||||||||||||||||||||||
40 | ||||||||||||||||||||||||||
41 | ||||||||||||||||||||||||||
42 | ||||||||||||||||||||||||||
43 | ||||||||||||||||||||||||||
44 | ||||||||||||||||||||||||||
45 | ||||||||||||||||||||||||||
46 | ||||||||||||||||||||||||||
47 | ||||||||||||||||||||||||||
48 | ||||||||||||||||||||||||||
49 | ||||||||||||||||||||||||||
50 | ||||||||||||||||||||||||||
51 | ||||||||||||||||||||||||||
52 | ||||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||
55 | ||||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 |