Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 21

System Programming

System Software, pp.1-20. Chia-Hui Chang, Assistant Professor


Dept. of Computer Science & Information Engineering National Central University, Taiwan

Introduction

Definition
System software consists of a variety of programs that support the operation of a computer One characteristic in which most system software differ from application software is machine dependency

Example:
e.g. when you took the first programming course
text editor, compiler, loader or linker, debugger

e.g. when you wrote assembler language


assembler, macro processor

e.g. you control all of these processes by interacting with the operation system
2

System Software vs. Machine Architecture

One characteristic in which most system software differ from application software is machine dependency
e.g. assembler translate mnemonic instructions into machine code e.g. compilers must generate machine language code e.g. operating systems are directly concerned with the management of nearly all of the resources of a computing system

There are some 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

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 XE version

SIC Machine Architecture (1/4)

Memory
8-bit bytes 3 consecutive bytes form a word 215 bytes in the computer memory

Registers
Mnemonic Number Special use A 0 Accumulator; used for arithmetic operations X 1 Index register; used for addressing L 2 Linkage register; JSUB PC 8 Program counter SW 9 Status word, including CC

SIC Machine Architecture (2/4)

Data Formats
Integers are stored as 24-bit binary numbers; 2s complement representation is used for negative values No floating-point hardware

Instruction Formats
opcode (8)

address (15)

Addressing Modes
Mode Direct Indexed Indication x=0 x=1 Target address calculation TA=address TA=address+(X)

SIC Machine Architecture (3/4)

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

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
7

SIC Machine Architecture (4/4)

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)

SIC Programming Examples (Fig 1.2)

SIC Programming Examples

Data movement
No memory-memory move instruction 3-byte word: LDA, STA, LDL, STL, LDX, STX 1-byte: LDCH, STCH Storage definition
WORD, RESW BYTE, RESB

10

SIC Programming Examples (Cont.)

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

11

SIC/XE Machine Architecture (1/4)


Memory
220 bytes in the computer memory

More Registers

Mnemonic Number Special use B 3 Base register; used for addressing S 4 General working register T 5 General working register F 6 Floating-point acumulator (48bits)

12

SIC/XE Machine Architecture (2/4)

Data Formats
Floating-point data type: frac*2(exp-1024)
frac: 0~1 exp: 0~2047 s exponent (11)

fraction (36)

Instruction Formats
larger memory -> extend addressing capacity
Format 1 op(8) Format 2 op(8)

r1(4)

r2(4)

Format 3 op(6)
Format 4 op(6)

e=0 n I x b p e
e=1 n I x b p e

disp(12)
address (20)

13

SIC/XE Machine Architecture (3/4)

Addressing Modes
Mode Indication Base relative b=1, p=0 Program-counter b=0, p=1 relative Direct Indexed b=0, p=0 x=1 Target address calculation TA=(B)+disp (0<=disp<=4095) TA=(PC)+disp (-2048<=disp<=2047) TA=disp (format 3) or address (format 4) TA=TA+(X)

How the target address is used?


Mode

immediate addressing indirect addressing simple addressing

Indication i=1, n=0 i=0, n=1 i=0, n=0 i=1, n=1

operand value TA (TA) SIC instruction (all end with 00) SIC/XE instruction

Note: Indexing cannot be used with immediate or indirect addressing modes

14

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)

15

SIC/XE Programming Example


data movement
immediate addressing for SIC/XE

arithmetic Looping (TIXR)


(X)=(X)+1 compare with register specified set CC

16

SIC Programming Example (Fig 1.3)

SIC Programming Example (Fig 1.4)

SIC Programming Example (Fig 1.5)

SIC Programming Example (Fig 1.6)

You might also like