CONTENTS CHAPTER 0: INTRODUCTION TO COMPUTING CHAPTER 1: THE x86 MICROPROCESSOR CHAPTER 2: ASSEMBLY LANGUAGE PROGRAMMING CHAPTER 3: ARITHMETIC AND LOGIC INSTRUCTIONS AND PROGRAMS CHAPTER 4: INT 21H AND INT 10H PROGRAMMING AND MACROS CHAPTER 5: KEYBOARD AND MOUSE PROGRAMMING CHAPTER 6: SIGNED NUMBERS, STRINGS, AND TABLES CHAPTER 7: MODULES AND MODULAR PROGRAMMING CHAPTER 8: 32-BIT PROGRAMMING FOR x86 CHAPTER 9: 8088, 80286 MICROPROCESSORS AND ISA BUS CHAPTER 10: MEMORY AND MEMORY INTERFACING CHAPTER 11: 8255 I/O PROGRAMMING CHAPTER 12: INTERFACING TO LCD, MOTOR, ADC, AND SENSOR CHAPTER 13: 8253/54 TIMER CHAPTER 14: INTERRUPTS IN x86 PC CHAPTER 15: DIRECT MEMORY ACCESS AND DMA CHANNELS IN x86 PC CHAPTER 16: VIDEO AND VIDEO ADAPTERS CHAPTER 17: SERIAL PORT PROGRAMMING WITH ASSEMBLY AND C# CHAPTER 18: KEYBOARD AND PRINTER INTERFACING CHAPTER 19: HARD DISKS CHAPTER 20: THE IEEE FLOATING POINT AND x87 MATH PROCESSORS CHAPTER 21: 386 MICROPROCESSOR: REAL vs. PROTECTED MODE CHAPTER 22: HIGH-SPEED MEMORY DESIGN AND CACHE CHAPTER 23: PENTIUM AND RISC PROCESSORS CHAPTER 24: THE EVOLUTION OF x86: FROM 32-BIT TO 64-BIT CHAPTER 25: SYSTEM DESIGN ISSUES AND FAILURE ANALYSIS CHAPTER 26: ISA, PC104, AND PCI BUSES CHAPTER 27: USB PORT PROGRAMMING INDEX