OpCode | Instruction | Function |
---|---|---|
0 | LOAD I | Y ⇦ Z |
1 | LOAD | Y ⇦ M(Z) |
2 | STORE I | M(Z) ⇦ Y |
3 | STORE | A ⇦ M(Y), Z ⇦ M(A) |
4 | ADD I | Y ⇦ Y + Z |
5 | ADD | Y ⇦ Y + M(Z) |
6 | SUB I | Y ⇦ Y - Z |
7 | SUB | Y ⇦ Y - M(Z) |
8 | JUMP | PC ⇦ Z |
9 | JUMP I (indirect) | PC ⇦ M(Z) |
10 | JUMP II (ind.-ind.) | A ⇦ M(Z), PC ⇦ M(A) |
11 | DATA IN | Y ⇦ external data |
12 | HALT | Stop running |
13 | SKIPNEG | If Y is negative, PC ⇦ PC + 1 |
14 | STROBE | Generate STROBE pulse |
15 | NOOP | No Operation |
16 | MUL I | Y ⇦ Y * Z |
17 | MUL | Y ⇦ Y * M(Z) |
18 | DIV I | Y ⇦ Y / Z |
19 | DIV | Y ⇦ Y / M(Z) |
20 | MOD I | Y ⇦ Y % Z |
21 | MOD | Y ⇦ Y % M(Z) |
22 | LOAD A I | A ⇦ Z |
23 | LOAD A | A ⇦ M(Z) |
24 | JUMP EQ I | If Y = A, PC ⇦ Z |
25 | JUMP GT I | If Y > A, PC ⇦ Z |
26 | JUMP LT I | If Y < A, PC ⇦ Z |
27 | JUMP NEQ I | If Y ≠ A, PC ⇦ Z |
28 | JUMP GTE I | If Y ≥ A, PC ⇦ Z |
29 | JUMP LTE I | If Y ≤ A, PC ⇦ Z |
30 | NEG Y | Y ⇦ -Y |
31 | STORE A I | M(Z) ⇦ A |
32 | LOAD A IND | A ⇦ M(Y) |
33 | AND I | Y ⇦ Y & Z |
34 | AND | Y ⇦ Y & M(Z) |
35 | OR I | Y ⇦ Y | Z |
36 | OR | Y ⇦ Y | M(Z) |
37 | NOT | Y ⇦ ~Y |
38 | XOR I | Y ⇦ Y ^ Z |
39 | XOR | Y ⇦ Y ^ M(Z) |
40 | JUMP EQ (indirect) | If Y = A, PC ⇦ M(Z) |
41 | JUMP GT (indirect) | If Y > A, PC ⇦ M(Z) |
42 | JUMP LT (indirect) | If Y < A, PC ⇦ M(Z) |
43 | JUMP NEQ (indirect) | If Y ≠ A, PC ⇦ M(Z) |
44 | JUMP GTE (indirect) | If Y ≥ A, PC ⇦ M(Z) |
45 | JUMP LTE (indirect) | If Y ≤ A, PC ⇦ M(Z) |
46 | STORE A IND | M(Y) ⇦ A |
47 | F ADD A | Y ⇦ Y + A |
48 | F ADD | Y ⇦ Y + M(Z) |
49 | F SUB A | Y ⇦ Y - A |
50 | F SUB | Y ⇦ Y - M(Z) |
51 | F MUL A | Y ⇦ Y * A |
52 | F MUL | Y ⇦ Y * M(Z) |
53 | F DIV A | Y ⇦ Y / A |
54 | F DIV | Y ⇦ Y / M(Z) |
55 | F MOD A | Y ⇦ Y % A |
56 | F MOD | Y ⇦ Y % M(Z) |
57 | F NEG Y | Y ⇦ -Y |
58 | F SQRT Y | Y ⇦ sqrt(Y) |
59 | F SQRT | Y ⇦ sqrt(M(Z)) |
60 | F SIN Y | Y ⇦ sin(Y) |
61 | F SIN | Y ⇦ sin(M(Z)) |
62 | F COS Y | Y ⇦ cos(Y) |
63 | F COS | Y ⇦ cos(M(Z)) |
64 | F TAN Y | Y ⇦ tan(Y) |
65 | F TAN | Y ⇦ tan(M(Z)) |
66 | F ASIN Y | Y ⇦ asin(Y) |
67 | F ASIN | Y ⇦ asin(M(Z)) |
68 | F ACOS Y | Y ⇦ acos(Y) |
69 | F ACOS | Y ⇦ acos(M(Z)) |
70 | F ATAN Y | Y ⇦ atan(Y) |
71 | F ATAN | Y ⇦ atan(M(Z)) |
72 | F ATAN2 A | Y ⇦ atan2(Y,A) |
73 | F ATAN2 | Y ⇦ atan2(Y,M(Z)) |
74 | F POW A | Y ⇦ pow(Y,A) |
75 | F POW | Y ⇦ pow(Y,M(Z)) |
76 | F LN Y | Y ⇦ ln(Y) |
77 | F LN | Y ⇦ ln(M(Z)) |
78 | F LOG Y | Y ⇦ log(Y) |
79 | F LOG | Y ⇦ log(M(Z)) |
80 | F ABS Y | Y ⇦ abs(Y) |
81 | F ABS | Y ⇦ abs(M(Z)) |
82 | F EXP Y | Y ⇦ exp(Y) |
83 | F EXP | Y ⇦ exp(M(Z)) |
84 | FP TO INT Y | Y ⇦ (int)(Y) |
85 | FP TO INT | Y ⇦ (int)(M(Z)) |
86 | INT TO FP Y | Y ⇦ (float)(Y) |
87 | INT TO FP | Y ⇦ (float)(M(Z)) |
88 | F JUMP EQ I | If Y = A, PC ⇦ Z |
89 | F JUMP GT I | If Y > A, PC ⇦ Z |
90 | F JUMP LT I | If Y < A, PC ⇦ Z |
91 | F JUMP NEQ I | If Y ≠ A, PC ⇦ Z |
92 | F JUMP GTE I | If Y ≥ A, PC ⇦ Z |
93 | F JUMP LTE I | If Y ≤ A, PC ⇦ Z |
94 | F JUMP EQ (indirect) | If Y = A, PC ⇦ M(Z) |
95 | F JUMP GT (indirect) | If Y > A, PC ⇦ M(Z) |
96 | F JUMP LT (indirect) | If Y < A, PC ⇦ M(Z) |
97 | F JUMP NEQ (indirect) | If Y ≠ A, PC ⇦ M(Z) |
98 | F JUMP GTE (indirect) | If Y ≥ A, PC ⇦ M(Z) |
99 | F JUMP LTE (indirect) | If Y ≤ A, PC ⇦ M(Z) |
100 | CALL | Stack ⇦ PC, PC ⇦ Z |
101 | RETURN | PC ⇦ Stack |
102 | PUSH | UserStack ⇦ Y |
103 | POP | Y ⇦ UserStack |
104 | S READ | Y ⇦ UserStack(Z) |