2. Simplified Instructional Computer (SIC)
• 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:
❖ SIC standard Model
❖ SIC/XE(extra equipment or expensive)
• Object programs for SIC can be properly executed on
SIX/XE which is known as upward compatibility.
4. SIC Machine Architecture/Components –
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)
5. SIC Machine Architecture/Components –
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
6. Status Word Register:
1. mode bit refers to user mode(value=0) or supervising mode(value=1). It occupies 1 bit.[0]
2. state bit refers whether process is in running state(value=0) or idle state(value=1). It also occupies 1
bit.[1]
3. id bit refers to process id(PID). It occupies 3 bits.[2-5]
4. 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]
5. X refers to unused bit. It also occupies 4 bits.[12-15]
6. ICode refers to interrupt code i.e. Interrupt Service Routine. It occupies the remaining bits.[16-23]
7. Data Format :
✔Integers are represented by 24 bits.
✔Negative numbers are represented in 2’s complement.
For example: if n = 4, then -1 ⇔ 24 -1 = (1111)2.
✔Characters are represented by 8 bit ASCII values.
✔No floating-point representation is available.
8. • Instruction Format
– There is a total 24-bit format contained by all instructions in
a simplified instructional computer. The memory size of a
simplified instructional computer is 215sup bytes.
– In this image, X is used to show the index address mode.
9. Addressing Mode:
• The SIC can only support 2 modes, which are described as follows:
• Indexed
• Direct
Mode IndicateTarget address Calculation
Direct X = 0 TA = address
Indexed X = 1 TA = address + (X)
10. 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
11. Instruction Set:
– The instruction set in SIC is described as follows:
• Arithmetic Instruction:
– SIC uses memory and register A to perform the operations. With the
help of register, the result will be stored. The arithmetic instructions
are represented with the help of ADD, MUL, SUB, DIV, etc.
For example:
ADD ALPHA ⇔ (A) ← (A) + (ALPHA)
12. Load and Store Instruction:
• It is used to store or move the data from memory to accumulator or from the
accumulator to memory. The load and store instructions are represented with
the help of LDX, STA, LDA, STX, etc.
For example:
– LDA ALPHA ⇔ (A) ← (ALPHA)
– STA ALPHA ⇔ (ALPHA) ← (A)
13. Comparison Instruction:
• It is used to compare the contents in register A and the data in memory. It
uses the CC (conditional code) of SW to save the result. The comparison
instruction is represented with the help of COMP. For example:
• COMP ALPHA ⇔ CC ← (<, +, >) of (A) ? (ALPHA)
14. Subroutine Linkage Instruction:
• It is used to show the instruction which is related to the
subroutine. The subroutine linkage instructions are represented
with the help of RSUB, JSUB. Here, RSUB will be returned
with the help of jumping the address in register L, and JSUB is
used to jump and place the return address in L.
15. Conditional Jump Instruction:
• It is first used to compare the contents of memory and accumulator. After
that, on the basis of the condition, it will perform the task. The condition
jump instructions are represented with the help of JLT, JGT, and JEQ. For
example:
• Test CC and jump accordingly
16. 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.