A self-contained introduction to microprocessor theory and applications
This book presents the fundamental concepts of assembly language programming and system design associated with typical microprocessors, such as the Motorola MC68000/68020 and Intel? Pentium?. It begins with an overview of microprocessors--including anexplanation of terms, the evolution of the microprocessor, and typical applications--and goes on to systematically cover:
Microcomputer architecture
Microprocessor memory organization
Microprocessor Input/Output (I/O)
Microprocessor programming concepts
Assembly language programming with the 68000
68000 hardware and interfacing
Assembly language programming with the 68020
68020 hardware and interfacing
Assembly language programming with Pentium
Pentium hardware and interfacing
The author assumes a background in basic digital logic, and all chapters conclude with a Questions and Problems section, with selected answers provided at the back of the book. Microprocessor Theory and Applications with 68000/68020 and Pentium is an ideal textbook for undergraduate- and graduate-level courses in electrical engineering, computer engineering, and computer science. (An instructors manual is available upon request.) It is also appropriate for practitioners in microprocessor system design who are looking for simplified explanations and clear examples on the subject. Additionally, the accompanying CD-ROM, which contains step-by-step procedures for installing and using Ide 68k21 (68000/68020) and MASM32 / Olly Debugger (Pentium) software, provides valuable simulation results via screen shots.
Author(s): Mohamed Rafiquzzaman
Edition: Har/Cdr
Publisher: Wiley-Interscience
Year: 2008
Language: English
Pages: 590
Microprocessor Theory and Applications with 68000/68020 and Pentium......Page 6
CONTENTS......Page 10
PREFACE......Page 16
CREDITS......Page 18
1. INTRODUCTION TO MICROPROCESSORS......Page 20
1.1 Explanation of Terms......Page 21
1.2 Microprocessor Data Types......Page 23
1.2.1 Unsigned and Signed Binary Numbers......Page 24
1.2.3 Unpacked and Packed Binary-Coded-Decimal Numbers......Page 26
1.2.4 Floating-point Numbers......Page 27
1.3 Evolution of the Microprocessor......Page 28
1.4 Typical Features of 32-bit and 64-bit Microprocessors......Page 34
1.5 Microprocessor-based System Design Concepts......Page 35
1.6 Typical Microprocessor Applications......Page 38
1.6.1 A Simple Microprocessor Application......Page 39
1.6.2 Examples of Typical Microprocessor Applications......Page 40
2.1 Basic Blocks of a Microcomputer......Page 42
2.2.1 System Bus......Page 43
2.2.2 Clock Signals......Page 44
2.3.1 Register Section......Page 45
2.3.2 Control Unit......Page 49
2.3.4 Functional Representations of Simple and Typical Microprocessors......Page 51
2.3.5 Simplified Explanation of Control Unit design......Page 53
2.5 Program Execution by typical 32-bit Microprocessors......Page 57
2.5.1 Pipelining......Page 58
2.5.2 Branch Prediction Feature......Page 63
2.7 RISC vs. CISC......Page 64
Questions and Problems......Page 66
3.1 Introduction......Page 68
3.2 Main memory......Page 69
3.2.1 Read-Only Memory......Page 70
3.2.3 READ and WRITE Timing Diagrams......Page 71
3.2.4 Main Memory Organization......Page 73
3.2.5 Main Memory Array Design......Page 74
3.3.1 Memory Management Concepts......Page 77
3.3.2 Cache Memory Organization......Page 82
Questions and Problems......Page 87
4.1 Introduction......Page 90
4.2 Simple I/O Devices......Page 91
4.3 Programmed I/O......Page 93
4.4 Unconditional and Conditional Programmed I/O......Page 95
4.5 Interrupt I/O......Page 97
4.5.2 Interrupt Address Vector......Page 99
4.5.4 Interrupt Priorities......Page 100
4.6 Direct Memory Access (DMA)......Page 103
4.7 Summary of I/O......Page 105
Questions and Problems......Page 106
5.1 Microcomputer Programming Languages......Page 108
5.3 Assembly Language......Page 109
5.3.1 Types of Assemblers......Page 110
5.3.2 Assembler Delimiters......Page 111
5.3.4 Assembler Directives or Pseudoinstructions......Page 112
5.3.5 Assembly Language Instruction Formats......Page 114
5.3.6 Instruction Set Architecture (ISA)......Page 116
5.3.7 Typical Instruction Set......Page 117
5.3.8 Typical Addressing Modes......Page 121
5.4 High-Level Language......Page 123
5.5 Choosing a programming language......Page 124
Questions and Problems......Page 125
6.1 Introduction......Page 128
6.2 68000 Registers......Page 130
6.3 68000 Memory Addressing......Page 131
6.4 Assembly Language Programming with the 68000......Page 132
6.5.1 Register Direct Addressing......Page 136
6.5.2 Address Register Indirect Addressing......Page 137
6.5.3 Absolute Addressing......Page 141
6.5.4 Program Counter Relative Addressing......Page 142
6.5.5 Immediate Data Addressing......Page 143
6.6 68000 Instruction Set......Page 144
6.6.1 Data Movement Instructions......Page 147
6.6.2 Arithmetic Instructions......Page 153
6.6.3 Logic Instructions......Page 169
6.6.4 Shift and Rotate Instructions......Page 171
6.6.5 Bit Manipulation Instructions......Page 175
6.6.6 Binary-Coded-Decimal Instructions......Page 176
6.6.7 Program Control Instructions......Page 179
6.6.8 System Control Instructions......Page 182
6.6.9 68000 Stack......Page 185
6.7 68000 Delay Routine......Page 187
Questions and Problems......Page 189
7.1 68000 Pins And Signals......Page 194
7.1.1 Synchronous and Asynchronous Control Lines......Page 196
7.1.2 System Control Lines......Page 198
7.2.1 68000 Clock Signals......Page 200
7.2.2 68000 Reset Circuit......Page 201
7.3 68000 Read and Write Cycle Timing Diagrams......Page 204
7.4 68000 Memory Interface......Page 207
7.5.1 68000 Programmed I/O......Page 211
7.5.2 68000 Interrupt System......Page 220
7.5.3 68000 DMA......Page 225
7.6 68000 Exception Handling......Page 226
7.7 68000/2732/6116/6821-Based Microcomputer......Page 227
7.8 Multiprocessing with the 68000 Using the TAS Instruction and the AS Signal......Page 231
Questions and Problems......Page 236
8.1 Introduction......Page 240
8.2 68020 Functional Characteristics......Page 241
8.3 68020 Registers......Page 244
8.4 68020 Data Types, Organization, and CPU Space Cycle......Page 246
8.5 68020 Addressing Modes......Page 247
8.5.1 Address Register Indirect (ARI) with Index and 8-Bit Displacement......Page 250
8.5.3 Memory Indirect......Page 251
8.5.4 Memory Indirect with PC......Page 252
8.6 68020 Instructions......Page 256
8.6.2 Return and Delocate Instruction......Page 257
8.6.3 CHK/CHK2 and CMP/CMP2 Instructions......Page 258
8.6.4 Trap-on-Condition Instructions......Page 262
8.6.5 Bit Field Instructions......Page 264
8.6.6 PACK and UNPK Instructions......Page 266
8.6.7 Multiplication and Division Instructions......Page 269
8.6.9 68020 Subroutines......Page 273
Questions and Problems......Page 275
9.1.1 68020 Pins and Signals......Page 280
9.1.2 68020 Dynamic Bus Sizing......Page 284
9.1.3 68020 Timing Diagrams......Page 290
9.2 68020 System Design......Page 293
9.2.1 Memory Decode Logic for Memory and I/O......Page 294
9.2.2 68020-27C256 Interface......Page 295
9.2.3 68020-2256C/CH (SRAM) Interface......Page 296
9.2.4 68020 Programmed I/O......Page 298
9.3 68020 Exception processing......Page 301
9.4 68020-based Voltmeter......Page 302
9.4.1 Voltmeter Design Using Programmed I/O......Page 304
9.4.2 Voltmeter Design Using Interrupt I/O......Page 308
9.5 Interfacing a 68020-Based Microcomputer to a Hexadecimal Keyboard and a Seven-Segment Display......Page 312
9.5.1 Basics of Keyboard and Display Interface to a Microcomputer......Page 313
9.5.2 68020 Interface to a Hexadecimal Keyboard and a Seven-Segment Display......Page 315
Questions and Problems......Page 321
10. ASSEMBLY LANGUAGE PROGRAMMING WITH THE PENTIUM: PART 1......Page 324
10.1 Introduction......Page 325
10.2.2 Stack Pointers and Index Registers......Page 327
10.2.3 Extended Instruction Pointer and Flag Register......Page 329
10.3 Modes of Operation......Page 330
10.3.1 Real Mode......Page 331
10.3.2 Protected Mode......Page 334
10.5 Assembly Language Programming with the Pentium......Page 335
10.6.1 Pentium's 32-Bit Addressing in Real Mode......Page 340
10.6.2 Register and Immediate Modes......Page 342
10.6.3 Memory Addressing Mode......Page 343
10.6.6 Implied Addressing Mode......Page 349
10.7.1 Data Transfer Instructions......Page 350
10.7.2 Arithmetic Instructions......Page 359
Questions and Problems......Page 381
11.1 Logic, Bit Manipulation, Set on condition, Shift, and Rotate Instructions......Page 386
11.2 String Instructions......Page 396
11.3 Unconditional Transfer Instructions......Page 401
11.4 Conditional Branch Instructions......Page 408
11.5 Iteration Control Instructions......Page 411
11.6 Interrupt Instructions......Page 412
11.7 Processor Control Instructions......Page 413
11.8 Pentium Delay routine......Page 414
Questions and Problems......Page 416
12.1 Pentium Pins and Signals......Page 420
12.2 Pentium READ and WRITE Timing Diagrams......Page 422
12.3.1 Memory Interface......Page 424
12.3.2 Pentium-EPROM Interface......Page 430
12.3.3 Pentium-SRAM interface......Page 432
12.3.4 Pentium Programmed I/O......Page 434
12.3.5 Pentium Interrupts and Exceptions in Real Mode......Page 439
12.4 Pentium-based voltmeter......Page 442
12.4.1 Pentium-based voltmeter using programmed I/O......Page 443
12.4.2 Pentium-based voltmeter using NMI......Page 445
12.4.3 Pentium-based voltmeter using INTR......Page 446
12.5.1 Basics of Keyboard and Display Interface to a Microcomputer......Page 449
12.5.2 Hexadecimal Keyboard and Seven-Segment Display Interface to a Pentium-Based Microcomputer......Page 450
Questions and Problems......Page 456
APPENDIX A: ANSWERS TO SELECTED PROBLEMS......Page 462
APPENDIX B: GLOSSARY......Page 470
APPENDIX C: MOTOROLA 68000 AND SUPPORT CHIPS......Page 486
APPENDIX D: 68000 EXECUTION TIMES......Page 498
APPENDIX E: 68000 / SELECTED 68020 INSTRUCTION SET......Page 506
F.1. INTEGER INSTRUCTION FORMAT AND TIMING......Page 516
APPENDIX G: PENTIUM INSTRUCTION SET IN REAL MODE (SELECTED)......Page 544
H.1. Pentiumâ„¢ Processor Pinout......Page 566
H.3. Quick Pin Reference......Page 570
H.4. PIN REFERENCE TABLES......Page 577
H.5. Pin Grouping According To Function......Page 579
H.6. Output Pin Grouping According To When Driven......Page 580
BIBLIOGRAPHY......Page 582
INDEX......Page 584