Preface

8086/8088, 80286, 80386, and 80486 Assembly Language Programming

© 1995 by Barry B. Brey

This text is written for the student in a course of study that requires a thorough knowledge of programming the Intel family of microprocessors. It is a very practical reference text for anyone interested in all programming 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 of this important family of microprocessors. 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 define the contents of the chapter. This is followed by the body of the chapter, which includes many programming applications that 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. An end-of-the-chapter glossary defines each new term. 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 program, that provide an opportunity to learn how to program the Intel family of microprocessors. Operation of the programming environment includes the, linker, library, macros, DOS function, and BIOS functions.

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 and 80486, are compared and contrasted with the 8086/8088 microprocessor. This entire series of microprocessors is very similar, which allows more advanced versions to be learned once the basic 8086/8088 is 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). The numeric coprocessor functions in a system to provide 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 achieve with normal microprocessor programming.

Through this approach, the operation of the microprocessor and programming with the advanced family members, a working and practical background is attainable. On completion of a course of study based on this text, you should be able to:

  1. Develop control software to control an application interface to the 8086/8088, 80286, 80386, or 80486 microprocessor. 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 system, and disk memory in assembly language.
  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 (80287/80387) to solve complex equations.
  6. Explain the differences between the family members and highlight the features of each member.
  7. Describe and use real and protected mode operation of the 80286, 80386, and 80486 microprocessors.

CONTENT OVERVIEW

Chapter 1 introduces the Intel family of microprocessors with an emphasis on a microprocessor-based computer system. This first chapter serves to introduce the microprocessor, its history, its operation, and the methods used to store data in a microprocessor-based system.

Chapter 2 begins by exploring the programming model of the microprocessor and system architecture. Both real and protected mode operation is explained in this introductory chapter. Once an understanding of the basic machine is grasped, Chapters 3--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 6--8 provides applications using the assembler program. These applications include programming using DOS and BIOS function calls. Disk files are explained as well as keyboard and video operation on a personal computer system. This chapter provides the tools required to develop virtually any program on a personal computer system.

Chapter 9 explains some advanced programming techniques used in everyday software. These techniques include: interrupt hooks, terminate and stay resident software, and hot-key programs.

Chapter 10 details the operation, instruction set, and programming of the 80X87 numeric coprocessor family. Applications for the coprocessor include problems that solve complex equations, and allow data to be displayed in floating-point format on the video screen.

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 function calls.
  2. Complete listing of all 8086/8088/80286/80386/80486 instructions including many example instructions and machine coding in hexadecimal.
  3. Answers for the even-numbered questions and problems are provided in this appendix.

return to publication list