System Programming
System Programming
System Programming
Textbook
System software: an
introduction to
systems
programming,
Leland L. Beck, 3rd
Edition, Addison
Wesley, Longman
Inc., 1997.
3
1.1 Introduction
• What is a System Software ?
Contains collection of programs that support operation of computer.
Helps to run computer hardware and computer system.
Handles running of computer hardware
– The programs implemented in either software and (or) firmware
that makes the computer hardware usable.
– The system software makes it possible for the users to focus on
an application or other problem to be solved, without needing to
know the details of how the machine works internally.
4
1.2 System Software and Machine
Architecture
• System Software vs Application
– One characteristic in which most system software differs from
application software is machine dependency.
– System programs are intended to support the operation and use
of the computer itself, rather than any particular application.
– For example,assemblers translate mnemonic instructions into
machine code;instruction format,addressing modes etc are of
direct concern in assembler design.
• Examples of system software
– Text editor, assembler, compiler, loader or linker, debugger,
macro processors, operating system, database management
systems, software engineering tools, …
5
1.2 System Software and Machine
Architecture
• Text editor
– To create and modify the program
• Compiler and assembler
– translate high level programs into machine language
• Loader or linker
– The resulting machine program was loaded into memory
and prepared for execution
• Debugger
– To help detect errors in the program
6
System Software Concept
Users
Application Program
Utility Program
Debugger Macro Processor Text Editor
(Library)
OS
Memory Process Device Information
Management Management Management Management
Computer
14
1.3 The Simplified Instructional
Computer
• Like many other products, SIC comes in two
versions
– The standard model
– An XE version
• “extra equipments”, “extra expensive”
• SIC (Simplified Instructional Computer)
• SIC/XE (Extra Equipment)
15
1.3 The Simplified Instructional Computer
• Memory:
– Memory consists of 8-bit bytes, 3 consecutive bytes form a
word (24 bits)
– There are a total of 32768 bytes (32 KB) in the computer
memory.
• Registers:
– 5 registers, 24 bits in length
Mnemonic Number Special Use
A 0 Accumulator
X 1 Index register
L 2 Linkage register (JSUB)
PC 8 Program counter 16
17
1.3.1 SIC Machine Architecture
• Instruction format
– 24-bit format
– The flag bit x is used to indicate addressing mode
8 1 15
opcode x address
• Addressing Modes
– There are two addressing modes available
• Indicated by x bit in the instruction
• (X) represents the contents of register X
18
1.3.1 SIC Machine Architecture
• Instruction set
– Load and store registers (LDA, LDX, STA, STX, etc.)
– Integer arithmetic operations (ADD, SUB, MUL, DIV)
– Compare instruction (COMP)
– Conditional jump instructions (JLT, JEQ, JGT)
– JSUB jumps to the subroutine, placing the return address
in register L.
– RSUB returns by jumping to the address contained in
register L.
19
1.3.1 SIC Machine Architecture
• I/O
– I/O are performed by transferring 1 byte at a time to or
from the rightmost 8 bits of register A.
– Each device is assigned a unique 8-bit code as an
operand.
– Test Device (TD): tests whether the addressed device is
ready to send or receive
• Condition code (flag)is set to indicate the result of this test.
• < ready = not ready
– Read Data (RD)
– Write Data (WD)
20
1.3.2 SIC/XE Machine Architecture
• Memory:
-- 1 megabytes (1024 KB) in memory
• Registers:
• 3 additional registers, 24 bits in length
–B 3 Base register; used for addressing
–S 4 General working register
–T 5 General working register
• 1 additional register, 48 bits in length
–F 6 Floating-point accumulator (48
bits)
21
1.3.2 SIC/XE Machine Architecture
• Data format
– 24-bit binary number for integer
– 2’s complement for negative values
– 48-bit floating-point data type
– The exponent is between 0 and 2047
-If the exponent has the value e and the fraction
has value f,the absolute value of the number
represented is f*2(e-1024)
1 11 36
S exponent fraction
22
1.3.2 SIC/XE Machine Architecture
• Instruction formats
– Relative addressing - format 3 (e=0)
– Extend the address to 20 bits - format 4 (e=1)
– Don’t refer memory at all - formats 1 and 2
23
1.3.2 SIC/XE Machine Architecture
• Addressing modes
– n i x b p e
– Simple n=0, i=0 (SIC) or n=1, i=1
– Immediate n=0, i=1 TA=Values
– Indirect n=1, i=0 TA=(Operand)
– Base relative b=1, p=0 TA=(B)+disp
0 <= disp <= 4095
– PC relative b=0, p=1 TA=(PC)+disp
-2048 <= disp <= 2047
25
1.3.2 SIC/XE Machine Architecture
• Addressing mode
– Direct b=0, p=0 TA=disp
– Index x=1 TAnew=TAold+(X)
– Index+Base relative x=1, b=1, p=0 TA=(B)+disp+(X)
– Index+PC relative x=1, b=0, p=1 TA=(PC)+disp+(X)
– Index+Direct x=1, b=0, p=0 TA = DISP + (X)
– Format 4 e=1 TA= address in
instruction
26
Figure 1.1: Example of SIC
Instruction & Addressing
modes.
27
1.3.2 SIC/XE Machine Architecture
• Instruction set
– Format 1, 2, 3, or 4
– Load and store registers (LDB, STB, etc.)
– Floating-point arithmetic operations (ADDF, SUBF, MULF, DIVF)
– Register-to-register arithmetic operations (ADDR, SUBR, MULR, DIVR)
• I/O
– 1 byte at a time. TD, RD, and WD are used to Test Device, Read
Device, and Write Device.
– SIO, TIO, and HIO are used to start, test, and halt the operation of I/O
channels.
28