Preface

Laboratory Manual to Accompany 8086/8088, 80186, 80286, 80386, 80486, and Pentium Microprocessors

© 1995 by Barry B. Brey

This manual contains experiments that are designed to teach DOS and assembly language programming. These experiments, which are not trivial, do not teach the operation of each instruction, that is left to the classroom or the student's own stratagem. The experiments are designed to provide a substantial and motivational lab experience. Each experiment teaches an important programming technique. This manual is not a textbook, it is designed as a companion to any of the author's Intel-based microprocessor texts.

This manual is also an ideal addition to many of the other textbooks available for the personal computer or as a stand alone text demonstrating assembly language programming with the personal computer. It is also a beneficial addition to any technical library where requirements demand assembly language programming for the personal computer.

ORGANIZATION AND SCOPE

In order to cultivate a comprehensive approach to learning, each experiment begins with a set of objectives that breifly define the main features of the experiment. This is followed by the procedure, which includes many programming examples and tasks that illustrate the main topic of the experiment. At the end of each experiment are questions that promote practice and mental exercises with the concepts presented in the experiment.

This lab manual provides many example programs, using the Microsoft Macro Assembler (MASM) program, that provide an opportunity to learn how to program the Intel family of microprocessors. Ideally, the personal computer being programmed should be at least an 80386-based machine and version 6.XX of MASM should be available. The student price of MASM (version 6.11) is about $50.00. Most of the experiments function on any personal computer, even an 8088-based machine.

As the experiments in this manual are performed, a series of powerful macros is developed that can be used for future assembly language programs. Macro sequences ease the assembly language programming task and are particularly applicable with today's systems that are cache-based.

The last experiment provides a list of 6 significant programming problems that are ideal for providing an enhanced programming experience. Because of the complexity of these programs, they should be used as enhancement.

Five appendices are provided that furnish complete detail on the instruction set, DOS INT 21H function calls, BIOS function calls, mouse INT 33H function calls, and the ASCII-coded character set. Note that the ASCII code, as presented, includes the standard set, extended set for both the keyboard and printer, and also the keyboard scanning codes.

APPROACH

Because the Intel family of microprocessors is quite diverse, this manual concentrates on real-mode assembly language programming for the personal computer as a springboard to more advanced applications requiring assembly language programming. In addition to fully developing many programming techniques, this manual also details programming for the numeric coprocessor (8087, 80187, 80287, 80387, 80486/7, and Pentium). 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).

Through this approach--the operation of the personal computer and programming with the Intel family of microprocessors--this manual provides a working and practical background on the Intel family of microprocessors. On completion of a laboratory course of study based on this manual, you should be able to:

  1. Use EDIT and DOS from the command line to create, edit, and modify the CONFIG.SYS, AUTOEXEC.BAT. and batch programs.
  2. Debug and write short assembly language programs with DEBUG.
  3. Create and debug programs in assembly language using the Programmer's WorkBench (PWB), CodeView, and MASM
  4. Display virtually any type of text information on the video screen such as: character strings, integers in any number base, and floating-point or real data.
  5. Graphics mode displays are an important part of programming. The mode 03H, text display, is detailed as well as mode 12H, 480x640, 16-color, display to generate graphics displays.
  6. Data, which never seem to be in the correct form in a computer, is manipulated from one form to another in a data conversion experiment.
  7. Use the mouse in both text and graphics modes.
  8. Create and use a macro include library.
  9. Hook into the interrupt structure of the personal computer to access the basic I/O features found in the system.
  10. Write terminate and stay resident (TSR) programs that use hot-keys for activation.
  11. Program using the arithmetic coprocessor to solve complex tasks requiring real data.
  12. Use the 32-bit register structure as well as scaled-index addressing to access data with the 80386, 80486, or Pentium microprocessor.
  13. Control most aspects of the personal computer through the DOS INT 21H and BIOS function calls.

return to publication list