Chapter 1 – Background
1.1
Introduction
System software consists of a variety of programs that support the operation of a computer – Text editor,
Compiler, Loader or Linker, Debugger, Assembler, Marco processor, Operating system, etc.
The major topics of this course – assemblers, loaders and linkers, macro processors, compilers, and operating systems. The other topics including database management systems, text editors, and interactive debugging systems are mentioned in Chapter 7.
1.2
System Software and Machine Architecture
One characteristic in which most system software differs from applications software is machine dependency.
System programs are intended to support the operation and use of the computer itself, rather than any particular application. For this reason, they are usually related to the architecture of the machine on which they are to run.
Because most system software is machine-dependent, we must include real machines and real piece of software in our study. We will present the fundamental functions of each piece of software based on a Simplified Instructional
Computer (SIC) – a hypothetical computer.
1.3
The Simplified Instructional Computer (SIC)
In this section, we describe the architecture of SIC.
SIC comes in two versions: the standard model and an
Written by WWF
1
System Software – An Introduction to Systems Programming, 3rd ed., Leland L. Beck
XE version (XE stands for “extra equipment” or “extra expensive”). 1.3.1 SIC Machine Architecture
Memory
Memory consists of 8-bit bytes; any 3 consecutive bytes form a word (24 bits).
All addresses on SIC are byte addresses; words are addressed by the location of their lowest numbered byte.
There are a total of 32,768 (215) bytes in SIC memory.
Register
There are five registers, all of which have special uses.
Each register is 24 bits in length.
See table at