Definition System software consists of a variety of programs that support the operation of a computer Example: e.g. when you took your first programming course text editor, compiler, loader or linker, debugger e.g. if you wrote any assembly language programs assembler, macro processor e.g. you invoked all of these processes and used devices like printers, keyboard etc. interacting with the operating system
System Software vs. Machine Architecture One characteristic in which system software differs from application software is machine dependency e.g. assembler translates 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 however 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
System Software Vs Application Software 1) a system software runs the system where an application system runs over the system software. 2) a system software are programs that run & control the hardware units of the system & an application software doesn't. 3) system programs are written using dll, exe files for windows & rpm files for linux etc, where application software are developed on the basis these files or by using different language files. 4) u can't create applications using system software but application software are specially made to create applications for users.
Data Formats Integers are stored as 24-bit binary numbers; 2s complement representation is used for negative values, 8 bit ASCII for characters. No floating-point hardware. Instruction Formats
Addressing Modes
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
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 Less Than if device is ready; Equal if device is busy. Read Data (RD) Write Data (WD)
r1(4)
e=0 n I x b p e e=1 n I x b p e
r2(4)
disp(12)
address (20)
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)
Direct b=0, p=0 Indexed x=1 How the target address is used?
Mode
i=0, n=0 SIC instruction (all end with 00) i=1, n=1 SIC/XE instruction Note: Indexing cannot be used with immediate or indirect addressing
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 Input/Output SIO, TIO, HIO: start, test, halt the operation of I/O device