You are previewing Introduction to 80x86 Assembly Language and Computer Architecture, 3rd Edition.
O'Reilly logo
Introduction to 80x86 Assembly Language and Computer Architecture, 3rd Edition

Book Description

A Revised and Updated Edition of the Authoritative Text This revised and updated Third Edition of the classic text guides students through assembly language using a hands-on approach, supporting future computing professionals with the basics they need to understand the mechanics and function of the computer’s inner workings. Through using real instruction sets to write real assembly language programs, students will become acquainted with the basics of computer architecture. 80x86 Assembly Language and Computer Architecture covers the Intel 80x86 using the powerful tools provided by Microsoft Visual Studio, including its 32- and 64-bit assemblers, its versatile debugger, and its ability to link assembly language and C/C++ program segments. The text also includes multiple examples of how individual 80x86 instructions execute, as well as complete programs using these instructions. Hands-on exercises reinforce key concepts and problem-solving skills. Updated to be compatible with Visual Studio 2012, and incorporating over a hundred new exercises, 80x86 Assembly Language and Computer Architecture: Third Edition is accessible and clear enough for beginning students while providing coverage of a rich set of 80x86 instructions and their use in simple assembly language programs. The text will prepare students to program effectively at any level. Key features of the fully revised and updated Third Edition include: • Updated to be used with Visual Studio 2012, while remaining compatible with earlier versions • Over 100 new exercises and programming exercises • Improved, clearer layout with easy-to-read illustrations • The same clear and accessibly writing style as previous editions • Full suite of ancillary materials, including PowerPoint lecture outlines, Test Bank, and answer keys • Suitable as a stand-alone text in an assembly language course or as a supplement in a computer architecture course

Table of Contents

  1. Cover
  2. Title Page
  3. Copyright
  4. Dedication
  5. Contents
  6. Preface
  7. Chapter 1 Representing Data in a Computer
    1. 1.1 Binary and Hexadecimal Numbers
    2. 1.2 Character Codes
    3. 1.3 Unsigned and Signed Integers
    4. 1.4 Integer Addition and Subtraction
    5. 1.5 Other Systems for Representing Numbers
    6. 1.6 Chapter Summary
  8. Chapter 2 Parts of a Computer System
    1. 2.1 PC Hardware: Memory
    2. 2.2 PC Hardware: The CPU
    3. 2.3 PC Hardware: Input/Output Devices
    4. 2.4 PC Software
    5. 2.5 Chapter Summary
  9. Chapter 3 Elements of Assembly Language
    1. 3.1 Assembly Language Statements
    2. 3.2 A Complete 32-Bit Example Using the Debugger
    3. 3.3 Data Declarations
    4. 3.4 Instruction Operands
    5. 3.5 A Complete 32-Bit Example Using Windows Input/Output
    6. 3.6 Input/Output and Data Conversion Using Macros Defined in IO.H
    7. 3.7 64-Bit Examples
    8. 3.8 Chapter Summary
  10. Chapter 4 Basic Instructions
    1. 4.1 Copying Data
    2. 4.2 Integer Addition and Subtraction Instructions
    3. 4.3 Multiplication Instructions
    4. 4.4 Division Instructions
    5. 4.5 Chapter Summary
  11. Chapter 5 Branching and Looping
    1. 5.1 Unconditional Jumps
    2. 5.2 Conditional Jumps, Compare Instructions, and if Structures
    3. 5.3 Implementing Loop Structures
    4. 5.4 for Loops in Assembly Language
    5. 5.5 Arrays
    6. 5.6 Chapter Summary
  12. Chapter 6 Procedures
    1. 6.1 The 80x86 Stack
    2. 6.2 32-Bit Procedures with Value Parameters
    3. 6.3 Additional 32-Bit Procedure Options
    4. 6.4 64-Bit Procedures
    5. 6.5 Macro Definition and Expansion
    6. 6.6 Chapter Summary
  13. Chapter 7 Bit Manipulation
    1. 7.1 Logical Operations
    2. 7.2 Shift and Rotate Instructions
    3. 7.3 Converting an ASCII String to a 2’s Complement Integer
    4. 7.4 Chapter Summary
  14. Chapter 8 String Operations
    1. 8.1 Using String Instructions
    2. 8.2 Repeat Prefixes and More String Instructions
    3. 8.3 Character Translation
    4. 8.4 Converting a 2’s Complement Integer to an ASCII String
    5. 8.5 Chapter Summary
  15. Chapter 9 Floating Point Operations
    1. 9.1 Floating Point Formats
    2. 9.2 80x86 Floating Point Architecture
    3. 9.3 Converting Floating Point to and from ASCII
    4. 9.4 Single-Instruction Multiple-Data Instructions
    5. 9.5 Floating Point Assembly Language Procedures with C/C++
    6. 9.6 Chapter Summary
  16. Appendix A: Hexadecimal/ASCII Conversion
  17. Appendix B: Assembler Reserved Words
  18. Appendix C: Answers to Selected Exercises
  19. Index