The Simplified Instructional Computer (also abbreviated SIC) is a hypothetical computer system introduced in System Software: An Introduction to Systems Programming, by Leland Beck.
Mnemonic | Format | Opcode | Effect | Notes |
---|---|---|---|---|
ADD m | 3/4 | 18 | A ← (A) + (m..m+2) | |
ADDF m | 3/4 | 58 | F ← (F) + (m..m+5) | F |
ADDR r1,r2 | 2 | 90 | r2 ← (r2) + (r1) | |
AND m | 3/4 | 40 | A ← (A) & (m..m+2) | |
CLEAR r1 | 2 | B4 | r1 ← 0 | |
COMP m | 3/4 | 28 | A : (m..m+2) | C |
COMPF m | 3/4 | 88 | F : (m..m+5) | CF |
COMPR r1,r2 | 2 | A0 | (r1) : (r2) | C |
DIV m | 3/4 | 24 | A : (A) / (m..m+2) | |
DIVF m | 3/4 | 64 | F : (F) / (m..m+5) | F |
DIVR r1,r2 | 2 | 9C | (r2) ← (r2) / (r1) | |
FIX | 1 | C4 | A ← (F) [convert to integer] | |
FLOAT | 1 | C0 | F ← (A) [convert to floating] | F |
HIO | 1 | F4 | Halt I/O channel number (A) | P |
J m | 3/4 | 3C | PC ← m | |
JEQ m | 3/4 | 30 | PC ← m if CC set to = | |
JGT m | 3/4 | 34 | PC ← m if CC set to > | |
JLT m | 3/4 | 38 | PC ← m if CC set to < | |
JSUB m | 3/4 | 48 | L ← (PC); PC ← m< | |
LDA m | 3/4 | 00 | A ← (m..m+2) | |
LDB m | 3/4 | 68 | B ← (m..m+2) | |
LDCH m | 3/4 | 50 | A [rightmost byte] ← (m) | |
LDF m | 3/4 | 70 | F ← (m..m+5) | F |
LDL m | 3/4 | 08 | L ← (m..m+2) | |
LDS m | 3/4 | 6C | S ← (m..m+2) | |
LDT m | 3/4 | 74 | T ← (m..m+2) | |
LDX m | 3/4 | 04 | X ← (m..m+2) | |
LPS m | 3/4 | D0 | Load processor status | P |
MUL m | 3/4 | 20 | A ← (A) * (m..m+2) | |
MULF m | 3/4 | 60 | F ← (F) * (m..m+5) | |
MULR r1,r2 | 2 | 98 | r2 ← (r2) * (r1) | |
NORM | 1 | C8 | F ← (F) [normalized] | F |
OR m | 3/4 | 44 | A ← (A) (m..m+2) | |
RD m | 3/4 | D8 | A [rightmost byte] ← data | P |
RMO r1,r2 | 2 | AC | r2 ← (r1) | |
RSUB | 3/4 | 4C | PC ← (L) | |
SHIFTL r1,n | 2 | A4 | r1 ← (r1); left circular shift | |
SHIFTR r1,n | 2 | A8 | r1 ← (r1); right shift n bits | |
SIO | 1 | F0 | Start I/O channel number (A) | P |
SSK m | 3/4 | EC | Protection key for address m | P |
STA m | 3/4 | 0C | m..m+2 ← (A) | |
STB m | 3/4 | 78 | m..m+2 ← (B) | |
STCH m | 3/4 | 54 | m ← (A) [rightmost byte] | |
STF m | 3/4 | 80 | m..m+5 ← (F) | F |
STI m | 3/4 | D4 | Interval timer value ← (m..m+2) | P |
STL m | 3/4 | 14 | m..m+2 ← (L) | |
STS m | 3/4 | 7C | m..m+2 ← (S) | |
STSW m | 3/4 | E8 | m..m+2 ← (SW) | P |
STT m | 3/4 | 84 | m..m+2 ← (T) | |
STX m | 3/4 | 10 | m..m+2 ← (X) | |
SUB m | 3/4 | 1C | A ← (A) - (m..m+2) | |
SUBF m | 3/4 | 5C | F ← (F) - (m..m+5) | F |
SUBR r1,r2 | 2 | 94 | r2 ← (r2) - (r1) | |
SVC n | 2 | B0 | Generate SVC interrupt | |
TD m | 3/4 | E0 | Test device specified by (m) | PC |
TIO | 1 | F8 | Test I/O channel number (A) | PC |
TIX m | 3/4 | 2C | X ← (X) + 1; (X) : (m..m+2) | C |
TIXR r1 | 2 | B8 | X ← (X) + 1; (X) : (r1) | C |
WD m | 3/4 | DC | Device specified by (m) ← (A) | P |
This project is licensed under the MIT License - see the LICENSE file for details