Simplified Instructional Computer (SIC) Instruction Set Architecture
Explore the instruction set architecture of the Simplified Instructional Computer (SIC), a hypothetical computer used for educational purposes. This guide details the various instructions, their formats, and functionalities, providing a foundational understanding of computer instruction sets.
Simplified Instructional Computer (SIC) Instruction Set
The Simplified Instructional Computer (SIC) is a hypothetical computer architecture used to illustrate fundamental computer hardware concepts. This section describes the SIC instruction set.
SIC Instruction Set
The SIC architecture uses 8-bit bytes. Instructions are described below. Note that the instructions described here are for the basic SIC architecture; the enhanced SIC/XE architecture includes additional instructions.
Instruction | Mnemonic | Opcode (hex) | Description | Syntax |
---|---|---|---|---|
ADD | ADD | 18 | Add memory operand to register A | A = A + M |
AND | AND | 40 | Logical AND of register A and memory operand | A = A AND M |
COMP | COMP | 28 | Compare register A with memory operand (sets condition codes) | Compares A and M |
DIV | DIV | 24 | Divide register A by memory operand | A = A / M |
JUMP | J | 3C | Jump to address in memory operand | PC = M |
Jump if Equal | JEQ | 30 | Jump to address in memory operand if condition codes indicate equality | If CC =, PC = M |
Jump if Greater Than | JGT | 34 | Jump to address in memory operand if condition codes indicate greater than | If CC >, PC = M |
Jump if Less Than | JLT | 38 | Jump to address in memory operand if condition codes indicate less than | If CC <, PC = M |
Jump and Store | JSUB | 48 | Jump to subroutine; store return address in register L | L = PC; PC = M |
Load Accumulator | LDA | 00 | Load memory operand into accumulator (register A) | A = M |
Load Accumulator Byte | LDCH | 50 | Load a byte from memory into the accumulator | A[RMB] = M[RMB] |
Load Register L | LDL | 08 | Load memory operand into register L | L = M |
Load Doubleword Indexed | LDX | 04 | Load a doubleword into register X | X = M |
Multiply | MUL | 20 | Multiply register A by memory operand | A = A * M |
OR | OR | 44 | Logical OR of register A and memory operand | A = A OR M |
Read Direct | RD | D8 | Read a byte from a device into register A | A[RMB] = data specified by M[RMB] |
Return from Subroutine | RSUB | 4C | Return from subroutine using address in register L | PC = L |
Store Accumulator | STA | 0C | Store the contents of the accumulator into memory | M = A |
Store Accumulator Byte | STCH | 54 | Store a byte from the accumulator into memory | M[RMB] = A[RMB] |
Store Register L | STL | 14 | Store the contents of register L into memory | M = L |
Store Register X | STX | 10 | Store the contents of register X into memory | M = X |
Subtract | SUB | 1C | Subtract memory operand from register A | A = A - M |
Test Device | TD | E0 | Test device status (sets condition codes) | Tests device status |
Test Index Register X | TIX | 2C | Test index register X against memory operand (sets condition codes) | X = X + 1; Compares X and M |
Write Direct | WD | DC | Write a byte from register A to a device | Device specified by M[RMB] = A[RMB] |
Conclusion
The SIC instruction set provides a simplified but illustrative model of a computer's instruction set architecture. Understanding these instructions is fundamental to comprehending how a computer executes programs at a low level.