0 index
1 System Software
2 Virtual machine
3 Suite of programs (System software)
4 Types of System Software
5 Two Examples
6 The continuum of Programming Languages
7 Assembler
8 The Translation/Loading/Execution Process
9 Assembly Language
10 Assembly code
11 Typical Assembly Language Instruction Set
12 Example 1
13 Example 2

outline
created using slideshow.cgi by Andy Harris















CSCI N301 Fundamental CS Concepts: n301/System Software
1. System Software
  • Provides interface between user and "naked machine"
    • machine language instruction
    • load into memory
    • set the PC counter to first instruction
  • Should give
    • ease of use (hide details)
    • protection



































CSCI N301 Fundamental CS Concepts: n301/System Software
2. Virtual machine
  • System software is SW, not HW
  • Virtual machine is what we wish it looked like
  • An intermediary between the hardware and the usr
  • Is set of SW services created for the user



































CSCI N301 Fundamental CS Concepts: n301/System Software
3. Suite of programs (System software)
  • Operating system
  • Translators
    • compilers, assemblers
  • Memory managers
    • Loaders, linkers
  • Schedulers
  • Utilities
    • text editor
    • calc
    • web browser



































CSCI N301 Fundamental CS Concepts: n301/System Software
4. Types of System Software



































CSCI N301 Fundamental CS Concepts: n301/System Software
5. Two Examples
  • Assembler
    • translator
  • Operating system
    • what should it do



































CSCI N301 Fundamental CS Concepts: n301/System Software
6. The continuum of Programming Languages



































CSCI N301 Fundamental CS Concepts: n301/System Software
7. Assembler
  • Assembly language
    • early 1950s
    • "Second generation language"
  • Assembler (translator
    • Source code --> object code (mach code)
    • one-to-one translation
  • Machine specific code



































CSCI N301 Fundamental CS Concepts: n301/System Software
8. The Translation/Loading/Execution Process



































CSCI N301 Fundamental CS Concepts: n301/System Software
9. Assembly Language
  • Features
    • names for op codes
    • names for memory addresses
    • pseudo-ops to generate data
  • Solves many of the shortcomings of machine language



































CSCI N301 Fundamental CS Concepts: n301/System Software
10. Assembly code
  • Instruction format:
    • Label: (binds inst. to mem. address)
    • op code name
    • address field
    • comment (behind "--")
  • Our assembly language
    • Figure 6.5
    • N = 4, 24 = 16 inst.set



































CSCI N301 Fundamental CS Concepts: n301/System Software
11. Typical Assembly Language Instruction Set
  • Figure 6.5



































CSCI N301 Fundamental CS Concepts: n301/System Software
12. Example 1
  • 1. Initial valuesR = 20 memory location 80 = 43
    memory location 81 = 97
    OperationFinal Contents of Register RFinal Contents of Mem Loc 80Final Contents of Mem Loc 81
    a. LOAD 80434397
    b. STORE 81204320
    c. COMPARE 80204397
    (and the GT indicator goes ON)
    d. ADD 811174397
    e. IN 8020Whatever value is entered by the user97
    a. OUT 81204397



































CSCI N301 Fundamental CS Concepts: n301/System Software
13. Example 2
  • 2. Initial values memory location 50 = 4
    OperationFinal Contents
    of Register R
    a. LOAD 504
    b. LOAD 4A copy of the contents of memory cell 4.
    c. LOAD LBecause L is the equivalent to 50, this operation is equivalent to LOAD 50, which is
    the same as part (a).
    d. LOAD L + 1A copy of the contents of memory cell 51. This operation means LOAD (L + 1),
    which is equivalents to LOAD 51. LOAD L + 1 does arithmetic on addresses,
    not contents.



































outline

System Software

Virtual machine

Suite of programs (System software)

Types of System Software

Two Examples

The continuum of Programming Languages

Assembler

The Translation/Loading/Execution Process

Assembly Language

Assembly code

Typical Assembly Language Instruction Set

Example 1

Example 2