CSE 306
Processing Systems and Structures
Lockwood, Spring 2003
On-Line Lectures Notes
Lecture 1:
Course goals; Course overview; history; review of binary number systems, 2's complement, and base conversion.
Lecture 2:
Computer System Architecures; Specifics on the 80x86 (registers, memory, periphials); Hints for MP0
Lecture 3:
Programming with registers; Assembly Opcodes; Complex addressing modes.
Lecture 4:
Logical and Shifting Operations, Math operations. Overflows & carries, flags settings.
Lecture 5:
Conditional branching; Numerical comparisons; Mapping loop/branch paradigms to linear code.
Lecture 6:
Program organization, Assembly and debugging techniques, MASM directives; On-line examples of ECE291 projects.
Lecture 7:
Multiplication; Division; MACROs
Lecture 8:
The stack: Implementation, PUSH & POP operations, direct access, procedures, recursion
Lecture 9:
Exam 1 Review
Lecture 10:
Programming with high-level languages; Combining C with ASM: (assemble, compile, link, and run)
Lecture 12:
Memory-Mapped I/O, Video I/O Subsystem; Text Mode Video
Lecture 13:
Table-Lookup Functions, Jump Tables, DOS/BIOS/vBIOS Calls, Interrupt Vectors, Hash Functions
Lecture 14:
Interrupt-Driven I/O, Hardware Interrupt Service Routines (ISR's), Terminate & Stay Resident (TSR) Programs
Lecture 15:
Interrupt Topics: Timer Demo, Critical Sections, 8259 PIC, Scheduling
Lecture 16:
Device I/O with Ports: IN/OUT, 8253 Timer, Keyboard, Parallel Port, Joystick
Lecture 17:
Pixel-based video graphics, Mode 13h video, Efficient string Instructions for fast graphics.
Lecture 22:
Bitmap graphic:, PCX files, BMP files, Programming Techniques
Lecture 18:
Exam II Review
Lecture 11:
Floating Point Arithmetic, the x87 FPU
Lecture 24:
Instruction-level parallelism: MultiMedia eXtensions (MMX), 3DNow, SSE
Lecture 27:
Hardware Methods for Improving CPU Performance. Opportunities beyond CSE 306.