Home
Contents
Preface
0 Introduction to Computing
0.1 Numbering and Coding Systems
0.2 Inside the Computer
0.3 Brief History of the CPU
Answers to Review Questions
1 The 80x86 Microprocessor
1.1 Brief History of the 80x86 Family
1.2 Inside the 8088/8086
1.3 Introduction to Assembly Programming
1.4 Introduction to Program Segments
1.5 More about Segments in the 80x86
1.6 80x86 Addressing Modes
Answers to Review Questions
2 Assembly Language Programming
2.1 Directives and a simple Program
2.2 Assemble, Link, and Run a Program
2.3 More Sample Programs
2.4 Control Transfer Instructions
2.5 Data Types and Data Definitions
2.6 Full Segment Definition
2.7
Exe vs. COM Files
Answers to Review Questions
3 Arithmetic and Logic Instructions and Programs
3.1 Unsigned Addition and Subtraction
3.2 Unsigned Multiplication and Division
3.3 Logic Instructions and Sample Programs
3.4 BCD and ASCII Operands and Instructions
3.5 Rotate Instructions
3.6 Bitwise Operation in the C Language
Answers to Review Questions
4 BIOS and DOS Programming in Assembly and C
4.1 BIOS INT 10H Programming
4.2 DOS INTERRUPT 21H
4.3 INT 16H Keyboard Programming
4.4 Interrupt Programming with C
Answers to Review Questions
5 Macros and the Mouse
5.1 What is a Macro and how is it used ?
5.2 Mouse Programming with Interrupt 33H
Answers to Review Questions
6 Signed Numbers, Strings, and Tables
6.1 Signed Number Arithmetic Operations
6.2 String and Table Operations
Answers to Review Questions
7 Modules: Modular and C Programing
7.1 Writing and Linking Modules
7.2 Some very useful Modules
7.3 Passing Parameters among Modules
7.4 Combining Assembly Language and C Programs
Answers to Review Questions
8 32-Bit Programming for 386 and 486 Machines
8.1 80386/80486 Machines in Real Mode
8.2 Some Simple 386/486 Programs
8.3 80x86 Performance Comparison
Answers to Review Questions
9 8088, 80286 Microprocesors and ISA Bus
9.1 8088 Microprocessor
9.2 8284 and 8288 Supporting Chips
9.3 8-Bit Section of ISA Bus
9.4 80286 Microprocessor
9.5 16-Bit ISA Bus
Answers to Review Questions
10 Memory and Memory Interfacing
10.1 Semiconductor Memory Fundamentals
10.2 Memory Address Decoding
10.3 IBM PC Memory Map
10.4 Data Integrity in RAM and ROM
10.5 16-Bit Memory Interfacing
10.6 ISA Bus Memory Interfacing
Answers to Review Questions
11 I/O and the 8255; ISA Bus Interfacing
11.1 8088 Input/Output Instructions
11.2 I/O Address Decoding and Design
11.3 I/O Address Map of X86 PCs
11.4 8255 PPI Chip
11.5 PC Interface Trainer and Bus Extender
11.6 I/O Programming with C/C++ and VB
11.7 8-Bit and 16-Bit I/O Timing in ISA Bus
Answers to Review Questions
12 Interfacing to the PC: LCD, Motor,
ADC, and Sensor
12.1 Interfacing an LCD to the PC
12.2 Interfacing a Stepper Motor to the PC
12.3 Interfacing DAC to the PC
12.4 Interfacing ADC and Sensors to the PC
Answers to Review Questions
13 8253/54 Timer and Music
13.1 8253/54 Timer Description and Initialization
13.2 IBM PC 8253/54 Timer Connections and Programming
13.3 Generating Music on the IBM PC
13.4 Shape of 8253/54 Outputs
Answers to Review Questions
14 Interrupts and the 8259 Chip
14.1 8088/86 Interrupts
14.2 IBM PC and MS DOS Assignment of Interrupts
14.3 8259 Programmable Interrupt Controller
14.4 Use of the 8259 Chip in the IBM PC/XT
14.5 Interrupts on 80286 and higher 80x86 PCs
Answers to Review Questions
15 Direct Memory Accessing; The 8237 DMA Chip
15.1 Concept of DMA
15.2 8237 DMA Chip Programming
15.3 8237 DMA Interfacing in the IBM PC/XT
15.4 Refreshing DRAM Using Channel 0 of the 8237
15.5 DMA in 80x86-based PC AT-Type Computers
Answers to Review Questions
16 Video and Video Adapters
16.1 Principles of Monitors and Video Adapters
16.2 Video Adapters and Text Mode Programming
16.3 Text Mode Programming using INT 10H
16.4 Graphics and Graphics Programming
Answers to Review Questions
17 Serial Data Communication and the 16450/8250/51 Chips
17.1 Basics of Serial Communication
17.2 Accessing IBM PC COM Ports Using DOS and BIOS
17.3 Interfacing the NS8250/16450 UART in the IBM PC
17.4 Intel 8251 USART and Synchronous Communication
Answers to Review Questions
18 Keyboard and Printer Interfacing
18.1 Interfacing the Keyboard to the CPU
18.2 PC Keyboard Interfacing and Programming
18.3 Printer and Printer Interfacing in the IBM PC
18.4 Bidirectional Data Bus in Parallel Ports
Answers to Review Questions
19 Floppy Disks, Hard Disks, and Files
19.1 Floppy Disk Organization
19.2 Hard Disks
19.3 Disk File Programming
Answers to Review Questions
20 The 80x87 Math Coprocessor
20.1 Math Coprocessor and IEEE Floating-Point
20.2 80x87 Instructions and Programming
20.3 8087 Hardware Connections in the IBM PC/XT
20.4 80x87 Instructions and Timing
Answers to Review Questions
21 386 Microprocessor: Real vs. Protected Mode
21.1 80386 in Real Mode
21.2 80386: A Hardware View
21.3 80386 Protected Mode
Answers to Review Questions
22
High-Speed Memory Interfacing and Cache
22.1 Memory Cycle Time of the 80x86
22.2 Page, Static Column, and Nibble Mode DRAMs
22.3 Cache Memory
22.4 EDO, SDRAM, and RAMBUS Memories
Answers to Review Questions
23 486, Pentium, Pentium Pro and MMX
23.1 The 80486 Microprocessor
23.2 Intel's Pentium
23.3 RISC Architecture
23.4 Pentium Pro Processor
23.5 MMX Technology
23.6 Processor Identification in Intel x86
Answers to Review Questions
24 MS DOS Structure, TSR, and Device Drivers
25 MS DOS Memory Management
25.1 80x86 PC Memory Terminology and Concepts
25.2 DOS Memory Management and Loading High
Answers to Review Questions
26 IC Technology and System Design Considerations
26.1 Overview of IC Technology
26.2 IC Interfacing and System Deisgn Considerations
26.3 Data Integrity and Error Detection in DRAM
Answers to Review Questions
27 ISA, PCI, and USB Buses
28 Programming DOS, BIOS Hardware with C/C++
28.1 BIOS and DOS Interrupt Programming with C
28.2 Programming PC Hardware with C/C++
Answers to Review Questions
A
Debug Programming
A.1 Entering and Exiting Debug
A.2 Examining and Altering teh Contents of Registers
A.3 Coding and Running Programs in Debug
A.4 Data Manipulation in Debug
A.5 Examining the Stack in Debug
A.6 Examining/Altering the Flag Register in Debug
A.7 Additional Debug Data Manipulation Commands
A.8 Loading and Writing Programs
B 80x86 Instructions and Timing
C Assembler Directives and Naming Rules
D DOS Interrupt 21H and 33H Listing
D.1 DOS 21H Interrupts
D.2 Mouse Interrupts 33H
E BIOS Interrupts
E.1 INT 10H Video Function Calls
E.2 INT 11H - Equipment Determination
E.3 INT 12H - Memory Size Determination
E.4 INT 14H - Asynchronouos Communication
E.5 INT 15H - System Services
E.6 INT 16H - Keyboard
E.7 INT 17H - Printer
E.8 INT 1AH - Timer and Real-Timer Clock Services
F ASCII Codes
G I/O Address Maps
G.1 IBM PC AT I/O Address Map
G.2 IBM PS/2 I/O Address Map
G.3 ISA Standard I/O Address Ports
H IBM PC/PS BIOS Data Area
I Data Sheets
References
Index