Readings in the text
- Irvine, Chapters 6, 7, 9, Section 8.5
Handouts
- Demos 8-16
- Boot sector handout
- Timer Diagram
- How Interrupts Work article
Topics
- General
- Real Mode vs. Protected Mode
- Memory space vs. I/O space
- Talking to HW devices
- Concept of Systems Programming and Systems Software
- Three sides of an Operating System
- C programming
- Arrays, pointers, structures, functions
- Binary operations (and, or, xor, negate, shift)
- Logical operations (and, or, not)
- Command-line arguments
- Console input and output
- System calls (read, write, open, close, time)
- Mixing C and assembly
- C calling conventions
- Calling C functions from assembly
- Calling assembly functions from C
- Obtaining command-line arguments C-style
- Interrupts
- Hardware interrupts (HW devices)
- Software interrupts (OS/BIOS services)
- Exceptions (errors)
- Response to an interrupt
- Role of the Interrupt Vector Table or Interrupt Descriptor
Table
- Purpose of Interrupt Service Routines
- Concept of critical sections
- Interrupt flag and enabling/disabling interrupts
- Master and slave Programmable Interrupt Controllers
- IRQ number vs. interrupt number
- Boot Loaders
- Power-up process
- Structure of a disk
- Layout of a boot sector
- Purpose of a boot loader
- Timer and Speaker
- Programmable Interval Timer (3 channels)
- Crystal oscillator and the magic number 1193182
- Programming Timer and Speaker (ports 61h, 43h, 42h, 41h, 40h)
- Libraries
- static
- shared
- dynamic
- dl interface
- Other topics
- File access
- Bit manipulation instructions (and, or, xor, negate, shift, rotate)
- Recursion in assembly
- String instructions (movs, cmps, lods, scas, stos)
Alex Fedosov
2002-11-13