You are previewing The x86 Microprocessors: 8086 to Pentium, Multicores, Atom and the 8051 Microcontroller, 2nd Edition.
O'Reilly logo
The x86 Microprocessors: 8086 to Pentium, Multicores, Atom and the 8051 Microcontroller, 2nd Edition

Book Description

This second edition of

Table of Contents

  1. Preface
  2. Acknowledgements
  3. About the Author
  4. Part I The x86 Microprocessors
    1. 0 Basics of Computer Systems
      1. 0.1 A Brief History of Microprocessors
      2. 0.2 Basics of Computer Architecture
      3. 0.3 Computer Languages
      4. 0.4 RISC and CISC Architectures
      5. 0.5 Number Systems
      6. 0.6 Number Format Conversions
      7. 0.7 Computer Arithmetic
      8. 0.8 Units of Memory Capacity
      9. 0.9 The 8085 Microprocessor
      10. Key Points of This Chapter
      11. Questions
      12. Exercises
    2. 1 The Architecture of 8086
      1. 1.1 Internal Block Diagram of the 8086
      2. 1.2 Execution Unit
      3. 1.3 Bus Interface Unit
      4. 1.4 Addressing Modes
      5. Key Points of This Chapter
      6. Questions
      7. Exercises
    3. 2 Programming Concepts–I
      1. 2.1 The Assembly Process
      2. 2.2 Assemblers for x86
      3. 2.3 Memory Models
      4. 2.4 Instruction Design
      5. Key Points of This Chapter
      6. Questions
      7. Exercises
    4. 3 Programming Concepts–II
      1. 3.1 Approaches to Programming
      2. 3.2 Data Transfer Instructions
      3. 3.3 Branch Instructions
      4. 3.4 Arithmetic Instructions
      5. 3.5 Logical Instructions
      6. 3.6 Shift and Rotate Instructions
      7. Key Points of This Chapter
      8. Questions
      9. Exercises
    5. 4 Programming Concepts–III
      1. 4.1 String Instructions
      2. 4.2 Procedures
      3. 4.3 Macros
      4. 4.4 Number Format Conversions
      5. 4.5 Ascii Operations
      6. 4.6 Conversions for Computations and Display/Entry
      7. 4.7 Signed Number Arithmetic
      8. 4.8 Programming Using High Level Language Constructs
      9. Key Points of This Chapter
      10. Questions
      11. Exercises
    6. 5 Programming Concepts–IV
      1. 5.1 Input / Output Programming
      2. 5.2 I/O Instructions
      3. 5.3 Modular Programming
      4. 5.4 Programming in C with Assembly Modules
      5. Key Points of This Chapter
      6. Questions
      7. Exercises
    7. 6 The Hardware Structure of 8086
      1. 6.1 Pin Configuration
      2. 6.2 Clock 6-14
      3. 6.3 Other Processor Activities
      4. 6.4 Maximum Mode
      5. 6.5 Instruction Cycle
      6. Key Points of This Chapter
      7. Questions
      8. Exercises
    8. 7 Memory and I/O Decoding
      1. 7.1 Memory Device Pins
      2. 7.2 Memory Address Decoding
      3. 7.3 Memory Banks
      4. 7.4 I/O Address Decoding
      5. Key Points of This Chapter
      6. Questions
      7. Exercises
    9. 8 The Interrupt Structure of 8086
      1. 8.1 Interrupts of 8086
      2. 8.2 Dedicated Interrupt Types
      3. 8.3 Software Interrupts
      4. 8.4 Hardware Interrupts
      5. 8.5 Priority of Interrupts
      6. 8.6 Interrupt type allocation for Current pcs
      7. 8.7 Bios 10H Functions
      8. 8.8 Addressing Video Memory Directly
      9. 8.9 Keyboard Interfacing
      10. 8.10 Hooking an Interrupt
      11. Key Points of This Chapter
      12. Questions
      13. Exercises
    10. 9 Peripheral Interfacing–I
      1. 9.1 Trainer Kit
      2. 9.2 Programmable Peripheral Interface (PPI)-8255A
      3. 9.3 Modes of Operation
      4. 9.4 Mode 0
      5. 9.5 Mode 1
      6. 9.6 Mode 2 (Strobed Bidirectional Bus I/O)
      7. 9.7 Centronics Printer Interface
      8. 9.8 Interfacing an Analog to Digital Converter to the 8086
      9. 9.9 Interfacing to a Digital to Analog Converter
      10. 9.10 Interfacing Liquid Crystal Displays to the 8086
      11. 9.11 Interfacing a Stepper Motor to the 8086
      12. 9.12 Hex Keyboard Interfacing
      13. 9.13 Interfacing Led Displays
      14. Key Points of This Chapter
      15. Questions
      16. Exercises
    11. 10 Peripheral Interfacing–II
      1. 10.1 The Programmable Interval Timer 8253/8254
      2. 10.2 The Programmable Keyboard Display Interface – 8279
      3. 10.3 The Programmable Interrupt Controller (PIC) 8259
      4. 10.4 Cascade Mode
      5. Key Points of This Chapter
      6. Questions
      7. Exercises
    12. 11 Peripheral Interfacing–III
      1. 11.1 Serial Communication Principles
      2. 11.2 Simplex, Half Duplex and Full Duplex Communication
      3. 11.3 The Programmable Serial Communication Interface
      4. 11.4 Internal Reset on Power Up
      5. 11.5 Direct Memory Access
      6. 11.6 The DMA Controller – 8237
      7. 11.7 DMA and IBM-PC
      8. 11.8 PCI Based Computers
      9. Key Points of This Chapter
      10. Questions
      11. Exercises
    13. 12 Semiconductor Memory Devices
      1. 12.1 Semiconductor Memory
      2. 12.2 Dynamic Ram
      3. 12.3 Synchronous Dram (Sdram)
      4. 12.4 ROM (Read Only Memory)
      5. 12.5 Cache Memory
      6. 12.6 Mapping Techniques
      7. 12.7 Cache and the x86 Family
      8. Key Points of This Chapter
      9. Questions
      10. Exercises
    14. 13 Multiprocessor Configurations
      1. 13.1 Multiprocessor Systems
      2. 13.2 Multiprocessing Using 8086
      3. 13.3 The 8086 and 8089 in a Tightly Coupled Configuration
      4. 13.4 Loosely Coupled Configurations and Bus Arbitration
      5. 13.5 Bus Arbitration Using the 8289 Bus Arbiter IC
      6. 13.6 The Arithmetic Coprocessor 8087
      7. Key Points of This Chapter
      8. Questions
      9. Exercises
    15. 14 Advanced ­Processors–80286 to Pentium
      1. 14.1 The 80286 Processor
      2. 14.2 The 80386
      3. 14.3 Internal Architecture
      4. 14.4 Programming Enhancements
      5. 14.5 Hardware Features of 80386
      6. 14.6 Virtual Memory
      7. 14.7 Memory Management Unit
      8. 14.8 Converting a Logical Address to a Physical Address
      9. 14.9 Calculating the Size of the Logical Address Space
      10. 14.10 Protection
      11. 14.11 Multi Tasking
      12. 14.12 Interrupts of 80386
      13. 14.13 Privileged Instructions
      14. 14.14 Enhanced Features of 80486
      15. 14.15 Data Alignment
      16. 14.16 The Pentium Processor
      17. Key Points of This Chapter
      18. Questions
      19. Exercises
    16. 15 Microarchitectural Techniques of Advanced Processors
      1. 15.1 Enhancing Performance – Why Pipelining?
      2. 15.2 Replication – The Superscalar Concept
      3. 15.3 Pentium Pro (P6) Architecture
      4. 15.4 VLIW Architecture
      5. Key Points of This Chapter
      6. Questions
      7. Exercises
    17. 16 Multicore Processors
      1. 16.1 Multicore Processing – The Concepts
      2. 16.2 Major Issues in Multicore Processing
      3. 16.3 The x86-based Chip Multiprocessors
      4. 16.4 Conclusion
      5. Key Points of This Chapter
      6. Questions
      7. Exercises
    18. 17 Beyond Pentium–More Advanced Processors
      1. 17.1 Processors Based on the P6 Microarchitecture
      2. 17.2 Features of Pentium Pro
      3. 17.3 Pentium-II and Pentium-III
      4. 17.4 Streaming SIMD Extensions (SSE)
      5. 17.5 Pentium-IV
      6. 17.6 The Continued Dominance of x86
      7. 17.7 ‘Core’ Microarchitecture
      8. 17.8 Multicore Processors
      9. 17.9 Nehalem Microarchitecture
      10. 17.10 Sandy Bridge and IvyBridge
      11. 17.11 Fourth-Generation Core Processor Family
      12. 17.12 Important Technological Features in IA Processors
      13. 17.13 Nanometer Technology
      14. 17.14 Difference Between Core i3, i5 and i7 Processors
      15. Key Points of This Chapter
      16. Questions
      17. Exercises
    19. 18 Atom SoC–Intel’s High-end Embedded Processor
      1. 18.1 History of Intel’s Embedded Processors
      2. 18.2 The Bonnell Microarchitecture
      3. 18.3 The Atom SoC
      4. 18.4 Power Reduction Techniques in Processors
      5. 18.5 Advanced Power and Configuration Interface
      6. 18.6 The Silver Mont Micro Architecture
      7. Key Points of This Chapter
      8. Questions
      9. Exercises
  5. Part II The 8051 Microcontroller
    1. 19 The 8051 Microcontroller: The Programmer’s Perspective
      1. 19.1 History and Family Details of 8051
      2. 19.2 8051: The Programmer’s Perspective
      3. 19.3 Assembly Language Programming
      4. 19.4 Internal RAM
      5. 19.5 The 8051 Stack
      6. 19.6 Processor Status Word (PSW)
      7. 19.7 Assembler Directives
      8. 19.8 Storing Data in Code Memory (ROM)
      9. 19.9 The Instruction Set of 8051
      10. 19.10 Port Programming
      11. 19.11 Subroutines (Procedures)
      12. 19.12 Delay Loops
      13. Key Points of This Chapter
      14. Questions
      15. Exercises
    2. 20 Programming the Peripherals of 8051
      1. 20.1 Pin Configuration of 8051
      2. 20.2 Programming the Internal Peripherals
      3. 20.3 Timers of 8051
      4. 20.4 Counter Programming
      5. 20.5 Interrupts of 8051
      6. 20.6 Serial Communication
      7. Key Points of This Chapter
      8. Questions
      9. Exercises
    3. 21 Interfacing External Peripherals to the 8051
      1. 21.1 Interfacing ADCs and DACs to 8051
      2. 21.2 Interfacing a Digital to Analog Converter (DAC) to 8051
      3. 21.3 Interfacing with LCD Displays
      4. 21.4 Interfacing with Light Emitting Diode Displays
      5. 21.5 Hex Keyboard Interfacing
      6. 21.6 Stepper Motor Interfacing
      7. 21.7 DC Motor Interfacing
      8. Key Points of This Chapter
      9. Questions
  6. Appendix A 8086 16-bit HMOS Microprocessor 8086/8086-2/8086-1
  7. Appendix B Use of dos and Debug Commands for masm
  8. Appendix C Instruction Set and Instruction Timing of 8086
  9. Appendix D List of dos and bios Functions
  10. Appendix E 80x87 Instruction Set (x87 — Pentium)
  11. Appendix F The Instruction Set of 8051
  12. Appendix G Using the Keil µ Vision 4 Tools for 8051
  13. Bibliography