Microprocessor Theory and Applications with 68000/68020 and Pentium [Har/Cdr ed.]
0470380314, 9780470380314, 9780470391372
A self-contained introduction to microprocessor theory and applications This book presents the fundamental concepts of a
280
24
205KB
English
Pages 570
[589]
Year 2008
Report DMCA / Copyright
DOWNLOAD PDF FILE
Table of contents :
Microprocessor Theory and Applications with 68000/68020 and Pentium......Page 5
CONTENTS......Page 9
PREFACE......Page 15
CREDITS......Page 17
1. INTRODUCTION TO MICROPROCESSORS......Page 19
1.1 Explanation of Terms......Page 20
1.2 Microprocessor Data Types......Page 22
1.2.1 Unsigned and Signed Binary Numbers......Page 23
1.2.3 Unpacked and Packed Binary-Coded-Decimal Numbers......Page 25
1.2.4 Floating-point Numbers......Page 26
1.3 Evolution of the Microprocessor......Page 27
1.4 Typical Features of 32-bit and 64-bit Microprocessors......Page 33
1.5 Microprocessor-based System Design Concepts......Page 34
1.6 Typical Microprocessor Applications......Page 37
1.6.1 A Simple Microprocessor Application......Page 38
1.6.2 Examples of Typical Microprocessor Applications......Page 39
2.1 Basic Blocks of a Microcomputer......Page 41
2.2.1 System Bus......Page 42
2.2.2 Clock Signals......Page 43
2.3.1 Register Section......Page 44
2.3.2 Control Unit......Page 48
2.3.4 Functional Representations of Simple and Typical Microprocessors......Page 50
2.3.5 Simplified Explanation of Control Unit design......Page 52
2.5 Program Execution by typical 32-bit Microprocessors......Page 56
2.5.1 Pipelining......Page 57
2.5.2 Branch Prediction Feature......Page 62
2.7 RISC vs. CISC......Page 63
Questions and Problems......Page 65
3.1 Introduction......Page 67
3.2 Main memory......Page 68
3.2.1 Read-Only Memory......Page 69
3.2.3 READ and WRITE Timing Diagrams......Page 70
3.2.4 Main Memory Organization......Page 72
3.2.5 Main Memory Array Design......Page 73
3.3.1 Memory Management Concepts......Page 76
3.3.2 Cache Memory Organization......Page 81
Questions and Problems......Page 86
4.1 Introduction......Page 89
4.2 Simple I/O Devices......Page 90
4.3 Programmed I/O......Page 92
4.4 Unconditional and Conditional Programmed I/O......Page 94
4.5 Interrupt I/O......Page 96
4.5.2 Interrupt Address Vector......Page 98
4.5.4 Interrupt Priorities......Page 99
4.6 Direct Memory Access (DMA)......Page 102
4.7 Summary of I/O......Page 104
Questions and Problems......Page 105
5.1 Microcomputer Programming Languages......Page 107
5.3 Assembly Language......Page 108
5.3.1 Types of Assemblers......Page 109
5.3.2 Assembler Delimiters......Page 110
5.3.4 Assembler Directives or Pseudoinstructions......Page 111
5.3.5 Assembly Language Instruction Formats......Page 113
5.3.6 Instruction Set Architecture (ISA)......Page 115
5.3.7 Typical Instruction Set......Page 116
5.3.8 Typical Addressing Modes......Page 120
5.4 High-Level Language......Page 122
5.5 Choosing a programming language......Page 123
Questions and Problems......Page 124
6.1 Introduction......Page 127
6.2 68000 Registers......Page 129
6.3 68000 Memory Addressing......Page 130
6.4 Assembly Language Programming with the 68000......Page 131
6.5.1 Register Direct Addressing......Page 135
6.5.2 Address Register Indirect Addressing......Page 136
6.5.3 Absolute Addressing......Page 140
6.5.4 Program Counter Relative Addressing......Page 141
6.5.5 Immediate Data Addressing......Page 142
6.6 68000 Instruction Set......Page 143
6.6.1 Data Movement Instructions......Page 146
6.6.2 Arithmetic Instructions......Page 152
6.6.3 Logic Instructions......Page 168
6.6.4 Shift and Rotate Instructions......Page 170
6.6.5 Bit Manipulation Instructions......Page 174
6.6.6 Binary-Coded-Decimal Instructions......Page 175
6.6.7 Program Control Instructions......Page 178
6.6.8 System Control Instructions......Page 181
6.6.9 68000 Stack......Page 184
6.7 68000 Delay Routine......Page 186
Questions and Problems......Page 188
7.1 68000 Pins And Signals......Page 193
7.1.1 Synchronous and Asynchronous Control Lines......Page 195
7.1.2 System Control Lines......Page 197
7.2.1 68000 Clock Signals......Page 199
7.2.2 68000 Reset Circuit......Page 200
7.3 68000 Read and Write Cycle Timing Diagrams......Page 203
7.4 68000 Memory Interface......Page 206
7.5.1 68000 Programmed I/O......Page 210
7.5.2 68000 Interrupt System......Page 219
7.5.3 68000 DMA......Page 224
7.6 68000 Exception Handling......Page 225
7.7 68000/2732/6116/6821-Based Microcomputer......Page 226
7.8 Multiprocessing with the 68000 Using the TAS Instruction and the AS Signal......Page 230
Questions and Problems......Page 235
8.1 Introduction......Page 239
8.2 68020 Functional Characteristics......Page 240
8.3 68020 Registers......Page 243
8.4 68020 Data Types, Organization, and CPU Space Cycle......Page 245
8.5 68020 Addressing Modes......Page 246
8.5.1 Address Register Indirect (ARI) with Index and 8-Bit Displacement......Page 249
8.5.3 Memory Indirect......Page 250
8.5.4 Memory Indirect with PC......Page 251
8.6 68020 Instructions......Page 255
8.6.2 Return and Delocate Instruction......Page 256
8.6.3 CHK/CHK2 and CMP/CMP2 Instructions......Page 257
8.6.4 Trap-on-Condition Instructions......Page 261
8.6.5 Bit Field Instructions......Page 263
8.6.6 PACK and UNPK Instructions......Page 265
8.6.7 Multiplication and Division Instructions......Page 268
8.6.9 68020 Subroutines......Page 272
Questions and Problems......Page 274
9.1.1 68020 Pins and Signals......Page 279
9.1.2 68020 Dynamic Bus Sizing......Page 283
9.1.3 68020 Timing Diagrams......Page 289
9.2 68020 System Design......Page 292
9.2.1 Memory Decode Logic for Memory and I/O......Page 293
9.2.2 68020-27C256 Interface......Page 294
9.2.3 68020-2256C/CH (SRAM) Interface......Page 295
9.2.4 68020 Programmed I/O......Page 297
9.3 68020 Exception processing......Page 300
9.4 68020-based Voltmeter......Page 301
9.4.1 Voltmeter Design Using Programmed I/O......Page 303
9.4.2 Voltmeter Design Using Interrupt I/O......Page 307
9.5 Interfacing a 68020-Based Microcomputer to a Hexadecimal Keyboard and a Seven-Segment Display......Page 311
9.5.1 Basics of Keyboard and Display Interface to a Microcomputer......Page 312
9.5.2 68020 Interface to a Hexadecimal Keyboard and a Seven-Segment Display......Page 314
Questions and Problems......Page 320
10. ASSEMBLY LANGUAGE PROGRAMMING WITH THE PENTIUM: PART 1......Page 323
10.1 Introduction......Page 324
10.2.2 Stack Pointers and Index Registers......Page 326
10.2.3 Extended Instruction Pointer and Flag Register......Page 328
10.3 Modes of Operation......Page 329
10.3.1 Real Mode......Page 330
10.3.2 Protected Mode......Page 333
10.5 Assembly Language Programming with the Pentium......Page 334
10.6.1 Pentium's 32-Bit Addressing in Real Mode......Page 339
10.6.2 Register and Immediate Modes......Page 341
10.6.3 Memory Addressing Mode......Page 342
10.6.6 Implied Addressing Mode......Page 348
10.7.1 Data Transfer Instructions......Page 349
10.7.2 Arithmetic Instructions......Page 358
Questions and Problems......Page 380
11.1 Logic, Bit Manipulation, Set on condition, Shift, and Rotate Instructions......Page 385
11.2 String Instructions......Page 395
11.3 Unconditional Transfer Instructions......Page 400
11.4 Conditional Branch Instructions......Page 407
11.5 Iteration Control Instructions......Page 410
11.6 Interrupt Instructions......Page 411
11.7 Processor Control Instructions......Page 412
11.8 Pentium Delay routine......Page 413
Questions and Problems......Page 415
12.1 Pentium Pins and Signals......Page 419
12.2 Pentium READ and WRITE Timing Diagrams......Page 421
12.3.1 Memory Interface......Page 423
12.3.2 Pentium-EPROM Interface......Page 429
12.3.3 Pentium-SRAM interface......Page 431
12.3.4 Pentium Programmed I/O......Page 433
12.3.5 Pentium Interrupts and Exceptions in Real Mode......Page 438
12.4 Pentium-based voltmeter......Page 441
12.4.1 Pentium-based voltmeter using programmed I/O......Page 442
12.4.2 Pentium-based voltmeter using NMI......Page 444
12.4.3 Pentium-based voltmeter using INTR......Page 445
12.5.1 Basics of Keyboard and Display Interface to a Microcomputer......Page 448
12.5.2 Hexadecimal Keyboard and Seven-Segment Display Interface to a Pentium-Based Microcomputer......Page 449
Questions and Problems......Page 455
APPENDIX A: ANSWERS TO SELECTED PROBLEMS......Page 461
APPENDIX B: GLOSSARY......Page 469
APPENDIX C: MOTOROLA 68000 AND SUPPORT CHIPS......Page 485
APPENDIX D: 68000 EXECUTION TIMES......Page 497
APPENDIX E: 68000 / SELECTED 68020 INSTRUCTION SET......Page 505
F.1. INTEGER INSTRUCTION FORMAT AND TIMING......Page 515
APPENDIX G: PENTIUM INSTRUCTION SET IN REAL MODE (SELECTED)......Page 543
H.1. Pentium™ Processor Pinout......Page 565
H.3. Quick Pin Reference......Page 569
H.4. PIN REFERENCE TABLES......Page 576
H.5. Pin Grouping According To Function......Page 578
H.6. Output Pin Grouping According To When Driven......Page 579
BIBLIOGRAPHY......Page 581
INDEX......Page 583