Computer Organization and (PDP-11) Programming
by
Donald Fisk
These are the notes from an evening lecture course on Computer
Organization and Programming which I gave at Hong Kong Polytechnic
(now Hong Kong Polytechnic
University) in 1984. Some of it, particularly the PDP-11 bias,
will seen quaint now, and indeed the PDP-11 was on its way out even
then. However, those who programmed it will appreciate how
well-designed its instruction set was, unlike some computers I could
mention.
The course is not complete: for some of the lectures, I relied
on the notes of a fellow lecturer, with whom I have long since lost
touch.
Lecture 1, containing:
- THE STORED PROGRAM CONCEPT
- COMPILERS AND INTERPRETERS
- OPERATING SYSTEMS
- TEXT EDITORS, LINKERS, AND DEBUGGERS
- ANALYSIS, DESIGN AND PROGRAMMING OF COMPUTER SYSTEMS
Lecture 2, containing:
- TRUTH TABLES FOR BOOLEAN OPERATIONS
- REWRITE RULES OF BOOLEAN ALGEBRA
- REPRESENTATION OF BOOLEAN OPERATIONS IN TERMS OF 'NAND' AND 'NOT'
- CONSTRUCTION OF LOGIC GATES
- THE HALF ADDER AND FULL ADDER
Lecture 3, containing:
- SUBTRACTION
- THE SR AND T FLIP-FLOPS
- THE JK MASTER SLAVE FLIP-FLOP
- SHIFT REGISTERS
Lecture 4, containing:
- PDP11 ASSEMBLY LANGUAGE (MACRO 11)
- PDP-11 Memory organization
- MACRO-11 Instructions
- REGISTERS AND ADDRESSING MODES
- The Special-Purpose Registers
- Another Programming Example
Lecture 5, containing:
- REPRESENTATION AND STORAGE OF DATA
- Number Systems
- Representation of Non-numeric Data. Character Codes.
- Definition of Bytes, Words, Records and Blocks.
Lecture 6, containing:
- REPRESENTATION OF NEGATIVE NUMBERS
- SIGNED MAGNITUDE
- ONE'S COMPLEMENT
- TWO'S COMPLEMENT
- OVERFLOW DETECTION
- BINARY CODED DECIMAL
- SIMPLE INPUT/OUTPUT ON THE PDP-11
Lecture 7, containing:
- FLOATING POINT NUMBERS
- A REPRESENTATION FOR FLOATING POINT NUMBERS
- MULTIPLICTION AND DIVISION OF FLOATING POINT NUMBERS
- ADDITION AND SUBTRACTION OF FLOATING POINT NUMBERS
- FIXED POINT DECIMAL NUMBERS
Lecture 8, containing:
- FIXED POINT DECIMAL NUMBERS
- EXAMPLES OF BINARY FLOATING POINT CALCULATIONS
Lecture 9, containing:
- MACRO ASSEMBLY
- CONDITIONAL ASSEMBLY
- ITERATIVE ASSEMBLY
Lecture 10, containing:
- PARAMETER PASSING
- RECURSION
- REVERSE POLISH
- A SIMPLE SOFT MACHINE
Lecture 11, containing:
- SECONDARY STORAGE CHARACTERISTICS
- Random/Sequential Access
- Magnetic Tapes
- Magnetic Disks
- DRUM STORAGE
- CORE STORAGE
Lecture 12, containing:
- PRINCIPLES AND IMPLEMENTATION OF INSTRUCTION CODES
- Processor Architecture
- CPU Registers and Data Paths.
- Stack Manipulation and Subroutine Instructions
Lecture 13, containing:
- MAIN MEMORY ACCESS
- READ ONLY MEMORY
Lecture 14, containing:
- PDP-11 Addressing Modes and Instruction Formats
- Two Address Instruction Format
- Primitive Addressing Modes
- Non-primitive Addressing Modes
- One Address Instruction Format
- Byte and Word Instructions
Lecture 15, containing:
- Interrupts
- Use of Interrupts
- Real-time Systems
- Real-time Programming Techniques
- Interrupts on the PDP-11
- The Processor Status Word
Lecture 16, containing:
- Traps
- Concurrent Processes
- The Dispatcher
- Inter-process Communication and Semaphores
- Implementation of WAIT and SIGNAL
Lecture 17, containing:
The von Neumann Architecture
History of Programming Languages
FORTRAN
ALGOL
LISP and the AI Community
COBOL
Hardware Requirements of Programming Languages
Lecture 18, containing:
- BASIC
- PASCAL
- PROLOG
- IMPROVEMENTS WITHIN THE VON-NEUMANN FRAMEWORK
- Microcoded Instruction Set
- Pseudo-registers
- Instruction Pipelining
- Caching
- IMPROVEMENTS TO THE VON-NEUMANN ARCHITECTURE
- Array Processing
- Processor Pipelining
Copyright 1984, 1985 D. Fisk
This page was linked to from