Open In App
Related Articles

Simplified Instructional Computer (SIC)

Like Article
Save Article
Report issue

Simplified Instructional Computer (SIC) is a hypothetical computer that has hardware features that are often found in real machines. There are two versions of this machine: 

  1. SIC standard Model
  2. SIC/XE(extra equipment or expensive)

Object programs for SIC can be properly executed on SIC/XE which is known as upward compatibility. 

SIC Machine Architecture/Components – 

1. Memory – 

  • Memory is byte-addressable that is words are addressed by the location of their lowest-numbered byte.
  • There are 2^15 bytes in computer memory (1 byte = 8 bits) 
    3 consecutive byte = 1 word (24 bits = 1 word)

2. Registers – 

There are 5 registers in SIC. Every register has an address associated with it known as a registration number. The size of each register is 3 bytes. On basis of register size, integer size is dependent. 
I. A(Accumulator-0): It is used for mathematical operations. 
II. X(Index Register-1): It is used for addressing. 
III. L(Linkage Register-2): It stores the return address of the instruction in case of subroutines. 
IV. PC(Program Counter-8): It holds the address of the next instruction to be executed. 
V. SW(Status Word-9): It contains a variety of information 

Status Word Register: 


  • mode bit refers to user mode(value=0) or supervising mode(value=1). It occupies 1 bit.[0]
  • state bit refers whether process is in running state(value=0) or idle state(value=1). It also occupies 1 bit.[1]
  • id bit refers to process id(PID). It occupies 3 bits.[2-5]
  • CC bit refers to condition code i.e. It tells whether the device is ready or not. It occupies 2 bits.[6-7] 
    Mask bit refers to interrupt mask. It occupies 4 bits.[8-11]
  • X refers to unused bit. It also occupies 4 bits.[12-15]
  • ICode refers to interrupt code i.e. Interrupt Service Routine. It occupies the remaining bits.[16-23]

3. Data Format – 

  • Integers are represented by 24 bits.
  • Negative numbers are represented in 2’s complement.
  • Characters are represented by 8 bit ASCII values.
  • No floating-point representation is available.

4. Instruction Format – 
All instructions in SIC have a 24-bit format. 


  • If x=0 it means direct addressing mode.
  • If x=1 it means indexed addressing mode.

5. Instruction Set – 

  • Load And Store Instructions: To move or store data from accumulator to memory or vice-versa. For example LDA, STA, LDX, STX, etc.
  • Comparison Instructions: Used to compare data in memory by contents in accumulator. For example COMP data.
  • Arithmetic Instructions: Used to perform operations on accumulator and memory and store results in the accumulator. For example ADD, SUB, MUL, DIV, etc.
  • Conditional Jump: compare the contents of accumulator and memory and performs task based on conditions. For example JLT, JEQ, JGT
  • Subroutine Linkage: Instructions related to subroutines. For example JSUB, RSUB

6. Input and Output – 
It is performed by transferring 1 byte at a time from or to the rightmost 8 bits of the accumulator. Each device has an 8-bit unique code. 
There are 3 I/O instructions: 

  • Test Device (TD) tests whether the device is ready or not. Condition code in Status Word Register is used for this purpose. If cc is < then the device is ready otherwise the device is busy.
  • Read data(RD) reads a byte from the device and stores it in register A.
  • Write data(WD) writes a byte from register A to the device.

 Here are some applications of SIC:

  1. Computer Architecture education: The SIC is an excellent tool for teaching computer architecture and organization, as it provides a simplified model of a computer system. By studying the SIC’s architecture, students can learn about the basic components of a computer system, such as the CPU, memory, and I/O devices.
  2. Assembly language programming education: The SIC’s instruction set is simple and easy to understand, making it a useful tool for teaching assembly language programming. Students can write and execute assembly language programs on the SIC, learning about the various instructions, addressing modes, and program flow control.
  3. Compiler development: The SIC can be used as a platform for developing compilers for high-level programming languages. Compiler developers can use the SIC’s instruction set and memory organization as a reference for generating assembly language code from high-level code.
  4. Operating system development: The SIC’s simple architecture can be used as a basis for teaching operating system development. Students can learn about the basic features of an operating system, such as process management, memory management, and I/O management, by implementing them on the SIC.
  5. Emulation and simulation: The SIC can be used for emulation and simulation purposes, allowing software developers to test their programs on a simulated computer system before deploying them on real hardware.

Last Updated : 04 Apr, 2023
Like Article
Save Article
Share your thoughts in the comments
Similar Reads