15
Microprocessor Theory and Applications with 68000/68020 and Pentium M. RAFIQUZZAMAN, Ph.D. Professor California State Polytechnic University Pomona, California and President Rafi Systems, Inc. WILEY A JOHN WILEY & SONS, INC., PUBLICATION

Microprocessor Theory - buch Theory ... 3.3 Microprocessor on-chip memory management unit and cache ... 8.6.1 68020 New Privileged Move Instructions 238

  • Upload
    ngodang

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

  • Microprocessor Theory and Applications with

    68000/68020 and Pentium

    M. RAFIQUZZAMAN, Ph.D. Professor

    California State Polytechnic University Pomona, California

    and President

    Rafi Systems, Inc.

    WILEY

    A JOHN WILEY & SONS, INC., PUBLICATION

    usercover.jpg

  • This Page Intentionally Left Blank

  • Microprocessor Theory and Applications with

    68000/68020 and Pentium

  • This Page Intentionally Left Blank

  • Microprocessor Theory and Applications with

    68000/68020 and Pentium

    M. RAFIQUZZAMAN, Ph.D. Professor

    California State Polytechnic University Pomona, California

    and President

    Rafi Systems, Inc.

    WILEY

    A JOHN WILEY & SONS, INC., PUBLICATION

  • Copyright 0 2008 by John Wiley & Sons, Inc. All rights reserved.

    Published by John Wiley & Sons, Inc., Hoboken, New Jersey. Published simultaneously in Canada.

    No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4470, or on the web at www.copyright.com. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 11 1 River Street, Hoboken, NJ 07030, (201) 748-601 1, fax (201) 748- 6008, or online at http://www.wiley.comlgo/permission.

    Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages.

    For general information on our other products and services or for technical support, please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572- 3993 or fax (317) 572-4002.

    Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic format. For information about Wiley products, visit our web site at www.wiley.com.

    Library of Congress Cataloging-in-Publication Data:

    Rafiquzzaman, Mohamed.

    Rafiquzzaman. p. cm.

    Microprocessor theory and applications with 68000/68020 and Pentium / M.

    Includes bibliographical references and index. ISBN 978-0-470-3803 1-4 (cloth)

    1. Motorola 68000 series microprocessors. 2. Pentium (Microprocessor) I. Title.

    QA76XM6895R34 2008 0 0 4 . 1 6 5 4 ~ 2 2 2008011009

    Printed in the United States of America.

    10 9 8 7 6 5 4 3 2 1

    www.copyright.comhttp://www.wiley.comlgo/permissionwww.wiley.com

  • To my wge, Kusum; my son, Tito; and my brothel; Elan

  • This Page Intentionally Left Blank

  • CONTENTS PREFACE XI11

    CREDITS XV

    1. INTRODUCTION TO MICROPROCESSORS 1.1 Explanation of Terms 1.2 Microprocessor Data Types

    1.2.1 Unsigned and Signed Binary Numbers 1.2.2 ASCII and EBCDIC Codes 1.2.3 Unpacked and Packed Binary-Coded-Decimal Numbers 1.2.4 Floating-point Numbers

    1.3 Evolution of the Microprocessor 1.4 Typical Features of 32-bit and 64-bit Microprocessors 1.5 Microprocessor-based System Design Concepts 1.6 Typical Microprocessor Applications

    1.6.1 A Simple Microprocessor Application 1.6.2 Examples of Typical Microprocessor Applications

    2. MICROCOMPUTER ARCHITECTURE 2.1 Basic Blocks of a Microcomputer 2.2 Typical Microcomputer Architecture

    2.2.1 System Bus 2.2.2 Clock Signals

    2.3 Single-Chip Microprocessor 2.3.1 Register Section 2.3.2 Control Unit 2.3.3 Arithmetic-Logic Unit 2.3.4 Functional Representations of Simple and Typical Microprocessors 2.3.5 Simplified Explanation of Control Unit design

    2.4 Program Execution by Conventional Microprocessors 2.5 Program Execution by typical 32-bit Microprocessors

    2.5.1 Pipelining 2.5.2 Branch Prediction Feature

    2.6 Scalar and Superscalar Microprocessors 2.7 RISC vs. CISC Questions and Problems

    1 2 4 5 7 7 8 9

    15 16 19 20 21 23 23 24 24 25 26 26 30 32 32 34 38 38 39 44 45 45 47

    vii

  • ... Vlll

    3. MICROPROCESSOR MEMORY ORGANIZATION 3.1 Introduction 3.2 Main memory

    3.2.1 Read-only Memory 3.2.2 Random-Access Memory 3.2.3 READ and WRITE Timing Diagrams 3.2.4 Main Memory Organization 3.2.5 Main Memory Array Design

    3.3.1 Memory Management Concepts 3.3.2 Cache Memory Organization

    4. MICROPROCESSOR INPUT/OUTPUT

    3.3 Microprocessor on-chip memory management unit and cache

    Questions and Problems

    4.1 Introduction 4.2 Simple I/O Devices 4.3 Programmed I/O 4.4 Unconditional and Conditional Programmed I/O 4.5 Interrupt I/O

    4.5.1 Interrupt Types 4.5.2 Interrupt Address Vector 4.5.3 Saving the Microprocessor Registers 4.5.4 Interrupt Priorities

    4.6 Direct Memory Access (DMA) 4.7 Summary of I/O Questions and Problems

    5.1 Microcomputer Programming Languages 5.2 Machine Language 5.3 Assembly Language

    5. MICROPROCESSOR PROGRAMMING CONCEPTS

    5.3.1 Types of Assemblers 5.3.2 Assembler Delimiters 5.3.3 Specifying Numbers by Typical Assemblers 5.3.4 Assembler Directives or Pseudoinstructions 5.3.5 Assembly Language Instruction Formats 5.3.6 Instruction Set Architecture (ISA) 5.3.7 Typical Instruction Set 5.3.8 Typical Addressing Modes 5.3.9 Subroutine Calls in Assembly Language

    5.4 High-Level Language 5.5 Choosing a programming language 5.6 Flowcharts Questions and Problems

    6.1 Introduction 6.2 68000 Registers 6.3 68000 Memory Addressing 6.4 Assembly Language Programming with the 68000

    6. ASSEMBLY LANGUAGE PROGRAMMING WITH THE 68000

    Contents

    49 49 50 51 52 52 54 55 58 58 63 68 71 71 72 74 76 78 80 80 81 81 84 86 87 89 89 90 90 91 92 93 93 95 97 98

    102 104 104 105 106 107 109 109 111 112 113

  • Contents ix

    6.5 68000 Addressing Modes 6.5.1 Register Direct Addressing 6.5.2 Address Register Indirect Addressing 6.5.3 Absolute Addressing 6.5.4 Program Counter Relative Addressing 6.5.5 Immediate Data Addressing 6.5.6 Implied Addressing

    6.6.1 Data Movement Instructions 6.6.2 Arithmetic Instructions 6.6.3 Logic Instructions 6.6.4 Shift and Rotate Instructions 6.6.5 Bit Manipulation Instructions 6.6.6 Binary-Coded-Decimal Instructions 6.6.7 Program Control Instructions 6.6.8 System Control Instructions 6.6.9 68000 Stack

    6.6 68000 Instruction Set

    6.7 68000 Delay Routine Questions and Problems

    117 117 118 122 123 124 125 125 128 134 150 152 156 157 160 163 166 168 170

    7. 68000 HARDWARE AND INTERFACING 175 175

    7.1.1 Synchronous and Asynchronous Control Lines 177 7.1.2 System Control Lines 179

    7.1.4 DMA Control Lines 181 7.1.5 Status Lines 181

    181 7.2.1 68000 Clock Signals 181 7.2.2 68000 Reset Circuit 182

    7.3 68000 Read and Write Cycle Timing Diagrams 185 7.4 68000 Memory Interface 188 7.5 68000 I10 192

    7.5.1 68000 Programmed I10 192

    7.5.3 68000 DMA 206 7.6 68000 Exception Handling 207 7.7 68000/2732/6116/682 1-Based Microcomputer 208 7.8 Multiprocessing with the 68000 Using the TAS Instruction and the AS Signal 212 Questions and Problems 217

    221

    7.1 68000 Pins And Signals

    7.1.3 Interrupt Control Lines 181

    7.2 68000 Clock and Reset Signals

    7.5.2 68000 Interrupt System 201

    8. ASSEMBLY LANGUAGE PROGRAMMING WITH THE 68020 8.1 Introduction 22 1 8.2 68020 Functional Characteristics 222 8.3 68020 Registers 225 8.4 68020 Data Types, Organization, and CPU Space Cycle 227 8.5 68020 Addressing Modes 22 8

    8.5.1 Address Register Indirect (AM) with Index and 8-Bit Displacement 23 1 8.5.2 ARI with Index (Base Displacement, bd: Value 0 or 16 Bits or 32 Bits) 232

  • X Contents

    8.5.3 Memory Indirect 232 8.5.4 Memory Indirect with PC 233

    8.6 68020 Instructions 237 8.6.1 68020 New Privileged Move Instructions 238 8.6.2 Return and Delocate Instruction 238 8.6.3 CHK/CHK2 and CMP/CMP2 Instructions 239 8.6.4 Trap-on-Condition Instructions 243 8.6.5 Bit Field Instructions 245 8.6.6 PACK and UNPK Instructions 247 8.6.7 Multiplication and Division Instructions 250 8.6.8 68000 Enhanced Instructions 254 8.6.9 68020 Subroutines 254

    Questions and Problems 256 9. 68020 HARDWARE AND INTERFACING 261

    9.1 Introduction 26 1 9.1.1 68020 Pins and Signals 26 1 9.1.2 68020 Dynamic Bus Sizing 265 9.1.3 68020 Timing Diagrams 27 1

    9.2 68020 System Design 274 9.2.1 Memory Decode Logic for Memory and VO 275 9.2.2 68020-27C256 Interface 276 9.2.3 68020- 2256C/CH (SRAM) Interface 277 9.2.4 68020 Programmed I/O 279

    9.3 68020 Exception processing 282 9.4 68020-based Voltmeter 283

    285 289

    a Seven-Segment Display 293 294

    Segment Display 296 Questions and Problems 302

    10. ASSEMBLY LANGUAGE PROGRAMMING WITH THE PENTIUM: PART 1 305 10.1 Introduction 306 10.2 Pentium Registers 308

    10.2.1 General-Purpose Registers 308 10.2.2 Stack Pointers and Index Registers 308 10.2.3 Extended Instruction Pointer and Flag Register 310 10.2.4 Segment Registers 311

    10.3 Modes of Operation 311 10.3.1 Real Mode 3 12 10.3.2 Protected Mode 315

    10.4 Pentium data Organization 316 10.5 Assembly Language Programming with the Pentium 316 10.6 Pentium Addressing Modes 32 1

    32 1

    9.4.1 Voltmeter Design Using Programmed I/O 9.4.2 Voltmeter Design Using Interrupt I/O

    9.5 Interfacing a 68020-Based Microcomputer to a Hexadecimal Keyboard and

    9.5.1 Basics of Keyboard and Display Interface to a Microcomputer 9.5.2 68020 Interface to a Hexadecimal Keyboard and a Seven-

    10.6.1 Pentiums 32-Bit Addressing in Real Mode

  • Contents xi

    10.6.2 Register and Immediate Modes 323 10.6.3 Memory Addressing Mode 3 24 10.6.4 Port Addressing Mode 330 10.6.5 Relative Addressing Mode 330 10.6.6 Implied Addressing Mode 330

    10.7 Pentium Instructions 33 1 10.7.1 Data Transfer Instructions 33 1 10.7.2 Arithmetic Instructions 340

    Questions and Problems 3 62 11. ASSEMBLY LANGUAGE PROGRAMMING WITH THE PENTIUM: PART 2 367

    11.1 Logic, Bit Manipulation, Set on condition, Shift, and Rotate Instructions 367

    1 1.3 Unconditional Transfer Instructions 3 82 11.4 Conditional Branch Instructions 389 11.5 Iteration Control Instructions 3 92 11.6 Interrupt Instructions 393 1 1.7 Processor Control Instructions 394 1 1.8 Pentium Delay routine 395 Questions and Problems 397

    12. PENTIUM HARDWARE AND INTERFACING 401 40 1 403 405

    12.3.1 Memory Interface 405 12.3.2 Pentium-EPROM Interface 41 1 12.3.3 Pentium-SRAM interface 413 12.3.4 Pentium Programmed I/O 415 12.3.5 Pentium Interrupts and Exceptions in Real Mode 420

    12.4 Pentium-based voltmeter 423 12.4.1 Pentium-based voltmeter using programmed I/O 424 12.4.2 Pentium-based voltmeter using NMI 426 12.4.3 Pentium-based voltmeter using INTR 427

    430 430

    a Pentium-Based Microcomputer 43 1

    APPENDIX A: ANSWERS TO SELECTED PROBLEMS 443

    APPENDIX B: GLOSSARY 45 1

    APPENDIX C: MOTOROLA 68000 AND SUPPORT CHIPS 467

    APPENDIX D: 68000 EXECUTION TIMES 479

    APPENDIX E: 68000 / SELECTED 68020 INSTRUCTION SET 487

    APPENDIX F: PENTIUM INSTRUCTION FORMAT AND TIMING 497 F. 1. INTEGER INSTRUCTION FORMAT AND TIMING 497

    1 1.2 String Instructions 377

    12.1 Pentium Pins and Signals 12.2 Pentium READ and WRITE Timing Diagrams 12.3 Pentiums interface to memory and I/O

    12.5 Interfacing a Pentium-based Microcomputer to a Hexadecimal Keyboard and a Seven Segment Display

    12.5.1 Basics of Keyboard and Display Interface to a Microcomputer 12.5.2 Hexadecimal Keyboard and Seven-Segment Display Interface to

    Questions and Problems 437

  • xi i Contents

    APPENDIX G: PENTIUM INSTRUCTION SET IN REAL MODE (SELECTED) 525

    APPENDIX H: PENTIUM PINOUT AND PIN DESCRIPTIONS 547 H. 1. PentiumTM Processor Pinout 547 H.2. Design Notes 55 1 H.3. Quick Pin Reference 55 1 H.4. PIN REFERENCE TABLES 558 H.5. Pin Grouping According To Function 560 H.6. Output Pin Grouping According To When Driven 561

    BIBLIOGRAPHY 563

    INDEX 565

  • PREFACE Microprocessors play an important role in the design of digital systems. They are found in a wide range of applications, such as process control and communication systems.

    This book is written to present the fundamental concepts of assembly language programming and system design concepts associated with typical microprocessors, such as the Motorola 68000/68020 and Intel Pentium. The 68000 is a 16-bit microprocessor that continues to be popular. Since the 68000 uses linear memory and contains 32-bit general- purpose registers, it is an excellent educational tool for acquiring an understanding of both hardware and software aspects of typical microprocessors.

    Conventional microprocessors such as the 68000 complete fetch, decode and execute cycles of an instruction in sequence. Typical 32-bit microprocessors such as the 68020 and Pentium use pipelining, in which instruction fetch and execute cycles are overlapped. This speeds up the instruction execution time of 32-bit microprocessors. Pipelining was used for many years in mainframe and minicomputer CPUs. In addition, other mainframe features, such as memory management and floating-point and cache memory, are implemented in 32-bit microprocessors. Hence, brief coverage of these topics is provided in the first part of the book.

    The book is self-contained and includes a number of basic topics. A basic digital logic background is assumed. Characteristics and principles common to typical microprocessors are emphasized and basic microcomputer interfacing techniques are demonstrated via examples using the simplest possible devices, such as switches, LEDs, A/D converters, the hexadecimal keyboard, and seven-segment displays.

    The book has evolved from classroom notes developed for three microprocessor courses taught at the Electrical and Computer Engineering Department, California State Poly University, Pomona for the last several years: ECE 343 (Microprocessor I), ECE 432 (Microprocessor 11), and ECE 56 1 (Advanced Microprocessors).

    The text is divided into 12 chapters. In Chapter 1, we provide a review of terminology, number systems, evolution of microprocessors, system design concepts and typical microprocessor applications.

    Chapters 2 through 12 form the nucleus of the book. Chapter 2 covers typical microcomputer architectures for both 16-bit (conventional) and 32-bit microprocessors. The concepts of pipelining, superscalar processors and RISC vs. CISC are included.

    ... XI11

    Microprocessor Theory and Applications with 68000/68020 and PentiumCONTENTSPREFACECREDITS1. INTRODUCTION TO MICROPROCESSORS1.1 Explanation of Terms1.2 Microprocessor Data Types1.2.1 Unsigned and Signed Binary Numbers1.2.2 ASCII and EBCDIC Codes1.2.3 Unpacked and Packed Binary-Coded-Decimal Numbers1.2.4 Floating-point Numbers

    1.3 Evolution of the Microprocessor1.4 Typical Features of 32-bit and 64-bit Microprocessors1.5 Microprocessor-based System Design Concepts1.6 Typical Microprocessor Applications1.6.1 A Simple Microprocessor Application1.6.2 Examples of Typical Microprocessor Applications

    2. MICROCOMPUTER ARCHITECTURE2.1 Basic Blocks of a Microcomputer2.2 Typical Microcomputer Architecture2.2.1 System Bus2.2.2 Clock Signals

    2.3 Single-Chip Microprocessor2.3.1 Register Section2.3.2 Control Unit2.3.3 Arithmetic-Logic Unit2.3.4 Functional Representations of Simple and Typical Microprocessors2.3.5 Simplified Explanation of Control Unit design

    2.4 Program Execution by Conventional Microprocessors2.5 Program Execution by typical 32-bit Microprocessors2.5.1 Pipelining2.5.2 Branch Prediction Feature

    2.6 Scalar and Superscalar Microprocessors2.7 RISC vs. CISC

    Questions and Problems3. MICROPROCESSOR MEMORY ORGANIZATION3.1 Introduction3.2 Main memory3.2.1 Read-Only Memory3.2.2 Random-Access Memory3.2.3 READ and WRITE Timing Diagrams3.2.4 Main Memory Organization3.2.5 Main Memory Array Design

    3.3 Microprocessor on-chip memory management unit and cache3.3.1 Memory Management Concepts3.3.2 Cache Memory Organization

    Questions and Problems4. MICROPROCESSOR INPUT/OUTPUT4.1 Introduction4.2 Simple I/O Devices4.3 Programmed I/O4.4 Unconditional and Conditional Programmed I/O4.5 Interrupt I/O4.5.1 Interrupt Types4.5.2 Interrupt Address Vector4.5.3 Saving the Microprocessor Registers4.5.4 Interrupt Priorities

    4.6 Direct Memory Access (DMA)4.7 Summary of I/O

    Questions and Problems5. MICROPROCESSOR PROGRAMMING CONCEPTS5.1 Microcomputer Programming Languages5.2 Machine Language5.3 Assembly Language5.3.1 Types of Assemblers5.3.2 Assembler Delimiters5.3.3 Specifying Numbers by Typical Assemblers5.3.4 Assembler Directives or Pseudoinstructions5.3.5 Assembly Language Instruction Formats5.3.6 Instruction Set Architecture (ISA)5.3.7 Typical Instruction Set5.3.8 Typical Addressing Modes5.3.9 Subroutine Calls in Assembly Language

    5.4 High-Level Language5.5 Choosing a programming language5.6 Flowcharts

    Questions and Problems6. ASSEMBLY LANGUAGE PROGRAMMING WITH THE 680006.1 Introduction6.2 68000 Registers6.3 68000 Memory Addressing6.4 Assembly Language Programming with the 680006.5 68000 Addressing Modes6.5.1 Register Direct Addressing6.5.2 Address Register Indirect Addressing6.5.3 Absolute Addressing6.5.4 Program Counter Relative Addressing6.5.5 Immediate Data Addressing6.5.6 Implied Addressing

    6.6 68000 Instruction Set6.6.1 Data Movement Instructions6.6.2 Arithmetic Instructions6.6.3 Logic Instructions6.6.4 Shift and Rotate Instructions6.6.5 Bit Manipulation Instructions6.6.6 Binary-Coded-Decimal Instructions6.6.7 Program Control Instructions6.6.8 System Control Instructions6.6.9 68000 Stack

    6.7 68000 Delay Routine

    Questions and Problems7. 68000 HARDWARE AND INTERFACING7.1 68000 Pins And Signals7.1.1 Synchronous and Asynchronous Control Lines7.1.2 System Control Lines7.1.3 Interrupt Control Lines7.1.4 DMA Control Lines7.1.5 Status Lines

    7.2 68000 Clock and Reset Signals7.2.1 68000 Clock Signals7.2.2 68000 Reset Circuit

    7.3 68000 Read and Write Cycle Timing Diagrams7.4 68000 Memory Interface7.5 68000 I/O7.5.1 68000 Programmed I/O7.5.2 68000 Interrupt System7.5.3 68000 DMA

    7.6 68000 Exception Handling7.7 68000/2732/6116/6821-Based Microcomputer7.8 Multiprocessing with the 68000 Using the TAS Instruction and the AS Signal

    Questions and Problems8. ASSEMBLY LANGUAGE PROGRAMMING WITH THE 680208.1 Introduction8.2 68020 Functional Characteristics8.3 68020 Registers8.4 68020 Data Types, Organization, and CPU Space Cycle8.5 68020 Addressing Modes8.5.1 Address Register Indirect (ARI) with Index and 8-Bit Displacement8.5.2 ARI with Index (Base Displacement, bd: Value 0 or 16 Bits or 32 Bits)8.5.3 Memory Indirect8.5.4 Memory Indirect with PC

    8.6 68020 Instructions8.6.1 68020 New Privileged Move Instructions8.6.2 Return and Delocate Instruction8.6.3 CHK/CHK2 and CMP/CMP2 Instructions8.6.4 Trap-on-Condition Instructions8.6.5 Bit Field Instructions8.6.6 PACK and UNPK Instructions8.6.7 Multiplication and Division Instructions8.6.8 68000 Enhanced Instructions8.6.9 68020 Subroutines

    Questions and Problems

    9. 68020 HARDWARE AND INTERFACING9.1 Introduction9.1.1 68020 Pins and Signals9.1.2 68020 Dynamic Bus Sizing9.1.3 68020 Timing Diagrams

    9.2 68020 System Design9.2.1 Memory Decode Logic for Memory and I/O9.2.2 68020-27C256 Interface9.2.3 68020-2256C/CH (SRAM) Interface9.2.4 68020 Programmed I/O

    9.3 68020 Exception processing9.4 68020-based Voltmeter9.4.1 Voltmeter Design Using Programmed I/O9.4.2 Voltmeter Design Using Interrupt I/O

    9.5 Interfacing a 68020-Based Microcomputer to a Hexadecimal Keyboard and a Seven-Segment Display9.5.1 Basics of Keyboard and Display Interface to a Microcomputer9.5.2 68020 Interface to a Hexadecimal Keyboard and a Seven-Segment Display

    Questions and Problems

    10. ASSEMBLY LANGUAGE PROGRAMMING WITH THE PENTIUM: PART 110.1 Introduction10.2 Pentium Registers10.2.1 General-Purpose Registers10.2.2 Stack Pointers and Index Registers10.2.3 Extended Instruction Pointer and Flag Register10.2.4 Segment Registers

    10.3 Modes of Operation10.3.1 Real Mode10.3.2 Protected Mode

    10.4 Pentium data Organization10.5 Assembly Language Programming with the Pentium10.6 Pentium Addressing Modes10.6.1 Pentium's 32-Bit Addressing in Real Mode10.6.2 Register and Immediate Modes10.6.3 Memory Addressing Mode10.6.4 Port Addressing Mode10.6.5 Relative Addressing Mode10.6.6 Implied Addressing Mode

    10.7 Pentium Instructions10.7.1 Data Transfer Instructions10.7.2 Arithmetic Instructions

    Questions and Problems

    11. ASSEMBLY LANGUAGE PROGRAMMING WITH THE PENTIUM: PART 211.1 Logic, Bit Manipulation, Set on condition, Shift, and Rotate Instructions11.2 String Instructions11.3 Unconditional Transfer Instructions11.4 Conditional Branch Instructions11.5 Iteration Control Instructions11.6 Interrupt Instructions11.7 Processor Control Instructions11.8 Pentium Delay routineQuestions and Problems

    12. PENTIUM HARDWARE AND INTERFACING12.1 Pentium Pins and Signals12.2 Pentium READ and WRITE Timing Diagrams12.3 Pentium's interface to memory and I/O12.3.1 Memory Interface12.3.2 Pentium-EPROM Interface12.3.3 Pentium-SRAM interface12.3.4 Pentium Programmed I/O12.3.5 Pentium Interrupts and Exceptions in Real Mode

    12.4 Pentium-based voltmeter12.4.1 Pentium-based voltmeter using programmed I/O12.4.2 Pentium-based voltmeter using NMI12.4.3 Pentium-based voltmeter using INTR

    12.5 Interfacing a Pentium-based Microcomputer to a Hexadecimal Keyboard and a Seven Segment Display12.5.1 Basics of Keyboard and Display Interface to a Microcomputer12.5.2 Hexadecimal Keyboard and Seven-Segment Display Interface to a Pentium-Based Microcomputer

    Questions and Problems

    APPENDIX A: ANSWERS TO SELECTED PROBLEMSAPPENDIX B: GLOSSARYAPPENDIX C: MOTOROLA 68000 AND SUPPORT CHIPSAPPENDIX D: 68000 EXECUTION TIMESAPPENDIX E: 68000 / SELECTED 68020 INSTRUCTION SETAPPENDIX F: PENTIUM INSTRUCTION FORMAT AND TIMINGF.1. INTEGER INSTRUCTION FORMAT AND TIMING

    APPENDIX G: PENTIUM INSTRUCTION SET IN REAL MODE (SELECTED)APPENDIX H: PENTIUM PINOUT AND PIN DESCRIPTIONSH.1. Pentium Processor PinoutH.2. Design NotesH.3. Quick Pin ReferenceH.4. PIN REFERENCE TABLESH.5. Pin Grouping According To FunctionH.6. Output Pin Grouping According To When Driven

    BIBLIOGRAPHYINDEX