This book is written for a wide variety of introductory microprocessor courses. The only prerequisite for this book is
some knowledge of diodes, transistors, and simple digital devices.
My experience as an engineer and as a teacher indicates that it is much more productive to first learn one
microprocessor family very thoroughly and from that strong base learn others as needed. For this book I chose the
Intel 8086/80186/80286/80386/80486 and Pentium family of microprocessors. Devices in this family are used in millions
and millions of personal computers, including the IBM PC/AT, the IBM PS/2 models, and many “clones.” The 8086
was the first member of this family, and although it has been superseded by newer processors, the 8086 is still an
excellent entry point for learning about microprocessors. You don’t need to know about the advanced features of the
newer processors until you learn about multiuser/multitasking systems. Therefore, the 8086 is used for most of the
hardware and programming examples until Chapter 15, which discusses the features of the higher processors and
how these features are used in multiuser/multitasking systems. Chapter 16 further discusses Pentium Processors and
CONTENT AND ORGANIZATION
All chapters begin with fundamental objectives and conclude with a review of important terms and concepts. Each
chapter also concludes with a generous supply of questions and problems that reinforce both the theory and applications
presented in the chapters.
To help refresh your memory, Chapter 1 contains a brief review of the digital concepts needed for the rest of the
book. It also includes an overview of basic computer mathematics and arithmetic operations on binary, HEX, and BCD
Chapters 2–10 provide you with a comprehensive introduction to microprocessors, including interrupt applications,
digital and analog interfacing, and industrial controls. These chapters include an overview of the 8086 microprocessor
family and its architecture, programming language, and systems connections and troubleshooting.
Because I came into the world of electronics through the route of vacuum tubes, my first tendency in teaching
microprocessors was to approach them from a hardware direction. However, the more I designed with microprocessors
and taught microprocessor classes, the more I became aware that the real essence of a microprocessor is what you
can program it to do. Therefore, Chapters 2–5 introduce you to writing structured assembly language programs for
the 8086 microprocessor. The approach taken in this programming section is to solve the problem, write an algorithm
for the solution, and then simply translate the algorithm to assembly language. Experience has shown that this approach
is much more likely to produce a working program than just writing down assembly language instructions. The 8086
instruction set is introduced in Chapter 2–5 as needed to solve simple programming problems, but for reference Chapter
6 contains a dictionary of all 8086 instructions with examples for each.
Chapter 7 discusses the signals, timing, and system connections for a simple 8086-based microcomputer. Also
discussed in Chapter 7 is a systematic method for troubleshooting a malfunctioning 8086-based microcomputer system
and the use of a logic analyzer to observe microcomputer bus signals. Chapter 8 discusses how the 8086 responds to
interrupts, how interrupt-service procedures are written, and the operation of a peripheral device called a priorityinterrupt
Chapters 9 and 10 show how a microprocessor is interfaced with a wide variety of low-level input and output
devices. Chapter 9 shows how a microprocessor is interfaced with digital devices such as keyboards, displays, and
relays. Chapter 10 shows how a microprocessor is interfaced with analog input/output devices such as A/Ds,
D/As, and a variety of sensors. It also shows how all the “pieces” are put together to produce a microprocessor-based
scale and a simple microprocessor-based process control system. Chapter 10 concludes with a discussion of how
microprocessors can be used to implement digital filters.
Chapters 11-15 are devoted to the hardware, software, and peripheral interfacing for a microcomputer such as those
in the IBM PC and the IBM PS/2 families. Chapter 11 discusses motherboard circuitry, including DRAM systems,
caches, math coprocessors, and peripheral interface buses. It also shows how to use a schematic capture program to
draw the schematic, a simulator program to verify the logic and timing of the design, and a layout program to design
a printed-circuit board for the system. Knowledge of these electronic design automation tools is essential for anyone
developing high-speed microprocessor systems.
At the request of many advisors from industry, Chapter 12 introduces you to the C programming language, which
is used to write a large number of system-level programs. This chapter takes advantage of the fact that it is very easy
to learn C if you are already familiar with 8086-type assembly language. A section in this chapter also shows you how
to write simple programs which contain both C and assembly language modules.
Chapter 13 describes the operation and interfacing of common peripherals such as CRT displays, magnetic disks,
and printers. Chapter 14 shows how a microcomputer is interfaced with communication systems such as modems
Chapter 15 starts with a discussion of the needs that must be met by a multiuser/multitasking operating system and
then describes how the protected-mode features of the 80286, 80386, and 80486 processors meet these needs. This
section of the book also includes discussions of how to develop programs for the 386 in a variety of environments.
The chapter concludes with introductions to parallel processors, neural networks, and fuzzy logic. I think you will find
these newly developing areas as fascinating as I have.
Finally, Chapter 16 is about the Pentium processors and their architecture. Data transfer between processor and
memory or I/O is also discussed. The chapter ends with a brief description of the Hyper Thread or HT Technology.
SUGGESTIONS FOR ASSIGNMENTS
The text is comprehensive, yet flexible in its organization. Chapter 1 could be easily omitted if students have a solid
background in basic binary mathematics and digital fundamentals.
I suggest following Chapters 2–10 as an instructional block as each chapter builds on the preceding chapter. These
nine chapters represent ideal coverage for a “short course” in microprocessors. The remaining chapters represent an
opportunity for the instructor to tailor assignments for the students’ needs or perhaps to give an individual student
added study in recent developments in the architecture of microprocessors.
Individual topics from Chapter 11 could be selected for study as students gain knowledge of the “tools” available for
designing computer-based systems. The DRAM section is very important.
You may wish to assign or leave for outside reading Chapter 12 on programming in C, a new chapter. At the very least
you should take a careful look at the simple programming examples and the development of tools for C. If class time
does not permit assigning this chapter, you may wish to use selected examples and programs in your lecture presentations.
This chapter should be included in any course sequence which does not have a separate class in C programming.
Portions of the peripherals chapter may be assigned as required, depending upon the course syllabus. The CRT, disk,
and printer sections are highly recommended.
This is an important chapter, given the ever-expanding use of data communications. It should be assigned, if at all
possible, unless the curriculum includes a separate course in data communications. Of primary importance are the
sections on modems and LANs.
Chapters 15 and 16
The last two chapters discuss the cutting edge of the development of higher microprocessors up to 80486 and the
SALIENT FEATURES OF THIS EDITION
In response to feedback from a variety of electronics instructors and from the industry, the revised second edition of
Microprocessors and Interfacing: Programming and Hardware contains the following salient features.
1. Focused coverage of 8086 microprocessor.
2. Examples of programs with C and assembly language modules.
3. Interfacing illustrated via real life systems.
4. Introduction to Neural Networks and Fuzzy Logic.
5. Inclusion of a new chapter on Pentium Processors.
6. Focused discussion on Software Keyboard Interfacing.
7. Multimedia Technologies: MMX, SSE, SSE2 and SSE3 are also discussed.
SPECIAL FEATURES AND SUPPLEMENTS
This book contains many hardware and software exercises students can do to solidify their knowledge of
microprocessors. A dedicated website now supports the book. This website contains the Instructor’s Manual and
Experiments Manual for instructors and students.
The Experiments Manual contains 40 laboratory exercises that are directly coordinated to the text. Each experiment
includes chapter references, required equipment, objectives, and experimental procedures. An IBM PC or IBM PCcompatible
computer can be used to edit, assemble, link/locate, run, and debug many of the 8086 assembly language
The Instructor’s Manual contains answers to the review questions. It also includes experimental notes and answers
to selected questions for the Experiments Manual.
One of the main goals of this book is to teach you how to decipher manufacturers’ data sheets for microprocessor and
peripheral devices, so the book contains relevant parts of many data sheets. Because of the large number of devices
discussed, however, it was not possible to include complete data sheets. If you are doing an in-depth study, it is suggested
that you acquire or gain access to the latest editions of Intel Microprocessors and Peripherals handbooks. These are
available free of charge to colleges and universities from the Academic Relations Department of Intel. The bibliography
at the end of the book contains a list of other books and periodicals you can refer to for further details on the topics
discussed in the book.
If you have suggestions for improving the book or ideas that might clarify a point for someone else, please
communicate with me through the publisher.
DOUGLAS V. HALL