| Introduction to Microprocessors and Microcomputer-Based Applications | |
| Evolution of the Microprocessor | |
| Microprocessor Data Types | |
| Unsigned and Signed Binary Types | |
| BCD (Binary Coded Decimal) Numbers | |
| ASCII | |
| Floating-Point Numbers | |
| Microcomputer Hardware | |
| The System Bus | |
| The Microprocessor | |
| Memory Organization | |
| Input/Output (I/O) | |
| Microcomputer System Software and Programming Concepts | |
| System Software | |
| Programming Concepts | |
| Typical Microcomputer Addressing Modes and Instructions | |
| Introduction | |
| Addressing Modes | |
| Instruction Types | |
| Basic Features of Microcomputer Development Systems | |
| System Development Flowchart | |
| Software Development | |
| Hardware Development | |
| Typical Microprocessors | |
| Typical Practical Applications | |
| Personal Workstations | |
| Fault-Tolerant Systems | |
| Real-Time Controllers | |
| Robotics | |
| Embedded Control | |
| Questions and Problems | |
| Intel 8085 | |
| Introduction | |
| Register Architecture | |
| Memory Addressing | |
| 8085 Addressing Modes | |
| 8085 Instruction Set | |
| Timing Methods | |
| 8085 Pins and Signals | |
| 8085 Instruction Timing and Execution | |
| Basic System Timing | |
| 8085 Memory Read I/O Read | |
| 8085 Memory Write and I/O Write | |
| 8085 Input/Output (I/O) | |
| 8085 Programmed I/O | |
| 8085 Interrupt System | |
| 8085 DMA | |
| 8085 SID and SOD Lines | |
| 8085-Based System Design | |
| Questions and Problems | |
| Intel 8086 | |
| Introduction | |
| 8086 Architecture | |
| 8086 Addressing Modes | |
| Addressing Modes for Accessing Immediate and Register Data (Register and Immediate Modes) | |
| Addressing Modes for Accessing Data in Memory (Memory Modes) | |
| Addressing Modes for Accessing I/O Ports (I/O Modes) | |
| Relative Addressing Mode | |
| Implied Addressing Mode | |
| 8086 Instruction Set | |
| 8086 Assembler-Dependent Instructions | |
| ASM-86 Assembler Directives | |
| Segment and Ends | |
| Assume Directive | |
| DUP Directive | |
| System Design Using the 8086 | |
| Pins and Signals | |
| 8086 Basic System Concepts | |
| Interfacing with Memories | |
| 8086 Programmed I/O | |
| 8086-Based Microcomputer | |
| 8086 Interrupt System | |
| Predefined Interrupts (0 to 4) | |
| User-Defined Software Interrupts | |
| User-Defined Hardware | |
| 8086 DMA | |
| Questions and Problems | |
| Intel 80186/80286/80386 | |
| Intel 80186 and 80286 | |
| Intel 80186 | |
| Intel 80286 | |
| Intel 80386 | |
| Basic 80386 Programming Model | |
| 80386 Instruction Set | |
| Memory Organization | |
| I/O Space | |
| 80386 Interrupts | |
| 80386 Reset and Initialization | |
| Testability | |
| Debugging | |
| 80386 Pins and Signals | |
| 80386 Bus Transfer Technique | |
| 80386 Read and Write Cycles | |
| 80386 Modes | |
| 80386 System Design | |
| 80386 Memory Interface | |
| 80386 I/O | |
| Coprocessor Interface | |
| Coprocessor Hardware Concepts | |
| Coprocessor Registers | |
| Coprocessor Instructions | |
| Questions and Problems | |
| Motorola MC68000 | |
| Introduction | |
| 68000 Programming Model | |
| 68000 Addressing Structure | |
| 68000 Addressing Modes | |
| Register Direct Addressing | |
| Address Register Indirect Addressing | |
| Absolute Addressing | |
| Program Counter Relative Addressing | |
| Immediate Data Addressing Mode | |
| Implied Addressing | |
| 68000 Instruction Set | |
| Data Movement Instructions | |
| Arithmetic Instructions | |
| Logical Instructions | |
| Shift and Rotate Instructions | |
| Bit Manipulation Instructions | |
| Binary-Coded Decimal Instructions | |
| Program Control Instructions | |
| System Control Instructions | |
| 68000 Stacks | |
| 68000 Pins and Signals | |
| Synchronous and Asynchronous Control Lines | |
| System Control Lines | |
| Interrupt Control Lines | |
| DMA Control Lines | |
| Status Lines | |
| 68000 System Diagram | |
| Timing Diagrams | |
| 68000 Memory Interface | |
| 68000 Programmed I/O | |
| 68000-6821 Interface | |
| Motorola 68000-6821 Interface | |
| 68000/2716/6116/6821-Based Microcomputer | |
| 68000 Interrupt I/O | |
| External Interrupts | |
| Internal Interrupts | |
| 68000 Exception Map | |
| 68000 Interrupt Address Vector | |
| An Example of Autovector and Nonautovector Interrupts | |
| 68000 DMA | |
| 68000 Exception Handling | |
| Multiprocessing with the 68000 Using the TAS Instruction and as Signal | |
| Questions and Problems | |
| Motorola MC68020 | |
| Introduction | |
| Programming Model | |
| Data Types, Organization, and CPU Space Cycle | |
| MC68020 Addressing Modes | |
| 68020 Instructions | |
| 68020 Advanced Instructions | |
| MC68020 Cache/Pipelined Architecture and Operation | |
| MC68020 Virtual Memory | |
| MC68020 Coprocessor Interface | |
| MC68020 Pins and Signals | |
| MC68020 Timing Diagrams | |
| Exception Processing | |
| MC68020 System Design | |
| Questions and Problems | |
| Motorola MC68030/MC68040, Intel 80486, and Pentium Microprocessors | |
| Motorola MC68030 | |
| MC68030 Block Diagram | |
| MC68030 Programming Model | |
| MC68030 Data Types, Addressing Modes, and Instructions | |
| MC68030 Cache | |
| 68030 Pins and Signals | |
| MC68030 Read and Write Timing Diagrams | |
| MC68030 On-Chip Memory Management Units | |
| MC68040 | |
| Introduction | |
| Register Architecture/Addressing Modes | |
| Instruction Set/Data Types | |
| 68040 Processor Block Diagram | |
| 68040 Memory Management | |
| Discussion and Conclusion | |
| Intel 80486 Microprocessor | |
| Intel 80486/80386 Comparison | |
| Special Features of the 80486 | |
| 80486 New Instructions Beyond Those of the 80386 | |
| Intel Pentium Microprocessor | |
| Pentium Processor Block Diagram | |
| Pentium Registers | |
| Pentium Addressing Modes and Instructions | |
| Pentium Vs. 80486 Basic Differences in Registers, Paging, Stack Operations, and Exceptions | |
| Input/Output | |
| Applications with the Pentium | |
| Questions and Problems | |
| RISC Microprocessors: Intel 80960, Motorola MC88100, and PowerPC | |
| Basics of RISC | |
| Intel 80960 | |
| Introduction | |
| Key Performance Features | |
| 80960SA/SB Registers | |
| Data Types and Addresses | |
| 80960SA/SB Instruction Set | |
| 80960SA/SB Pins and Signals | |
| Basic Read and Write | |
| 80960SA/SB-Based Microcomputer | |
| Motorola MC88100 RISC Microprocessor | |
| 88100/88200 Interface | |
| 88100 Registers | |
| 88100 Data Types, Addressing Modes, and Instructions | |
| 88100 Pins and Signals | |
| 88100 Exception Processing | |
| IBM/Motorola PowerPC | |
| PowerPC 601 Block Diagram | |
| Byte and Bit Ordering | |
| PowerPC Registers and Programming Model | |
| PowerPC 601 Memory Addressing: Effective Address Calculation | |
| PowerPC 601 Typical Instructions | |
| PowerPC 601 Exception Model | |
| 601 System Interface | |
| PowerPC 601 Vs. Alpha 21064 | |
| Questions and Problems | |
| Peripheral Interfacing | |
| Keyboard Interface | |
| Basics of Keyboard and Display Interface to a Microprocessor | |
| 8086 Keyboard Interface | |
| DMA Controllers | |
| Printer Interface | |
| LRC7040 Printer Interface Using Direct Microcomputer Control | |
| LRC7040 Printer Interface to a Microcomputer Using the 8295 Printer Controller Chip | |
| CRT (Cathode Ray Tube) Controller and Graphics Controller Chips | |
| CRT Fundamentals | |
| Intel 8275 CRT Controller | |
| Intel 82786 Graphics Controller | |
| Coprocessors | |
| Intel 8087 | |
| Intel 80287 | |
| Intel 80387 | |
| Questions and Problems | |
| Design Problems | |
| Design Problem No. 1 | |
| Problem Statement | |
| Objective | |
| Operation | |
| Hardware | |
| Software | |
| Design Problem No. 2 | |
| Display Scroller Using the Intel 8086 | |
| Design Problem No. 3 | |
| Problem Statement | |
| Solution No. 1 | |
| Solution No. 2 | |
| Questions and Problems | |
| Appendices | |
| HP 64000 | |
| Motorola MC68000 and Support Chips-Data Sheets | |
| Intel 8085, 8086, and Support Chips-Data Sheets | |
| MC68000 Instruction Execution Times | |
| 8086 Instruction Set Reference Data | |
| Glossary | |
| Bibliography |