Preface

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, Pentium Pro Processor, Pentium II, Pentium III, and Pentium 4 - Architecture, Programming, and Interfacing, Seventh Edition

© 2005 by Barry B. Brey

This practical reference text is written for students in a course that requires a thorough knowledge of programming and interfacing of the Intel family of microprocessors. Today, anyone functioning or striving to function in a field of study that uses computers must understand assembly language programming and interfacing. Intel microprocessors have gained wide and at times exclusive wide application in many areas of electronics, communications, and control systems, particularly in desktop computer systems. A major addition to this seventh edition explains how to interface C/C++ with assembly language for both the older DOS and the Windows environments. Many applications include Visual C++ as a basis for learning assembly language using the inline assembler. Updated sections that detail new events in the fields of microprocessors and microprocessor interfacing have been added.

ORGANIZATION AND COVERAGE

To cultivate a comprehensive approach to learning, each chapter begins with a set of objectives that briefly define its content. Chapters contain many programming applications and examples that illustrate the main chapter topics. Each chapter ends with a numerical summary, which doubles as a study guide, and reviews the information just presented. Questions and problems are provided for reinforcement and practice including research paper suggestions.

This text contains many example programs using the Microsoft Macro Assembler program and the inline assembler in the Visual C++ environment, which provide a learning opportunity to program the Intel family of microprocessors. Operation of the programming environment includes the linker, library, macros, DOS function, BIOS functions, and Visual C/C++ program development. The inline assembler (C/C++) is illustrated for both the 16- and 32-bit programming environments of various versions of Visual C++. The text is written to use Visual Studio.NET 2003 as a development environment, but Visual Studio 6.0 can also be used with almost no change.

This text also provides a thorough description of family members, memory systems, and various I/O systems that include disk memory, ADC and DAC, 16550 UART, PIAs, timers, keyboard/display controllers, arithmetic coprocessors, and video display systems. Also discussed are the personal computer system buses (AGP, ISA, PCI, USB, serial ports, and parallel port). Through these systems, a practical approach to microprocessor interfacing can be learned.

APPROACH

Because the Intel family of microprocessors is quite diverse, this text initially concentrates on real-mode programming, which is compatible with all versions of the Intel family of microprocessors. Instructions for each family member, which includes the 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, and Pentium 4 processors, are compared and contrasted with the 8086/8088 microprocessors. This entire series of microprocessors is very similar, which allows more advanced versions, and their instructions, to be learned with the basic 8086/8088. Please note that the 8086/8088 are still used in embedded systems along with their updated counterparts: the 80186/80188 and 80386EX embedded microprocessor..

This text also explains the programming and operation of the numeric coprocessor, MMX extension, and the SIMD extension, which function in a system to provide access to floating-point calculations that are important in control systems, video graphics, and computer aided design (CAD) applications. The numeric coprocessor allows a program to access complex arithmetic operations that are otherwise difficult to achieve with normal microprocessor programming. The MMX and SIMD instructions allow both integer and floating-point data to be manipulated in parallel at very high speed.

This text also describes the pin-outs and function of the 8086-80486 and all versions of the Pentium microprocessor. First interfacing is explained using the 8086/8088 with some of the more common peripheral components. After explaining the basics, a more advanced emphasis is placed on the 80186/80188, 80386, 80486, and Pentium through Pentium 4 microprocessors. Coverage of the 80286, because of its similarity to the 8086 and 80386, is minimized so the 80386, 80486, and Pentium versions can be covered in complete detail.

Through this approach, the operation of the microprocessor and programming with the advanced family members, along with interfacing all family members, provides a working and practical background of the Intel family of microprocessors. Upon completing a course using this text, you will be able to:

  1. Develop control software to control an application interface microprocessor. Generally, the software developed will also function on all versions of the microprocessor. This software also includes DOS-based and Windows-based applications. The main emphasis is on developing inline assembly and C++ mixed language programs in the Windows environment.
  2. Program using MFC controls, handlers, and functions to use the keyboard, video display system, and disk memory in assembly language and C++.
  3. Develop software that uses macro sequences, procedures, conditional assembly, and flow control assembler directives that are linked to a Visual C++ program.
  4. Program the numeric coprocessor to solve complex equations.
  5. Develop software for the MMX and SIMD extensions.
  6. Explain the differences between the family members and highlight the features of each member.
  7. Program the numeric coprocessor to solve complex equations.
  8. Explain the differences between the family members and highlight the features of each member.
  9. Describe and use real and protected mode operation of the microprocessor.
  10. Interface memory and I/O systems to the microprocessor.
  11. Provide a detailed and comprehensive comparison of all family members and their software and hardware interfaces.
  12. Explain the function of the real time operating system in an embedded application.
  13. Explain the operation of disk and video systems.
  14. Interface small systems to the ISA, PCI, serial ports, parallel port, and USB bus in a personal computer system

return to publication list