Assembly language for Intel-based computers / Kip R. Irvine.
Material type:
Item type | Current library | Collection | Call number | Copy number | Status | Date due | Barcode | Item holds |
---|---|---|---|---|---|---|---|---|
![]() |
Dr. S. R. Lasker Library, EWU Reserve Section | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-1 | Not For Loan | 9100 | ||
![]() |
Dr. S. R. Lasker Library, EWU Audio Visual | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-1 | Available | CD-135 | ||
![]() |
Dr. S. R. Lasker Library, EWU Reserve Section | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-2 | Not For Loan | 9101 | ||
![]() |
Dr. S. R. Lasker Library, EWU Audio Visual | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-2 | Available | CD-136 | ||
![]() |
Dr. S. R. Lasker Library, EWU Circulation Section | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-3 | Available | 9102 | ||
![]() |
Dr. S. R. Lasker Library, EWU Audio Visual | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-3 | Available | CD-137 | ||
![]() |
Dr. S. R. Lasker Library, EWU Circulation Section | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-4 | Available | 9103 | ||
![]() |
Dr. S. R. Lasker Library, EWU Audio Visual | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-4 | Available | CD-138 | ||
![]() |
Dr. S. R. Lasker Library, EWU Circulation Section | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-5 | Available | 9104 | ||
![]() |
Dr. S. R. Lasker Library, EWU Audio Visual | Non-fiction | 005.265 IRA 1999 (Browse shelf(Opens below)) | C-5 | Available | CD-139 |
Browsing Dr. S. R. Lasker Library, EWU shelves, Shelving location: Audio Visual Close shelf browser (Hides shelf browser)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
005.133Java DEJ 1999 Java : | 005.133Java DEJ 1999 Java : | 005.265 IRA 1999 Assembly language for Intel-based computers / | 005.265 IRA 1999 Assembly language for Intel-based computers / | 005.265 IRA 1999 Assembly language for Intel-based computers / | 005.265 IRA 1999 Assembly language for Intel-based computers / | 005.265 IRA 1999 Assembly language for Intel-based computers / |
Rev. ed. of: Assembly language for the IBM-PC. 2nd ed. c1993.
Includes index.
TOC 1.1 Context of Assembly Language 1 --
1.1.1 What Is Assembly Language? 2 --
1.1.2 Assembly Language Applications 4 --
1.1.3 Machine Language 6 --
1.2 Data Representation 7 --
1.2.1 Binary Numbers 7 --
1.2.2 Converting Binary to Decimal 9 --
1.2.3 Hexadecimal Numbers 9 --
1.2.4 Signed Numbers 12 --
1.2.5 Character Storage 13 --
1.3 Introducing Assembly Language 15 --
1.3.1 Assembly Language Instructions 15 --
1.3.2 A Sample Debug Program 16 --
1.3.3 Debug Commands 18 --
2 Hardware and Software Architecture 23 --
2.1 16-Bit Intel Processor Architecture 24 --
2.1.1 Central Processing Unit 24 --
2.1.2 Registers 25 --
2.1.3 Status and Control Registers 27 --
2.1.4 Flags 28 --
2.1.5 Instruction Execution Cycle 29 --
2.1.6 Intel Microprocessor Family 29 --
2.2 32-Bit Intel Processor Architecture 31 --
2.2.1 Improved Execution Cycle 31 --
2.2.2 32-bit Register Set 32 --
2.3 Operating System and Memory 32 --
2.3.1 History of PC Memory Usage 32 --
2.3.2 Memory Architecture 33 --
2.3.3 System Startup Procedure 34 --
2.3.4 Video Display 36 --
2.3.5 Serial Communications Ports 37 --
2.3.6 Read-Only Memory (ROM) 37 --
2.3.7 Absolute Address Calculation 37 --
2.4 Components of a Microcomputer 38 --
2.4.1 Internal Components 39 --
2.4.2 Motherboard Designs 39 --
2.4.3 Bus Architecture 40 --
2.4.4 Video Adapter 41 --
2.4.5 Memory (RAM) 42 --
2.4.6 Video RAM 43 --
2.4.7 Secondary Storage Devices 44 --
2.5 Review Questions 46 --
2.6 Programming Exercises 48 --
3 Assembly Language Fundamentals 53 --
3.1 Basic Elements of Assembly Language 54 --
3.1.1 Constants and Expressions 54 --
3.1.2 Statements 55 --
3.1.3 Names 56 --
3.2 Sample Hello Program 57 --
3.3 Assembling, Linking, and Debugging 60 --
3.3.1 Borland Turbo Assembler (TASM) 61 --
3.3.2 Microsoft Assembler (MASM) 62 --
3.4 Data Allocation Directives 63 --
3.4.1 Define Byte (DB) 64 --
3.4.2 Define Word (DW) 66 --
3.4.3 Define Doubleword (DD) 66 --
3.5 Symbolic Constants 67 --
3.5.1 Equal-Sign Directive 67 --
3.5.2 EQU Directive 68 --
3.5.3 TEXTEQU Directive 68 --
3.6 Data Transfer Instructions 70 --
3.6.1 MOV Instruction 70 --
3.6.2 Operands with Displacements 71 --
3.6.3 XCHG Instruction 72 --
3.7 Arithmetic Instructions 73 --
3.7.1 INC and DEC Instructions 73 --
3.7.2 ADD Instruction 74 --
3.7.3 SUB Instruction 74 --
3.7.4 Flags Affected by ADD and SUB 75 --
3.8 Basic Operand Types 76 --
3.8.1 Register Operands 77 --
3.8.2 Immediate Operands 77 --
3.8.3 Direct Operands 78 --
3.8.4 Direct - Offset Operands 78 --
3.10 Review Questions 79 --
3.11 Programming Exercises 84 --
4 Using the Assembler 87 --
4.1 More About the Assembler and Linker 88 --
4.1.1 Source Listing File 88 --
4.1.2 Map File 89 --
4.1.3 Assembling and Linking with MS-DOS Batch Files 90 --
4.1.4 Memory Models 91 --
4.1.5 Target Processor Directives 93 --
4.2 Operators and Expressions 94 --
4.2.1 Arithmetic Operators 94 --
4.2.2 OFFSET, SEG, PTR, LABEL, and EVEN 96 --
4.2.3 TYPE and SIZE Operators 99 --
4.2.4 Borland TASM's ENUM Directive 100 --
4.3 JMP and LOOP Instructions 102 --
4.3.1 JMP Instruction 102 --
4.3.2 LOOP Instruction 104 --
4.3.3 LOOP, LOOPW, LOOPD Instructions 105 --
4.4 Indirect Addressing 106 --
4.4.1 Indirect Operands 106 --
4.4.2 Based and Indexed Operands 109 --
4.4.3 Base-Index Operands 111 --
4.4.4 Base-Index with Displacement 112 --
4.5 Debugging Workshop 112 --
4.5.1 Operand Sizes and Addressing Errors 113 --
4.6 More 80386 and 80486 Instructions 115 --
4.6.1 MOVZX and MOVSX Instructions 115 --
4.6.2 XADD Instruction 116 --
4.7 Using a Link Library 116 --
4.7.1 Selected Procedures in the Book's Link Library 116 --
4.7.2 Displaying Random Integers 121 --
4.7.3 Timing Events 122 --
5u Procedures and Interrupts 131 --
5.1 Stack Operations 132 --
5.1.1 PUSH and POP Instructions 134 --
5.2 Procedures 135 --
5.2.1 PROC and ENDP Directives 136 --
5.2.2 Sample Program: SUBS.ASM 137 --
5.2.3 Nested Procedure Calls 139 --
5.2.4 Near and Far Procedures 139 --
5.2.5 Using Memory Models 141 --
5.3 Procedure Parameters 143 --
5.3.1 Passing Arguments in Registers 143 --
5.4 Software Interrupts 145 --
5.4.1 INT Instruction 145 --
5.4.2 Redirecting Input-Output 147 --
5.5 MS-DOS Function Calls 147 --
5.5.1 Output Functions 148 --
5.5.2 Input Functions 149 --
5.5.3 Date/Time Functions 154 --
5.6 Bios-Level Keyboard Input (INT 16H) 155 --
5.7 Bios-Level Video Control (INT 10H) 156 --
5.7.1 Displays, Modes, and Attributes 157 --
5.7.2 Color Text Mode 159 --
5.7.3 INT 10h Video Functions 161 --
5.7.4 Writing Directly to Video Memory 169 --
5.8 Recursion 170 --
6 Conditional Processing 179 --
6.1 Boolean and Comparison Instructions 180 --
6.1.1 Flags Register 180 --
6.1.2 AND Instruction 181 --
6.1.3 OR Instruction 182 --
6.1.4 XOR Instruction 184 --
6.1.5 NOT Instruction 185 --
6.1.6 NEG Instruction 185 --
6.1.7 TEST Instruction 186 --
6.1.8 BT, BTC, BTR, BTS Instructions 186 --
6.1.9 BSF and BSR Instructions 187 --
6.1.10 CMP Instruction 188 --
6.1.11 CMPXCHG Instruction 189 --
6.1.12 Boolean Assembler Operators 190 --
6.2 Conditional Jumps 191 --
6.2.1 Jcond Instruction 191 --
6.2.2 Code Generation for Conditional Jumps 194 --
6.2.3 Conditional Jump Examples 195 --
6.2.4 SETcondition Instruction 202 --
6.3 Conditional LOOPS 203 --
6.3.1 LOOPZ and LOOPE Instructions 203 --
6.3.2 LOOPNZ and LOOPNE Instructions 204 --
6.4 High-Level Logic Structures 204 --
6.4.1 Simple IF Statement 204 --
6.4.2 Compound IF Statement 205 --
6.4.3 WHILE Structure 206 --
6.4.4 REPEAT-UNTIL Structure 208 --
6.4.5 CASE Structure 209 --
6.4.6 Table of Procedure Offsets 210 --
6.4.7 Finite State Machines 212 --
7 Integer Arithmetic 225 --
7.1 Shift and Rotate Instructions 228 --
7.1.1 SHL Instruction 228 --
7.1.2 SHLD/SHRD Instructions 230 --
7.1.3 SHR Instruction 231 --
7.1.4 SAL and SAR Instructions 232 --
7.1.5 ROL Instruction 233 --
7.1.6 ROR Instruction 234 --
7.1.7 RCL and RCR Instructions 234 --
7.2 Sample Applications 235 --
7.2.1 Shifting Multiple Bytes on the 8086 235 --
7.2.2 Fast Multiplication and Division 236 --
7.2.3 Displaying Binary Bits 236 --
7.2.4 Isolating a Bit String 238 --
7.2.5 RECORD Directive 239 --
7.3 Extended Addition and Substraction 241 --
7.3.1 ADC Instruction 241 --
7.3.2 SBB Instruction 244 --
7.4 Multiplication and Division 245 --
7.4.1 MUL Instruction 246 --
7.4.2 IMUL Instruction 247 --
7.4.3 DIV Instruction 248 --
7.4.4 IDIV Instruction 249 --
7.4.5 CBW, CWD, CDQ, and CWDE Instructions 249 --
7.4.6 Preventing Divide Overflow 250 --
7.5 Application: Direct Video Output 251 --
7.5.1 Set_videoseg Procedure 251 --
7.5.2 Writechar_direct Procedure 252 --
7.5.3 Writestring_direct Procedure 253 --
7.6 ASCII and Packed Decimal Arithmetic 254 --
7.6.1 AAA Instruction 255 --
7.6.2 AAS Instruction 255 --
7.6.3 AAM Instruction 255 --
7.6.4 AAD Instruction 256 --
7.6.5 DAA, DAS Instructions 256 --
7.8.1 Bit Manipulation 260 --
7.8.2 Bit-Mapped Sets 261 --
7.8.3 Prime Numbers 262 --
7.8.4 Arithmetic with Large Numbers 263 --
7.8.5 Direct Video Output 265 --
8 Structures and Macros 267 --
8.1 Structures 267 --
8.2 Introducing Macros 272 --
8.2.1 Macros with Parameters 272 --
8.2.2 Defining a Macro 274 --
8.2.3 Example: mDisplayStr Macro 275 --
8.2.4 Example: mGotoRowCol Macro 276 --
8.2.5 Macros That Allocate Storage 277 --
8.2.6 LOCAL Directive 278 --
8.3 Special Macro Techniques 279 --
8.3.1 Nested Macros 279 --
8.3.2 Macros Calling Procedures 280 --
8.3.3 Conditional-Assembly Directives 281 --
8.3.4 EXITM Directive 283 --
8.3.5 Macro Operators 284 --
8.4 A Simple Macro Library 286 --
8.4.1 mWriteliteral (Write Literal) 286 --
8.4.2 mCondCall (Conditional Call) 287 --
8.4.3 mCompJmp (Compare and Jump) 288 --
8.4.4 mMult16 (Memory Multiply/16) 288 --
8.4.5 mMOVE (Memory to Memory Move) 289 --
8.4.6 mLongLoop (Long Loop) 290 --
8.5 Advanced Macros and Directives 291 --
8.5.1 REPT Directive 291 --
8.5.2 Linked List Example 292 --
8.5.3 IRP Directive 293 --
8.5.4 Extended Jump Macro 294 --
8.5.5 Generic Shift/Rotate Macro 296 --
8.5.6 Additional Tips 297 --
9 Numeric Conversions and Libraries 313 --
9.2 Character Translation Methods 314 --
9.2.1 XLAT Instruction 315 --
9.2.2 Character Filtering 316 --
9.2.3 Character Encoding 317 --
9.3 Stack Parameters 320 --
9.3.1 Creating a Stack Frame 320 --
9.3.2 Passing Arguments by Reference 322 --
9.3.3 LDS/LES/LFS/LGS/LSS (Load Far Pointer) 325 --
9.3.4 ENTER Instruction 326 --
9.3.5 LEAVE Instruction 327 --
9.3.6 Passing Arguments the 'C' Language Way 327 --
9.3.7 Procedure Declarations in Borland TASM 329 --
9.3.8 Function Procedures (TASM) 331 --
9.3.9 Procedure Declarations in Microsoft MASM 331 --
9.4 Separately Assembled Modules 334 --
9.4.1 PUBLIC Directive 334 --
9.4.2 Creating a MultiModule Program 335 --
9.5 Creating a Link Library 337 --
9.6 Binary to ASCII Conversion 340 --
9.6.1 Writeint Procedure 341 --
9.7 ASCII to Binary Conversion 342 --
9.7.1 Readint Procedure 343 --
10 Strings and Arrays 355 --
10.1 String Storage Methods 355 --
10.1.2 Types of Strings 356 --
10.2 String Primitive Instructions 357 --
10.2.1 MOVS (Move String Data) 361 --
10.2.2 Need for Speed 362 --
10.2.3 CMPS (Compare Strings) 363 --
10.2.4 SCAS (Scan String) 365
CSE
Tahur Ahmed
There are no comments on this title.