System Programming

Download Report

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)