Assembly Language for X86 Processors
Assembly Language for X86 Processors
Click to enlarge
Author(s): Irvine, Kip R.
ISBN No.: 9780131377097
Pages: 768
Year: 201004
Format: Trade Paper
Price: $ 121.22
Status: Out Of Print

Preface xix 1. Basic Concepts 1 1.1 Welcome to Assembly Language 1 1.1.1 Good Questions to Ask 2 1.1.2 Assembly Language Applications 5 1.1.


3 Section Review 6 1.2 Virtual Machine Concept 7 1.2.1 Section Review 9 1.3 Data Representation 9 1.3.1 Binary Integers 9 1.3.


2 Binary Addition 11 1.3.3 Integer Storage Sizes 12 1.3.4 Hexadecimal Integers 13 1.3.5 Signed Integers 15 1.3.


6 Character Storage 17 1.3.7 Section Review 19 1.4 Boolean Operations 22 1.4.1 Truth Tables for Boolean Functions 24 1.4.2 Section Review 26 1.


5 Chapter Summary 26 1.6 Exercises 27 1.6.1 Programming Tasks 27 1.6.2 Nonprogramming Tasks 27 2. x86 Processor Architecture 29 2.1 General Concepts 29 2.


1.1 Basic Microcomputer Design 30 2.1.2 Instruction Execution Cycle 31 2.1.3 Reading from Memory 33 2.1.4 How Programs Run 34 2.


1.5 Section Review 35 2.2 x86 Architecture Details 36 2.2.1 Modes of Operation 36 2.2.2 Basic Execution Environment 36 2.2.


3 Floating-Point Unit 39 2.2.4 Overview of Intel Microprocessors 39 2.2.5 Section Review 42 2.3 x86 Memory Management 43 2.3.1 Real-Address Mode 43 2.


3.2 Protected Mode 45 2.3.3 Section Review 47 2.4 Components of a Typical x86 Computer 48 2.4.1 Motherboard 48 2.4.


2 Video Output 50 2.4.3 Memory 50 2.4.4 Input-Output Ports and Device Interfaces 50 2.4.5 Section Review 52 2.5 Input-Output System 52 2.


5.1 Levels of I/O Access 52 2.5.2 Section Review 55 2.6 Chapter Summary 55 2.7 Chapter Exercises 57 3. Assembly Language Fundamentals 58 3.1 Basic Elements of Assembly Language 58 3.


1.1 Integer Constants 59 3.1.2 Integer Expressions 60 3.1.3 Real Number Constants 61 3.1.4 Character Constants 61 3.


1.5 String Constants 61 3.1.6 Reserved Words 62 3.1.7 Identifiers 62 3.1.8 Directives 62 3.


1.9 Instructions 63 3.1.10 The NOP (No Operation) Instruction 65 3.1.11 Section Review 66 3.2 Example: Adding and Subtracting Integers 66 3.2.


1 Alternative Version of AddSub 69 3.2.2 Program Template 70 3.2.3 Section Review 70 3.3 Assembling, Linking, and Running Programs 71 3.3.1 The Assemble-Link-Execute Cycle 71 3.


3.2 Section Review 77 3.4 Defining Data 77 3.4.1 Intrinsic Data Types 77 3.4.2 Data Definition Statement 77 3.4.


3 Defining BYTE and SBYTE Data 78 3.4.4 Defining WORD and SWORD Data 80 3.4.5 Defining DWORD and SDWORD Data 81 3.4.6 Defining QWORD Data 81 3.4.


7 Defining Packed Binary Coded Decimal (TBYTE) Data 82 3.4.8 Defining Real Number Data 83 3.4.9 Little Endian Order 83 3.4.10 Adding Variables to the AddSub Program 84 3.4.


11 Declaring Uninitialized Data 85 3.4.12 Section Review 85 3.5 Symbolic Constants 86 3.5.1 Equal-Sign Directive 86 3.5.2 Calculating the Sizes of Arrays and Strings 87 3.


5.3 EQU Directive 88 3.5.4 TEXTEQU Directive 89 3.5.5 Section Review 90 3.6 Real-Address Mode Programming (Optional) 90 3.6.


1 Basic Changes 90 3.7 Chapter Summary 91 3.8 Programming Exercises 92 4. Data Transfers, Addressing, and Arithmetic 94 4.1 Data Transfer Instructions 94 4.1.1 Introduction 94 4.1.


2 Operand Types 95 4.1.3 Direct Memory Operands 96 4.1.4 MOV Instruction 96 4.1.5 Zero/Sign Extension of Integers 98 4.1.


6 LAHF and SAHF Instructions 100 4.1.7 XCHG Instruction 100 4.1.8 Direct-Offset Operands 101 4.1.9 Example Program (Moves) 102 4.1.


10 Section Review 103 4.2 Addition and Subtraction 104 4.2.1 INC and DEC Instructions 104 4.2.2 ADD Instruction 104 4.2.3 SUB Instruction 105

To be able to view the table of contents for this publication then please subscribe by clicking the button below...
To be able to view the full description for this publication then please subscribe by clicking the button below...