1 INTRODUCTION TO THE MICROPROCESSOR AND COMPUTER 1
Introduction/Chapter Objectives 1
1-1 A Historical Background 2
1-2 The Microprocessor-Based Personal Computer System 13
1-3 Number Systems 28
1-4 Computer Data Formats 34
1-5 Summary 42
1-6 Questions and Problems 44
2 THE MICROPROCESSOR AND ITS ARCHITECTURE 48
Introduction/Chapter Objectives 48
2-1 Internal Microprocessor Architecture 48
2-2 Real Mode Memory Addressing 54
2-3 Introduction to Protected Mode Memory Addressing 59
2-4 Memory Paging 64
2-5 Summary 67
2-6 Questions and Problems 69
3 ADDRESSING MODES 71
Introduction/Chapter Objectives 71
3-1 Data-Addressing Modes 72
3-2 Program Memory-Addressing Modes 93
3-3 Stack Memory-Addressing Modes 95
3-4 Summary 98
3-5 Questions and Problems 101
4 DATA MOVEMENT INSTRUCTIONS 104
Introduction/Chapter Objectives 104
4-1 MOV Revisited 105
4-2 PUSH/POP 113
4-3 Load-Effective Address 118
4-4 String Data Transfers 121
4-5 Miscellaneous Data Transfer Instructions 127
4-6 Segment Override Prefix 132
4-7 Assembler Detail 133
4-8 Summary 142
4-9 Questions and Problems 144
5 ARITHMETIC AND LOGIC INSTRUCTIONS 147
Introduction/Chapter Objectives 147
5-1 Addition,Subtraction,and Comparison 147
5-2 Multiplication and Division 157
5-3 BCD and ASCII Arithmetic 163
5-4 Basic Logic Instructions 166
5-5 Shift and Rotate 172
5-6 String Comparisons 176
5-7 Summary 177
5-8 Questions and Problems 179
6 PROGRAM CONTROL INSTRUCTIONS 183
Introduction/Chapter Objectives 183
6-1 The Jump Group 183
6-2 Controlling the Flow of an Assembly Language Program 193
6-3 Procedures 200
6-4 Introduction to Interrupts 205
6-5 Machine Control and Miscellaneous Instructions 209
6-6 Summary 212
6-7 Questions and Problems 215
7 PROGRAMMING THE MICROPROCESSOR 217
Introduction/Chapter Objectives 217
7-1 Modular Programming 218
7-2 Using the Keyboard and Video Display 231
7-3 Data Conversions 245
7-4 Disk Files 256
7-5 Example Programs 266
7-6 Interrupt Hooks 273
7-7 Summary 284
7-8 Questions and Problems 285
8 USING ASSEMBLY LANGUAGE WITH C/C++ 288
Introduction/Chapter Objectives 288
8-1 Using Assembly Language with C/C++ for 16-Bit Applications 288
8-2 Using Assembly Language with C/C++ for 32-Bit Applications 295
8-3 Separate Assembly Objects 299
8-4 Summary 303
8-5 Questions and Problems 304
9 8086/8088 HARDWARE SPECIFICATIONS 306
Introduction/Chapter Objectives 306
9-1 Pin-Outs and the Pin Functions 306
9-2 Clock Generator(8284A) 311
9-3 Bus Buffering and Latching 314
9-4 Bus Timing 319
9-5 READY and the Wait State 324
9-6 Minimum Mode Versus Maximum Mode 327
9-7 Summary 329
9-8 Questions and Problems 330
10 MEMORY INTERFACE 332
Introduction/Chapter Objectives 332
10-1 Memory Devices 332
10-2 Address Decoding 344
10-3 8088 and 80188(8-Bit)Memory Interface 352
10-4 8086,80186,80286,and 80386SX(16-Bit)Memory Interface 360
10-5 80386DX and 80486(32-Bit)Memory Interface 367
10-6 Pentium,Pentium Pro,and Pentium Ⅱ(64-Bit)Memory Interface 370
10-7 Dynamic RAM 373
10-8 Summary 379
10-9 Questions and Problems 380
11 BASIC I/O INTERFACE 383
Introduction/Chapter Objectives 383
11-1 Introduction to I/O Interface 383
11-2 I/O Port Address Decoding 392
11-3 The Programmable Peripheral Interface 398
11-4 The 8279 Programmable Keyboard/Display Interface 422
11-5 8254 Programmable Interval Timer 429
11-6 16550 Programmable Communications Interface 439
11-7 Analog-to-Digital(ADC)and Digital-to-Analog(DAC)Converters 447
11-8 Summary 453
11-9 Questions and Problems 455
12 INTERRUPTS 458
Introduction/Chapter Objectives 458
12-1 Basic Interrupt Processing 458
12-2 Hardware Interrupts 467
12-3 Expanding the Interrupt Structure 473
12-4 8259A Programmable Interrupt Controller 476
12-5 Interrupt Examples 490
12-6 Summary 494
12-7 Questions and Problems 495
13 DIRECT MEMORY ACCESS AND DMA-CONTROLLED I/O 497
Introduction/Chapter Objectives 497
13-1 Basic DMA Operation 497
13-2 The 8237 DMA Controller 499
13-3 Shared-Bus Operation 513
13-4 Disk Memory Systems 530
13-5 Video Displays 539
13-6 Summary 545
13-7 Questions and Problems 546
14 THE ARITHMETIC COPROCESSOR AND MMX TECHNOLOGY 548
Introduction/Chapter Objectives 548
14-1 Data Formats for the Arithmetic Coprocessor 549
14-2 The 80X87 Architecture 553
14-3 Instruction Set 558
14-4 Programming with the Arithmetic Coprocessor 582
14-5 Introduction to MMX Technology 589
14-6 Summary 602
14-7 Questions and Problems 603
15 BUS INTERFACE 607
Introduction/Chapter Objectives 607
15-1 The ISA Bus 607
15-2 The Extended ISA(EISA)and VESA Local Buses 614
15-3 The Peripheral Component Interconnect(PCI)Bus 620
15-4 The Universal Serial Bus(USB) 628
15-5 Accelerated Graphics Port(AGP) 632
15-6 Summary 632
15-7 Questions and Problems 633
16 THE 80186,80188,AND 80286 MICROPROCESSORS 635
Introduction/Chapter Objectives 635
16-1 80186/80188 Architecture 635
16-2 Programming the 80186/80188 Enhancements 645
16-3 80C188EB Example Interface 663
16-4 Introduction to the 80286 667
16-5 Summary 670
16-6 Questions and Problems 671
17 THE 80386 AND 80486 MICROPROCESSORS 673
Introduction/Chapter Objectives 673
17-1 Introduction to the 80386 Microprocessor 674
17-2 Special 80386 Registers 688
17-3 80386 Memory Management 690
17-4 Moving to Protected Mode 698
17-5 Virtual 8086 Mode 711
17-6 The Memory Paging Mechanism 712
17-7 Introduction to the 80486 Microprocessor 716
17-8 Summary 726
17-9 Questions and Problems 728
18 THE PENTIUM AND PENTIUM PRO MICROPROCESSORS 730
Introduction/Chapter Objectives 730
18-1 Introduction to the Pentium Microprocessor 731
18-2 Special Pentium Registers 740
18-3 Pentium Memory Management 742
18-4 New Pentium Instructions 744
18-5 Introduction to the Pentium Pro Microprocessor 747
18-6 Special Pentium Pro Features 757
18-7 Summary 757
18-8 Questions and Problems 758
19 THE PENTIUM Ⅱ MICROPROCESSOR 760
Introduction/Chapter Objectives 760
19-1 Introduction to the Pentium Ⅱ Microprocessor 761
19-2 Pentium Ⅱ Software Changes 769
19-3 Summary 772
19-4 Questions and Problems 772
APPENDIXES 774
(A)The Assembler,Disk Operating System,Basic I/O System,Mouse,and DPMI Memory Manager 774
(B)Instruction Set Summary 848
(C)Flag-Bit Changes 936
(D)Answers to Selected Even-Numbered Questions and Problems 938
INDEX 963