Preface

The Intel 32-bit Microprocessors: 80386, 80486, and Pentium

© 1995 by Barry B. Brey

This text is written for the student in a course of study that requires a thorough knowledge of programming and interfacing of the Intel family of microprocessors. It is a very practical reference text for anyone interested in the programming and interfacing aspects of this important microprocessor family. 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 applications in many areas of electronics, communications, control systems, and particularly in desktop computer systems.

ORGANIZATION AND COVERAGE

In order to cultivate a comprehensive approach to learning, each chapter of the text begins with a set of objectives that briefly defines the contents of the chapter. This is followed by the body of the chapter, which includes many programming applications to illustrate the main topics of the chapter. At the end of each chapter a numerical summary, which doubles as a study guide, reviews the information presented in the chapter. Finally, questions and problems are provided to promote practice and mental exercise with the concepts presented in the chapter.

This text contains many example programs using the Microsoft Macro Assembler (MASM) program to provide an opportunity to learn how to program the Intel family of microprocessors. Operation of the programming environment includes the linker, library, macros, DOS functions, and BIOS functions.

Also provided is a thorough description of each family member, memory systems, and various I/O systems that include disk memory, ADC and DAC, USARTs, PIAs, timers, keyboard/display controllers, arithmetic coprocessors, and video display systems. Through these systems, the reader learns a practical approach to microprocessor interfacing.

APPROACH

Because the Intel family of microprocessors is quite diverse, this text initially concentrates on real-mode assembly language programming, which is compatible with all versions of the Intel family of microprocessors. Instructions for each family member, (the 80386, 80486, and Pentium) are compared and contrasted with the earlier 8086/8088 microprocessor. This entire series of microprocessors is very similar, so more advanced versions can easily be learned once the basics are understood.

In addition to fully explaining the programming and operation of the microprocessor, this text also explains the programming and operation of the numeric coprocessor (8087, 80287, 80387, 80486/7, and Pentium). The numeric coprocessor provides access to floating-point calculations that are important in applications such as control systems, video graphics, and computer aided design (CAD). The numeric coprocessor allows a program to access complex arithmetic operations that are otherwise difficult to acheive with normal microprocessor programming.

Also described are the pinouts and function of the 80386, 80486, and Pentium microprocessors. Interfacing is first developed using the 80386/80486 with some of the more common peripheral components. After learning the basics, a more advanced emphasis is placed on the Pentium microprocessor. Coverage of earlier versions of the Intel microprocessor has been minimized so the 80386, 80486, and Pentium can be covered in complete detail.

This approach--covering the operation of the microprocessor and programming with advanced family members, along with the interfacing of all family members--provides a working and practical background on the Intel family of microprocessors. On completion of a course of study based on this text, you should be able to:

  1. Develop control software to control an application interfaced to the 8086/8088, 80286, 80386, 80486, and Pentium microprocessors. Generally, the software developed will also function on all versions of the microprocessor. This software also includes DOS-based applications.
  2. Program using DOS function calls to control the keyboard, video display, and disk memory in assembly langauge.
  3. Use the BIOS functions to control the keyboard, display, and various other components in the computer system.
  4. Develop software that uses interrupt hooks and hot-keys to gain access to terminate and stay resident software.
  5. Program the numeric coprocessor to solve complex equations.
  6. Explain the difference between family members and highlight the features of each member.
  7. Describe and use real- and protected-mode operation of the 80286, 80386, 80486, and Pentium microprocessors.
  8. Interface memory and I/O to the microprocessor.
  9. Provide a detailed and comprehensive comparison of all family members and their software and hardware differences.
  10. Explain the operation of disk and video systems.

CONTENT OVERVIEW

Chapters 1 and 2 introduce the Intel family of microprocessors with an emphasis on the microprocessor-based computer system. These early chapters introduce the microprocessor, its history, its operation, and the methods used to store data in a microprocessor-based computer system. They also explore the programming model of the microprocessor and system architecture. Both real- and protected-mode operation are explained in Chapter 2.

Once an understanding of the basic operation is grasped, Chapters 3 through 6 explain how each instruction functions with the Intel family of microprocessors. As instructions are explained, simple applications are presented to illustrate the operation of the instructions and develop basic programming concepts.

Once the basis for programming is developed, Chapter 7 provides applications using the assembler program. These applications include using DOS and BIOS function calls. Disk files are explained, as well as keyboard and video operation on the personal computer system. This chapter provides the tools needed to develop virutally any program on a personal computer system. It also introduces the concept of interrupt hooks and hot-keys.

Chapter 8 details the operation and programming of the 8087--Pentium family of arithmetic coprocessors. Today few applications function efficiently without the power of the arithmetic coprocessor.

Chapter 9 introduces the 80386 and 80486 microprocessors as a basis for learning basic memory and I/O interfacing, which follows in later chapters. This chapter shows the buffered system as well as system timing.

Chapter 10 provides complete detail on memory interface, using both integrated and programmable logic devices. Parity is illustrated, as are dynamic memory systems. The 8-, 16-, 32-, and 64-bit memory systems are provided so the 8086--Pentium microprocessors can be interface to memory. Also discussed are interleaved memory systems and cache systems.

Chapter 11 provides a detailed look at basic I/O interfacing that includes PIAs, timers, keyboard/display controllers, USARTs, and ADC/DAC. It also describes the interface of both DC and stepper motors.

Once these basic I/O components and their interface to the microprocessor is understood, Chapters 12 and 13 provide detail on advanced I/O techniques that include interrupts and disk memory access (DMA). Applications include a printer interface, real-time clock, disk memory, and video system.

Chapter 14 provides detail on the advanced Pentium microprocessor. In this chapter we explore the differences between the 80386/80486 and the Pentium. Also described are memory management and memory paging.

Appendices are included to enhance the application of the text. These include:

  1. A complete listing of the DOS INT 21H function calls. This appendix also details the use of the assembler program and many of the BIOS fucntion calls, including BIOS function call 10H.
  2. Complete listing of all 8086/8088, 80286, 80386, 80486, and Pentium instructions including many example instructions and machine coding in hexadecimal, as well as clock timing information.
  3. A compact list of all instructions that change the flag bits.
  4. Answers for the even-numbered questions and problems.

return to publication list