Transcript System Programming
System Programming
System Software, pp.1-20.
Chia-Hui Chang, Assistant Professor
Dept. of Computer Science & Information Engineering National Central University, Taiwan 1
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 3
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 4
SIC Machine Architecture (1/4)
Memory » » » 8-bit bytes 3 consecutive bytes form a word 2 15 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 SW 8 9 Program counter Status word, including CC 5
SIC Machine Architecture (2/4)
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 opcode (8) x address (15) Addressing Modes
Mode
Direct Indexed
Indication
x=0 x=1
Target address calculation
TA=address TA=address+(X) 6
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) 8
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 » 2 20 bytes in the computer memory More Registers Mnemonic Number Special use B 3 Base register; used for addressing S T 4 5 General working register 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) Format 3 op(6) Format 4 op(6) r1(4) e=0 n I x b p e r2(4) 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)