System Software by Leland L. Beck chapter 1, pp.1-20.
-
Upload
roger-owen -
Category
Documents
-
view
290 -
download
3
Transcript of System Software by Leland L. Beck chapter 1, pp.1-20.
![Page 1: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/1.jpg)
System SoftwareSystem Software
by by Leland L. BeckLeland L. Beck
chapter 1,chapter 1, pp.1-20.pp.1-20.
![Page 2: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/2.jpg)
Chap 1
Outline of Chapter 1Outline of Chapter 1
System Software and Machine Architecture The Simplified Instructional Computer (SIC) Traditional (CISC) Machines
Complex Instruction Set Computers RISC Machines
Reduced Instruction Set Computers
![Page 3: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/3.jpg)
Chap 1
System Software vs. Machine ArchitectureSystem 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 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
![Page 4: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/4.jpg)
Chap 1
The Simplified Instructional Computer (SIC)The Simplified Instructional Computer (SIC)
SIC is a hypothetical computer that includes the hardware features most often found on real machines
Two versions of SIC standard model extension version
![Page 5: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/5.jpg)
Chap 1
SIC Machine Architecture (1/5)SIC Machine Architecture (1/5)
Memory 215 bytes in the computer memory 3 consecutive bytes form a word 8-bit bytes
Registers
Mnemonic Number Special useA 0 Accumulator; used for arithmetic operationsX 1 Index register; used for addressingL 2 Linkage register; JSUB
PC 8 Program counterSW 9 Status word, including CC
![Page 6: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/6.jpg)
Chap 1
SIC Machine Architecture (2/5)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
Addressing Modes
opcode (8) address (15)x
Mode Indication Target address calculationDirect x=0 TA=addressIndexed x=1 TA=address+(X)
![Page 7: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/7.jpg)
Chap 1
SIC Machine Architecture (3/5)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
![Page 8: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/8.jpg)
Chap 1
SIC Machine Architecture (4/5)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
![Page 9: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/9.jpg)
Chap 1
SIC Machine Architecture (5/5)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)
![Page 10: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/10.jpg)
Chap 1
SIC Programming ExamplesSIC 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
![Page 11: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/11.jpg)
SIC Programming Examples SIC Programming Examples (Fig 1.2)(Fig 1.2)-- Data movement-- Data movement
ALPHA RESW 1
FIVE WORD 5
CHARZ BYTE C’Z’
C1 RESB 1
.
.
LDA FIVE
STA ALPHA
LDCH CHARZ
STCH C1
(a)
No memory-memory move instruction
3-byte word: LDA, STA, LDL, STL,
LDX, STX 1-byte:
LDCH, STCH Storage definition
WORD, RESW BYTE, RESB
![Page 12: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/12.jpg)
Chap 1
SIC Programming Examples (Cont.)SIC Programming Examples (Cont.)
All arithmetic operations are performed using register A, with the result being left in register A.
BETA=ALPHA+INCR-ONEDELTA=GAMMA+INCR-ONE
![Page 13: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/13.jpg)
SIC Programming ExampleSIC Programming Example-- -- Arithmetic operationArithmetic operation (Fig 1.3)(Fig 1.3)
BETA=ALPHA+INCR-ONEDELTA=GAMMA+INCR-ONE
![Page 14: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/14.jpg)
Chap 1
SIC Programming Example SIC Programming Example -- Looping and indexing (Fig. 1.4)-- Looping and indexing (Fig. 1.4)
![Page 15: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/15.jpg)
Chap 1
SIC Programming ExampleSIC Programming Example-- Looping and indexing (Fig. 1.5)-- 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
![Page 16: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/16.jpg)
Chap 1
SIC/XE Machine Architecture (1/4)SIC/XE Machine Architecture (1/4)
Memory 220 bytes in the computer memory
More Registers
Mnemonic Number Special useB 3 Base register; used for addressingS 4 General working registerT 5 General working registerF 6 Floating-point acumulator (48bits)
![Page 17: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/17.jpg)
Chap 1
SIC/XE Machine Architecture (2/4)SIC/XE Machine Architecture (2/4)
Data Formats Floating-point data type: frac*2(exp-1024)
frac: 0~1 exp: 0~2047
Instruction Formats
exponent (11) fraction (36)s
Format 1op(8)
Format 2op(8) r1(4) r2(4)
Format 3 e=0op(6) n I x b p e disp(12)
Format 4 e=1op(6) n I x b p e address (20)
![Page 18: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/18.jpg)
Chap 1
SIC/XE Machine Architecture (3/4)SIC/XE Machine Architecture (3/4)
How to compute TA?
How the target address is used?
Note: Indexing cannot be used with immediate or indirect addressing modes
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)
Direct b=0, p=0 TA=disp (format 3) or address (format 4) (TA)Indexed x=1 TA=TA+(X) (TA)
Mode Indication operand value
immediate addressingi=1, n=0 TAindirect addressing i=0, n=1 ((TA))
simple addressing i=0, n=0 SIC instruction (all end with 00)
i=1, n=1 SIC/XE instruction
![Page 19: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/19.jpg)
Example of SIC/XE instructions Example of SIC/XE instructions and addressing modesand addressing modes
![Page 20: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/20.jpg)
Chap 1
![Page 21: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/21.jpg)
Chap 1
SIC/XE Machine Architecture (4/4)SIC/XE Machine Architecture (4/4)
Instruction Set new registers: LDB, STB, etc. floating-point arithmetic: ADDF, SUBF, MULF, DIVF register move: RMO register-register arithmetic: ADDR, SUBR, MULR, DIVR
supervisor call: SVC generates an interrupt for OS (Chap 6)
Input/Output SIO, TIO, HIO: start, test, halt the operation of I/O
device (Chap 6)
![Page 22: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/22.jpg)
SIC/XE Programming Examples SIC/XE Programming Examples (Fig 1.2)(Fig 1.2)
ALPHA RESW 1
FIVE WORD 5
CHARZ BYTE C’Z’
C1 RESB 1
.
.
LDA FIVE
STA ALPHA
LDCH CHARZ
STCH C1
(a)
ALPHA RESW 1
C1 RESB 1
.
.
.
LDA #5
STA ALPHA
LDA #90
STCH C1
(b)
![Page 23: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/23.jpg)
SIC/XE Programming Example SIC/XE Programming Example -- Looping and Indexing Example (Fig 1.4)-- Looping and Indexing Example (Fig 1.4)
![Page 24: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/24.jpg)
SIC/XE Programming Example SIC/XE Programming Example -- Looping and indexing (Fig 1.5)-- Looping and indexing (Fig 1.5)
![Page 25: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/25.jpg)
Chap 1
SIC/XE Programming ExampleSIC/XE Programming Example
data movement #: immediate addressing for SIC/XE
arithmetic ADDR S,X
Looping (TIXR T) (X)=(X)+1 compare with register specified set CC
COMPR X,T
![Page 26: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/26.jpg)
SIC Programming Example SIC Programming Example -- Sample Input and Output (Fig 1.6)-- Sample Input and Output (Fig 1.6)
![Page 27: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/27.jpg)
Chap 1
Homework #1Homework #1
Write a sequence of instructions for SIC/XE to set ALPHA equal to 4*BETA-9. Assume that ALPHA and BETA are defined as in Fig. 1.3 (b)
Write a sequence of instructions for SIC to set ALPHA equal to the integer portion of BETAGAMMA. Assume that ALPHA and BETA are defined as in Fig. 1.3(a)
![Page 28: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/28.jpg)
Chap 1
Homework #2Homework #2
Please write a program for SIC/XE that contains routines. The routines read records from an input device (identified with device code F1) and copies them to an output device (code 05). This main routine calls subroutine RDREC to read a record into a buffer and subroutine ERREC to write the record from the buffer to the output device. Each subroutine must transfer the record one character at a time because the only I/O instructions available are RD and WD.
![Page 29: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/29.jpg)
Chap 1
Homework #2Homework #2
Program copy { save return address; cloop: call subroutine RDREC to read one record; if length(record)=0 { call subroutine WRREC to write EOF; } else { call subroutine WRREC to write one record; goto cloop; } load return address return to caller }
![Page 30: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/30.jpg)
Chap 1
Homework #2Homework #2 (Cont.)(Cont.)
Subroutine RDREC { clear A, X register to 0;
rloop: read character from input device to A register
if not EOR { store character into buffer[X]; X++; if X < maximum length goto rloop;
} store X to length(record); return }
EOR: character x‘00’
![Page 31: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/31.jpg)
Chap 1
Homework #2Homework #2 (Cont.)(Cont.)
Subroutine WDREC { clear X register to 0; wloop: get character from buffer[X] write character from X to output device X++; if X < length(record) goto wloop; return }
![Page 32: System Software by Leland L. Beck chapter 1, pp.1-20.](https://reader030.fdocuments.net/reader030/viewer/2022012310/56649f3f5503460f94c601e5/html5/thumbnails/32.jpg)
Chap 1