1 / 41

Welcome to Systems Software

Welcome to Systems Software. The purpose of this course is to provide background in fundamental types of system software, particularly assemblers, loaders, macro processors, and linkage editors.

constantine
Download Presentation

Welcome to Systems Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Welcome to Systems Software • The purpose of this course is to provide background in fundamental types of system software, particularly assemblers, loaders, macro processors, and linkage editors. • The course uses a simplified instructional computer (SIC and SIC/XE) to illustrate machine level system software requirements.

  2. Welcome to Systems Software • A major objective of the course will be for students to design and implement a working (cross) assembler for SIC and part of SIC/XE.

  3. Concerned • Application programs • Machine independent • Solves a specific problem • Systems programs • Machine dependent • Support computers operation • Compiler • Assembler • Linker • Loader • OS

  4. Application Programs • C/C++, Java, Perl, Python, Fortran, PL/1, LISP, Prolog, Pascal, C#, Ruby • Programs to sort, search, etc.

  5. Systems Programs • Compiler • Translates application programs to intermediate code • Assemblers • Translates intermediate code to machine code • Linkers • Links the machine code modules into one • Loaders • Loads the machine code in memory • OS • Controls the operation of the computer

  6. Assembler Program - SIC (Intermediate Code) LDA FIVE Load 5 into A STA ALPHA Store in ALPHA LDCH CHARZ Load character ‘Z’ into A STCH C1 Store in C1 . . ALPHA RESW 1 one word variable FIVE WORD 5 one word constant CHARZ BYTE C’Z’ one byte constant C1 RESB 1 one byte variable

  7. Assembler Program – SIC/XE (Intermediate Code) LDA #5 Load 5 into A STA ALPHA Store in ALPHA LDCH #90 Load character ‘Z’ into A STCH C1 Store in C1 . . ALPHA RESW 1 one word variable C1 RESB 1 one byte variable

  8. SIC / SICXE • Simple Instruction Computer • Simple Instruction Computer Extended • Designed to be similar to real computers • Designed to avoid unnecessary detail

  9. CHARACTERISTICS OF SIC

  10. SIC Architecture - Memory • Bytes – 8 bits • Word – 3 bytes (24 bits) • Byte addressable • Words addressed by lowest byte • 32767 (215) bytes of total memory

  11. SIC Architecture - Registers • 5 registers • Each a full word • Each special purpose

  12. Register Names and Usage - SIC • A 0 Accumulator; used for arithmetic • X 1 Index register; used for addressing • L 2 Linkage resister; used for return address • PC 8 Program counter; address of next inst. • SW 9 Status word; variety of information including a condition code (CC)

  13. Data Formats - SIC • Integers – 24 bit binary 2’s complement • Characters – 8 bit ASCII • No floating point

  14. Data Formats Example • Integer 5 000000000000000000000101 -5 111111111111111111111011 • Character A 01000001 R 01010010

  15. Instruction Formats - SIC • 24 bit 8 bit opcode 1 bit addressing mode 15 bit address

  16. Addressing Modes - SIC • Direct x = 0 Target address = address • Indexed x = 1 Target address + (X) (X) is the contents of register X

  17. Instruction Set - SIC • Load and Store Registers • LDA, LDX, STA, STX, etc. • Integer Arithmetic (all involve register A) • Add, SUB, MUL, DIV • Compare • COMP – compares A with a word in memory • Sets the CC in the SW • Jump instructions • JLT, JEQ, JGT – based on the CC as set by COMP • Subroutine Linkage • JSUB – jumps to subroutine, places return address in L • RSUB – returns, using the address in L

  18. Input/Output - SIC • TD – test device is ready to send/receive data • CC of < means device is ready • CC of = means device is not ready • RD – read data, when the device is ready • WD – write data • Transfers 1 byte at a time to or from the rightmost 8 bits of register A. • Each device has a unique 8-bit code as an operand.

  19. CHARACTERISTICS OF SIC/XE

  20. SIC/XE Architecture - Memory • Bytes – 8 bits • Word – 3 bytes (24 bits) • Byte addressable • Words addressed by lowest byte • 1 meg (220) bytes of total memory (more memory leads to a change in instruction formats and addressing modes

  21. SIC/XE Architecture - Registers • 5 registers of SIC + 4 additional • Each a full word • Each special purpose

  22. Register Names and Usage – SIC and SIC/XE • A 0 Accumulator; used for arithmetic • X 1 Index register; used for addressing • L 2 Linkage resister; used for return address • PC 8 Program counter; address of next inst. • SW 9 Status word; variety of information including a condition code (CC)

  23. FOUR Additional Registers and their Usage SIC/XE • B 3 Base register, used for addressing • S 4 General register – no special use • T 5 General register – no special use • F 6 Floating-point accumulator (48 bits)

  24. Data Formats – SIC/XE • Integers – 24 bit binary 2’s complement • Characters – 8 bit ASCII • Floating point – 48 bit floating point

  25. Data Formats – SIC/XE • 24 bit integer • 48 bit floating point 1 bit sign 11 bit exponent 36 bit fraction

  26. Floating Point Format SIC/XE • Fraction is a value between 0 and 1 • The binary point is immediately before the high order bit which must be 1 • The exponent is an unsigned binary number between 0 and 2047

  27. Floating Point (cont) SIC/XE • Suppose the exponent is e and the fraction is f • The number is f * 2 (e+1024) • 0 sign is positive • 1 is negative • 0 is all bits including sign are 0

  28. Data Formats Example • Integer 5 = 000000000000000000000101 -5 = 111111111111111111111011 • Character A 01000001

  29. Data Formats Example • Float 4.89 = .1001110001111010111000010100011110 10111000010100 * 23 (1027) =0 10000000011 100111000111101011 100001010001111010

  30. Data Formats Example • Float -.000489 = 100000000011000000 111100000001111110 * 2-10 (1014) =1 01111110110 100000000011000000 111100000001111110

  31. Instruction Formats – SIC/XE • Format 1 - 8 bit (1 byte) • Format 2 – 16 bit (2 bytes) 8 bit opcode 8 bit opcode 4 bit R1 reg 4 bit R2 reg

  32. Instruction Formats – SIC/XE • Format 3 - 24 bit (3 byte) • Format 4 – 32 bit (4 bytes) 6 bit opcode n i x b p e 12 bit displacemnt 6 bit opcode n i x b p e 20 bit address

  33. Addressing Modes – SIC/XEFormat 3/4 Instruction • Base relative b=1,p=0 TA = (B)+disp 0  disp  4095 disp is a n unsigned integer • PC relative b=0,p=1 TA = (PC)+disp -2048  disp  2047 disp is a 2’s complement integer • (?) is the contents of register ? • if b=0, p=0 then disp is an absolute address

  34. Addressing Modes – SIC/XEFormat 3/4 Instruction (cont) • Any addressing mode can be combined with indexed addressing. i.e. if bit x is a 1 then (X) is added in the target address calculation.

  35. Addressing Modes – SIC/XEFormat 3/4 Instruction the disp (cont) • Immediate addressing i = 1, n = 0 the address itself is the operand, no memory reference • Indirect addressing i = 0, n = 1 the word at the location is fetched as the address for the instruction • Simple addressing i = n = 0 the target address is taken as the operand • e = 0 implies format 3, e = 1 implies format 4

  36. Instruction Set – SIC/XE • Load and Store Registers • LDA, LDX, STA, STX, LDB, STB, RMO • Integer Arithmetic (all involve register A) • Add, SUB, MUL, DIV, ADDF, SUBF, MULF, DIVF, ADDR, SUBR, MULR, DIVR • Compare • COMP – compares A with a word in memory • Sets the CC in the SW • Jump instructions • JLT, JEQ, JGT – based on the CC as set by COMP • Subroutine Linkage • JSUB – jumps to subroutine, places return address in L • RSUB – returns, using the address in L

  37. Input/Output – SIC/XE • TD – test device is ready to send/receive data • CC of < means device is ready • CC of = means device is not ready • RD – read data, when the device is ready • WD – write data • Transfers 1 byte at a time to or from the rightmost 8 bits of register A. • Each device has a unique 8-bit code as an operand. • I/0 channels – SIO, TIO, HIO

  38. Summary Addressing Modes • e = 0 – Format 3 instruction • e = 1 – Format 4 instruction

  39. Summary Addressing Modes • Direct Addressing – b = p = 0 • TA = disp • Relative Addressing – • b = 1, p = 0 • TA = (B) + disp • b = 0, p = 1 • TA = (PC) + disp

  40. Summary Addressing Modes • Immediate • i = 1, n = 0 • Target address itself is used as the operand value • Indirect • i = 0, n = 1 • Value contained in the word is the address

  41. Summary Addressing Modes • Simple • i = n = 0 • TA is the location of the operand • SIC/XE instruction • i = n = 1 • TA is determined by other bits

More Related