Leland L. Beck, System Software: An Introduction To Systems Programming (3rd), Addison-Wesley, 1997
Leland L. Beck, System Software: An Introduction To Systems Programming (3rd), Addison-Wesley, 1997
RISC Machines
Reduced Instruction Set Computers
2
System Software vs. Machine
Architecture
Machine dependent
The most important characteristic in which most system software
differ from application software
e.g. assembler translate mnemonic instructions into machine code
e.g. compilers must generate machine language code
Machine architecture differs in:
Machine code
Instruction formats
Addressing mode
Registers
Machine independent
There are aspects of system software that do not directly depend upon
the type of computing system
e.g. general design and logic of an assembler
e.g. code optimization techniques
3
System Software and
Architecture
System software will be discussed:
The basic functions
Machine-dependent functions
Machine-independent functions
Design options (single-pass vs. multi-pass)
Examples of implementations
4
The Simplified Instructional Computer
(SIC)
SIC is a hypothetical computer that includes the hardware
features most often found on real machines.
Why the simplified instructional computer
To avoid various unique features and idiosyncrasies of a particular
machine.
To focus on central, fundamental, and commonly encountered
features and concepts.
Two versions of SIC
standard model (SIC)
extension version (SIC/XE)
Upward compatible
Programs for SIC can run on SIC/XE
5
SIC Machine Architecture
(1/5)
Memory
215 (32,768) bytes in the computer memory
3 consecutive bytes form a word
8-bit bytes
Registers
6
SIC Machine Architecture
(2/5)
Data Formats
Integers are stored as 24-bit binary numbers; 2’s complement
representation is used for negative values
No floating-point hardware
Instruction Formats
7
() are used to indicate the content of a register.
SIC Machine Architecture
(3/5)
Instruction Set
load and store: LDA, LDX, STA, STX, etc.
integer arithmetic operations: ADD, SUB, MUL, DIV, etc.
All arithmetic operations involve register A and a word in
memory, with the result being left in the register
comparison: COMP
COMP compares the value in register A with a word in memory,
this instruction sets a condition code CC to indicate the result
8
SIC Machine Architecture
(4/5)
Instruction Set
conditional jump instructions: JLT, JEQ, JGT
these instructions test the setting of CC and jump accordingly
subroutine linkage: JSUB, RSUB
JSUB jumps to the subroutine, placing the return address in
register L
RSUB returns by jumping to the address contained in register L
9
SIC Machine Architecture
(5/5)
Input and Output
Input and output are performed by transferring 1 byte at a time to
or from the rightmost 8 bits of register A
The Test Device (TD) instruction tests whether the addressed
device is ready to send or receive a byte of data
Read Data (RD)
Write Data (WD)
10
SIC Programming Examples
Data movement Fig. 1.2
Arithmetic operation Fig. 1.3
Looping and indexing Fig. 1.4, Fig. 1.5
Input and output Fig. 1.6
Subroutine call Fig. 1.7
11
SIC Programming Examples
(Fig 1.2)-- Data movement
Address labels
Assembler
directives for
defining storage
12
SIC Programming Example
-- Arithmetic operation (Fig 1.3)
BETA=ALPHA+INCR-ONE
DELTA=GAMMA+INCR-ONE
in register A.
SIC Programming Example
-- Looping and indexing (Fig. 1.4)
14
SIC Programming Example
-- Looping and indexing (Fig. 1.5)
Arithmetic
Arithmetic operations are performed using register A,
with the result being left in register A
Looping (TIX)
(X)=(X)+1
compare with operand
set CC
GAMMA[I]=ALPHA[I]+BETA[I]
I=0 to 100
15
SIC/XE Machine Architecture
(1)
Memory
220 bytes in the computer memory
More Registers
16
SIC/XE Machine Architecture
(2)
Data Formats
Floating-point data type: frac*2(exp-1024)
frac: 0~1
exp: 0~2047 For normalized floating-point numbers,
the high-order bit must be 1.
17
SIC/XE Machine Architecture
(3)
SIC
Instruction formats
No memory
reference
Relative
e=0
addressing
19
SIC/XE Machine Architecture
(5)
Bits x,b,p,e: how to calculate the target address
relative, direct, and indexed addressing modes
21
SIC/XE Machine Architecture
(7)
How to compute TA?
Mode Indication Target address calculation operand
Base relative b=1, p=0 TA=(B)+disp (0<=disp<=4095) (TA)
PC-relative b=0, p=1 TA=(PC)+disp (-2048<=disp<=2047) (TA)
Input/Output
SIO, TIO, HIO: start, test, halt the operation of I/O device (Chap 6)
23
SIC/XE Machine Architecture
(9)
Example. RSUB
Example. COMPR A, S
24
SIC/XE Machine Architecture
(10)
Example. +JSUB RDREC (Format 4)
25
SIC/XE Machine Architecture
(11)
Example. 0000 STL RETADR
26
SIC/XE Machine Architecture
(12)
Example. STCH BUFFER, X
[B]=0033
disp=3
Example. LDA #9
27
SIC/XE Machine Architecture
(13)
Example. 002A J @RETADR (indirect addressing)
28
c: constant between 0 and 4095
m: memory address or
constant larger than 4095
4: Format 4
A: Relative
addressing
D: Direct addressing
S:Compatible with
SIC
SIC/XE Machine
Architecture (14)
29
SIC/XE Machine
Architecture (15)
30
SIC/XE Machine Architecture
(16)
Instruction set
Load and store registers
LDA, LDX, STA, STX, LDB, STB, …
Integer arithmetic operations
ADD, SUB, MUL, DIV, ADDF, SUBF, MULF, DIVF, ADDR, SUBR, MULR,
DIVR
Comparison COMP
Conditional jump instructions (according to CC)
JLE, JEQ, JGT
Subroutine linkage
JSUB
RSUB
Register move
RMO
Supervisor call (for generating an interrupt)
SVC
31
SIC/XE Machine Architecture
(17)
Input and output
IO device
Three instructions:
Test device (TD)
Read data (RD)
Write data (WD)
IO channels
Perform IO while CPU is executing other instructions
Three instructions:
SIO: start the operation of IO channel
TIO: test the operation of IO channel
HIO: halt the operation of IO channel
32
SIC/XE Machine Architecture
(18): I/O Mechanisms
Polling I/O
Interrupt-Driven I/O
DMA (Direct Memory Access) I/O
33
SIC/XE Instruction Set
X: only for XE
C: set CC
F: floating-
point
P: privileged
34
for interrupt
35
36
Set Storage Key for memory protection
37
38
SIC/XE Programming Example (1)
39
SIC/XE Programming Example (2)
40
SIC/XE Programming Example (3)
41
SIC/XE Programming Example (4)
42