Simplified Instructional Computer
![]() | It has been suggested that [[:<SIC/XE>|<SIC/XE>]] be merged into this article. ([[Talk:<Simplified_Instructional_Computer>#Merger proposal|Discuss]]) Proposed since March 2013. |
The Simplified Instructional Computer (also abbreviated SIC) is a hypothetical computer, that is used as a base to explain the operation of a real computer. It was stated that most real microprocessors have a complex instruction set and many subtleties to increase efficiency, that can be a distraction for students that are studying the essential and universal aspects of a microprocessor (that are common to different designs). Hence this hypothetical computer is used to explain all the basic concepts of microprocessor design even though it is impossible to cover every aspect. The architecture of the SIC uses 3 byte integers, 5 registers and can access 215=32768 bytes of memory.
The five registers
- A register (accumulator): This is the three-byte register that is used for arithmetic operations.
- X register (index): The index register can operate in two modes, direct and indexed.
- SW register (status word)
- PC register (program counter)it contains the address of next instruction to be fetched for execution.
- L register (linkage): This register is used for subroutine jumps.
Integer values are stored in 2's complement format.The ASCII encoding scheme is used for characters. The SIC has two versions; a standard version SIC, and an extended version SIC/XE. The extended version has floating point numbers. The versions have been designed to be upward compatible - that is an object program for the standard SIC machine will also execute properly on a SIC/XE system.
Addressing Modes for SIC/XE
. Rule 1: e = 0 : format 3 e = 1 : format 4
-- format 3: b = 1, p = 0 (base relative) b = 0, p = 1 (pc relative) b = 0, p = 0 (direct addressing)
-- format 4: b = 0, p = 0 (direct addressing)
x = 1 (index)
i = 1, n = 0 (immediate) i = 0, n = 1 (indirect) i = 0, n = 0 (SIC) i = 1, n = 1 (SIC/XE for SIC compatible)
. Rule 2: i = 0, n =0 (SIC) b, p, e is part of the address.
Sample program
Given below is a program illustrating data movement in SIC.
LDA FIVE
STA ALPHA
LDCH CHARZ
STCH C1
ALPHA RESW 1
FIVE WORD 5
CHARZ BYTE C'Z'
C1 RESB 1
Simulators
The number of simulators available for SIC are fewer compared to those available for other architectures like MIPS. SOme of the simulators are listed below.
- An assembler and a simulator written by the author, Leland in Pascal is available on his educational home page at ftp://rohan.sdsu.edu/faculty/beck
- SIC/XE Simulator And Assembler downloadable at https://sites.google.com/site/sarimohsultan/Projects/sic-xe-simulator-and-assembler
See also
References
- Beck, Leland (1996), System Software: An Introduction to Systems Programming (3 ed.), Addison-Wesley, ISBN 0-201-42300-6
External links
- SICvm A Virtual Machine based on a Simplified Instructional Computer (SIC)