System Software Unit 1
System Software Unit 1
System Software Unit 1
1.0 Introduction
The subject introduces the design and implementation of system software. Software is set of instructions or programs written to carry out certain task on digital computers. It is classified into system software and application software. System software consists of a variety of programs that support the operation of a computer. Application software focuses on an application or problem to be solved. System software consists of a variety of programs that support the operation of a computer. Examples for system software are Operating system, compiler, assembler, macro processor, loader or linker, debugger, text editor, database management systems (some of them) and, software engineering tools. These softwares make it possible for the user to focus on an application or other problem to be solved, without needing to know the details of how the machine works internally.
Memory
There are 215 bytes in the computer memory, that is 32,768 bytes , It uses Little Endian format to store the numbers, 3 consecutive bytes form a word , each location in memory contains 8-bit bytes.
Registers
There are five registers, each 24 bits in length. Their mnemonic, number and use are given in the following table.
Mnemonic A X L PC SW
Number 0 1 2 8 9
Use Accumulator; used for arithmetic operations Index register; used for addressing Linkage register; JSUB Program counter Status word, including CC
Data Formats
Integers are stored as 24-bit binary numbers , 2s complement representation is used for negative values, characters are stored using their 8-bit ASCII codes, No floatingpoint hardware on the standard version of SIC.
Instruction Formats
Opcode(8) x
Address (15)
All machine instructions on the standard version of SIC have the 24-bit format as shown above
Addressing Modes
Mode Direct Indexed Indication x=0 x=1 Target address calculation TA = address TA = address + (x)
There are two addressing modes available, which are as shown in the above table. Parentheses are used to indicate the contents of a register or a memory location.
Instruction Set
SIC provides, load and store instructions (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. Two instructions are provided for subroutine linkage. COMP compares the value in register A with a word in memory, this instruction sets a condition code CC to indicate the result. There are conditional jump instructions: (JLT, JEQ, JGT), these instructions test the setting of CC and jump accordingly. JSUB jumps to the subroutine placing the return address in register L, RSUB returns by jumping to the address contained in register L.
Example 2( Arithmetic operations) LDA ALPHA ADD INCR SUB ONE STA BEETA .. .. .. .. WORD 1 RESW 1 RESW 1 RESW 1
Example 3(Looping and Indexing operation) LDX ZERO : X=0 MOVECH LDCH STR1, X : LOAD A FROM STR1 STCH STR2, X : STORE A TO STR2 TIX ELEVEN : ADD 1 TO X, TEST JLT MOVECH . .
. STR1 BYTE C HELLO WORLD STR2 RESB 11 ZERO WORD 0 ELEVEN WORD 11 Example 4( Input and Output operation) INLOOP TD INDEV JEQ INLOOP RD INDEV STCH DATA . . OUTLP TD OUTDEV JEQ OUTLP LDCH DATA WD OUTDEV . . INDEV BYTE X F5 OUTDEV BYTE X 08 DATA RESB 1 : TEST INPUT DEVICE : LOOP UNTIL DEVICE IS READY : READ ONE BYTE INTO A : STORE A TO DATA : TEST OUTPUT DEVICE : LOOP UNTIL DEVICE IS READY : LOAD DATA INTO A : WRITE A TO OUTPUT DEVICE : INPUT DEVICE NUMBER : OUTPUT DEVICE NUMBER : ONE-BYTE VARIABLE
Example 5 (To transfer two hundred bytes of data from input device to memory) LDX ZERO CLOOP TD INDEV JEQ CLOOP RD INDEV STCH RECORD, X TIX B200 JLT CLOOP . . INDEV BYTE X F5 RECORD RESB 200 ZERO WORD 0 B200 WORD 200 Example 6 (Subroutine to transfer two hundred bytes of data from input device to memory)
JSUB READ . . READ LDX ZERO CLOOP TD INDEV JEQ CLOOP RD INDEV STCH RECORD, X TIX B200 : add 1 to index compare 200 (B200) JLT CLOOP RSUB .. .. INDEV BYTE X F5 RECORD RESB 200 ZERO WORD 0 B200 WORD 200
Registers
Additional B, S, T, and F registers are provided by SIC/XE, in addition to the registers of SIC Mnemonic B S T F Number 3 4 5 6 Special use Base register General working register General working register Floating-point accumulator (48 bits)
exponent
fraction
Instruction Formats
The new set of instruction formats fro SIC/XE machine architecture are as follows. Format 1 (1 byte): contains only operation code (straight from table). Format 2 (2 bytes): first eight bits for operation code, next four for register 1 and following four for register 2. The numbers for the registers go according to the numbers indicated at the registers section (ie, register T is replaced by hex 5, F is replaced by hex 6). Format 3 (3 bytes): First 6 bits contain operation code, next 6 bits contain flags, last 12 bits contain displacement for the address of the operand. Operation code uses only 6 bits, thus the second hex digit will be affected by the values of the first two flags (n and i). The flags, in order, are: n, i, x, b, p, and e. Its functionality is explained in the next section. The last flag e indicates the instruction format (0 for 3 and 1 for 4). Format 4 (4 bytes): same as format 3 with an extra 2 hex digits (8 bits) for addresses that require more than 12 bits to be represented. Format 1 (1 byte) 8 op Format 2 (2 bytes) 8 op 4 r1 4 r2
Formats 1 and 2 are instructions do not reference memory at all Format 3 (3 bytes) 6 op 1 1 1 1 1 1 12 n i x b p e disp
Format 4 (4 bytes)
6 op
1 1 1 1 1 1 20 n i x b p e address
Bits x,b,p: Used to calculate the target address using relative, direct, and indexed addressing Modes Bits i and n: Says, how to use the target address b and p - both set to 0, disp field from format 3 instruction is taken to be the target address. For a format 4 bits b and p are normally set to 0, 20 bit address is the target address x - x is set to 1, X register value is added for target address calculation i=1, n=0 Immediate addressing, TA: TA is used as the operand value, no memory reference
i=0, n=1 Indirect addressing, ((TA)): The word at the TA is fetched. Value of TA is taken as the address of the operand value i=0, n=0 or i=1, n=1 Simple addressing, (TA):TA is taken as the address of the operand value Two new relative addressing modes are available for use with instructions assembled using format 3. Mode Base relative Program-counter relative Indication b=1,p=0 b=0,p=1 Target address calculation TA=(B)+ disp (0 disp 4095) TA=(PC)+ disp (-2048 disp 2047)
Instruction Set
SIC/XE provides all of the instructions that are available on the standard version. In addition we have, Instructions to load and store the new registers LDB, STB, etc, Floating-point arithmetic operations, ADDF, SUBF, MULF, DIVF, Register move instruction : RMO, Register-to-register arithmetic operations, ADDR, SUBR, MULR, DIVR and, Supervisor call instruction : SVC.
LDS INCR LDA ALPHA ADD S,A SUB #1 STA BEETA . .. ALPHA RESW 1 BEETA RESW 1 INCR RESW 1 Example 3(Looping and Indexing operation) LDT #11 LDX #0 : X=0 LDCH STR1, X : LOAD A FROM STR1 STCH STR2, X : STORE A TO STR2 TIXR T : ADD 1 TO X, TEST (T) JLT MOVECH . . BYTE C HELLO WORLD RESB 11
MOVECH
STR1 STR2
Example 4 (To transfer two hundred bytes of data from input device to memory) LDT #200 LDX #0 CLOOP TD INDEV JEQ CLOOP RD INDEV STCH RECORD, X TIXR T JLT CLOOP . . INDEV BYTE X F5 RECORD RESB 200
Example 5 (Subroutine to transfer two hundred bytes of data from input device to memory)
JSUB READ . . READ LDT #200 LDX #0 CLOOP TD INDEV JEQ CLOOP RD INDEV STCH RECORD, X TIXR T : add 1 to index compare T JLT CLOOP RSUB .. .. INDEV BYTE X F5 RECORD RESB 200
Instruction Formats - VAX architecture uses variable-length instruction formats op code 1 or 2 bytes, maximum of 6 operand specifiers depending on type of instruction. Tabak Advanced Microprocessors (2nd edition) McGraw-Hill, 1995, gives more information. Addressing Modes - VAX provides a large number of addressing modes. They are Register mode, register deferred mode, autoincrement, autodecrement, base relative, program-counter relative, indexed, indirect, and immediate. Instruction Set Instructions are symmetric with respect to data type - Uses prefix type of operation, suffix type of operands, a modifier number of operands. For example, ADDW2 - add, word length, 2 operands, MULL3 - multiply, longwords, 3 operands CVTCL - conversion from word to longword. VAX also provides instructions to load and store multiple registers. Input and Output - Uses I/O device controllers. Device control registers are mapped to separate I/O space. Software routines and memory management routines are used for input/output operations.
Instruction Set This architecture has a large and complex instruction set, approximately 400 different machine instructions. Each instruction may have one, two or three operands. For example Register-to-register, register-to-memory, memory-tomemory, string manipulation, etcare the some the instructions. Input and Output - Input is from an I/O port into register EAX. Output is from EAX to an I/O port
Input and Output - Communication through I/O devices is accomplished through memory. A range of memory locations is logically replaced by device registers. When a load or store instruction refers to this device register area of memory, the corresponding device is activated. There are no special I/O instructions.