did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780136603900

Assembly Language for Intel-Based Computers

by ;
  • ISBN13:

    9780136603900

  • ISBN10:

    0136603904

  • Edition: 3rd
  • Format: Hardcover
  • Copyright: 1999-01-01
  • Publisher: Prentice Hall
  • View Upgraded Edition
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $80.00

Summary

Designed for undergraduate courses in assembly language programming. Concentrating on the MS-DOS operating system and using short applications, this complete and fully updated study of assembly language for the IBM-PC helps students learn the basics of operating systems and architecture in the context of a microprocessor, and teaches them how to approach programming problems with a machine-level mindset. Based on the Intel 80x86 processor family, it simplifies and demystifies concepts that must be understood before students go on to study computer architecture or computer operating systems in more advanced courses. The text provides hundreds of short examples that show how assembly language may be applied to useful problems.

Table of Contents

1 Introduction
1(22)
1.1 CONTEXT OF ASSEMBLY LANGUAGE
1(6)
1.1.1 What Is Assembly Language?
2(2)
1.1.2 Assembly Language Applications
4(2)
1.1.3 Machine Language
6(1)
1.2 DATA REPRESENTATION
7(8)
1.2.1 Binary Numbers
7(2)
1.2.2 Converting Binary to Decimal
9(1)
1.2.3 Hexadecimal Numbers
9(3)
1.2.4 Signed Numbers
12(1)
1.2.5 Character Storage
13(2)
1.3 INTRODUCING ASSEMBLY LANGUAGE
15(4)
1.3.1 Assembly Language Instructions
15(1)
1.3.2 A Sample Debug Program
16(2)
1.3.3 Debug Commands
18(1)
1.4 REVIEW QUESTIONS
19(4)
2 Hardware and Software Architecture
23(30)
2.1 16-BIT INTEL PROCESSOR ARCHITECTURE
24(7)
2.1.1 Central Processing Unit
24(1)
2.1.2 Registers
25(2)
2.1.3 Status and Control Registers
27(1)
2.1.4 Flags
28(1)
2.1.5 Instruction Execution Cycle
29(1)
2.1.6 Intel Microprocessor Family
29(2)
2.2 32-BIT INTEL PROCESSOR ARCHITECTURE
31(1)
2.2.1 Improved Execution Cycle
31(1)
2.2.2 32-bit Register Set
32(1)
2.3 OPERATING SYSTEM AND MEMORY
32(6)
2.3.1 History of PC Memory Usage
32(1)
2.3.2 Memory Architecture
33(1)
2.3.3 System Startup Procedure
34(2)
2.3.4 Video Display
36(1)
2.3.5 Serial Communications Ports
37(1)
2.3.6 Read-Only Memory (ROM)
37(1)
2.3.7 Absolute Address Calculation
37(1)
2.4 COMPONENTS OF A MICROCOMPUTER
38(8)
2.4.1 Internal Components
39(1)
2.4.2 Motherboard Designs
39(1)
2.4.3 Bus Architecture
40(1)
2.4.4 Video Adapter
41(1)
2.4.5 Memory (RAM)
42(1)
2.4.6 Video RAM
43(1)
2.4.7 Secondary Storage Devices
44(2)
2.5 REVIEW QUESTIONS
46(2)
2.6 PROGRAMMING EXERCISES
48(5)
3 Assembly Language Fundamentals
53(34)
3.1 BASIC ELEMENTS OF ASSEMBLY LANGUAGE
54(3)
3.1.1 Constants and Expressions
54(1)
3.1.2 Statements
55(1)
3.1.3 Names
56(1)
3.2 SAMPLE HELLO PROGRAM
57(3)
3.3 ASSEMBLING, LINKING, AND DEBUGGING
60(3)
3.3.1 Borland Turbo Assembler (TASM)
61(1)
3.3.2 Microsoft Assembler (MASM)
62(1)
3.4 DATA ALLOCATION DIRECTIVES
63(4)
3.4.1 Define Byte (DB)
64(2)
3.4.2 Define Word (DW)
66(1)
3.4.3 Define Doubleword (DD)
66(1)
3.5 SYMBOLIC CONSTANTS
67(3)
3.5.1 Equal-Sign Directive
67(1)
3.5.2 EQU Directive
68(1)
3.5.3 TEXTEQU Directive
68(2)
3.6 DATA TRANSFER INSTRUCTIONS
70(3)
3.6.1 MOV Instruction
70(1)
3.6.2 Operands with Displacements
71(1)
3.6.3 XCHG Instruction
72(1)
3.7 ARITHMETIC INSTRUCTIONS
73(3)
3.7.1 INC and DEC Instructions
73(1)
3.7.2 ADD Instruction
74(1)
3.7.3 SUB Instruction
74(1)
3.7.4 Flags Affected by ADD and SUB
75(1)
3.8 BASIC OPERAND TYPES
76(3)
3.8.1 Register Operands
77(1)
3.8.2 Immediate Operands
78(1)
3.8.3 Direct Operands
78(1)
3.8.4 Direct -- Offset Operands
78(1)
3.10 REVIEW QUESTIONS
79(5)
3.11 PROGRAMMING EXERCISES
84(3)
4 Using the Assembler
87(44)
4.1 MORE ABOUT THE ASSEMBLER AND LINKER
88(6)
4.1.1 Source Listing File
88(1)
4.1.2 Map File
89(1)
4.1.3 Assembling and Linking with MS-DOS Batch Files
90(1)
4.1.4 Memory Models
91(2)
4.1.5 Target Processor Directives
93(1)
4.2 OPERATORS AND EXPRESSIONS
94(8)
4.2.1 Arithmetic Operators
94(2)
4.2.2 OFFSET, SEG, PTR, LABEL, and EVEN
96(3)
4.2.3 TYPE and SIZE Operators
99(1)
4.2.4 Borland TASM's ENUM Directive
100(2)
4.3 JMP AND LOOP INSTRUCTIONS
102(4)
4.3.1 JMP Instruction
102(2)
4.3.2 LOOP Instruction
104(1)
4.3.3 LOOP, LOOPW, LOOPD Instructions
105(1)
4.4 INDIRECT ADDRESSING
106(6)
4.4.1 Indirect Operands
106(3)
4.4.2 Based and Indexed Operands
109(2)
4.4.3 Base-Index Operands
111(1)
4.4.4 Base-Index with Displacement
112(1)
4.5 DEBUGGING WORKSHOP
112(3)
4.5.1 Operand Sizes and Addressing Errors
113(2)
4.6 MORE 80386 AND 80486 INSTRUCTIONS
115(1)
4.6.1 MOVZX and MOVSX Instructions
115(1)
4.6.2 XADD Instruction
116(1)
4.7 USING A LINK LIBRARY
116(7)
4.7.1 Selected Procedures in the Book's Link Library
116(5)
4.7.2 Displaying Random Integers
121(1)
4.7.3 Timing Events
122(1)
4.8 REVIEW QUESTIONS
123(4)
4.9 PROGRAMMING EXERCISES
127(4)
5 Procedures and Interrupts
131(48)
5.1 STACK OPERATIONS
132(3)
5.1.1 PUSH and POP Instructions
134(1)
5.2 PROCEDURES
135(8)
5.2.1 PROC and ENDP Directives
136(1)
5.2.2 Sample Program: SUBS.ASM
137(2)
5.2.3 Nested Procedure Calls
139(1)
5.2.4 Near and Far Procedures
139(2)
5.2.5 Using Memory Models
141(2)
5.3 PROCEDURE PARAMETERS
143(2)
5.3.1 Passing Arguments in Registers
143(2)
5.4 SOFTWARE INTERRUPTS
145(2)
5.4.1 INT Instruction
145(2)
5.4.2 Redirecting Input-Output
147(1)
5.5 MS-DOS FUNCTION CALLS
147(8)
5.5.1 Output Functions
148(1)
5.5.2 Input Functions
149(5)
5.5.3 Date/Time Functions
154(1)
5.6 BIOS-LEVEL KEYBOARD INPUT (INT 16H)
155(1)
5.7 BIOS-LEVEL VIDEO CONTROL (INT 10H)
156(14)
5.7.1 Displays, Modes, and Attributes
157(2)
5.7.2 Color Text Mode
159(2)
5.7.3 INT 10h Video Functions
161(8)
5.7.4 Writing Directly to Video Memory
169(1)
5.8 RECURSION
170(3)
5.9 REVIEW QUESTIONS
173(3)
5.10 PROGRAMMING EXERCISES
176(3)
6 Conditional Processing
179(46)
6.1 BOOLEAN AND COMPARISON INSTRUCTIONS
180(11)
6.1.1 The Flags Register
180(1)
6.1.2 AND Instruction
181(1)
6.1.3 OR Instruction
182(1)
6.1.4 XOR Instruction
184(1)
6.1.5 NOT Instruction
185(1)
6.1.6 NEG Instruction
185(1)
6.1.7 TEST Instruction
186(1)
6.1.8 BT, BTC, BTR, BTS Instructions
186(1)
6.1.9 BSF and BSR Instructions
187(1)
6.1.10 CMP Instruction
188(1)
6.1.11 CMPXCHG Instruction
189(1)
6.1.12 Boolean Assembler Operators
190(1)
6.2 CONDITIONAL JUMPS
191(12)
6.2.1 Jcond Instruction
191(3)
6.2.2 Code Generation for Conditional Jumps
194(1)
6.2.3 Conditional Jump Examples
195(7)
6.2.4 The SETcondition Instruction
202(1)
6.3 CONDITIONAL LOOPS
203(1)
6.3.1 LOOPZ and LOOPE Instructions
203(1)
6.3.2 LOOPNZ and LOOPNE Instructions
204(1)
6.4 HIGH-LEVEL LOGIC STRUCTURES
204(13)
6.4.1 Simple IF Statement
204(1)
6.4.2 Compound IF Statement
205(1)
6.4.3 WHILE Structure
206(2)
6.4.4 REPEAT-UNTIL Structure
208(1)
6.4.5 CASE Structure
209(1)
6.4.6 Table of Procedure Offsets
210(2)
6.4.7 Finite State Machines
212(5)
6.5 REVIEW QUESTIONS
217(3)
6.6 PROGRAMMING EXERCISES
220(5)
7 Integer Arithmetic
225(42)
7.1 SHIFT AND ROTATE INSTRUCTIONS
228(7)
7.1.1 SHL Instruction
228(2)
7.1.2 SHLD/SHRD Instructions
230(1)
7.1.3 SHR Instruction
231(1)
7.1.4 SAL and SAR Instructions
232(1)
7.1.5 ROL Instruction
233(1)
7.1.6 ROR Instruction
234(1)
7.1.7 RCL and RCR Instructions
234(1)
7.2 SAMPLE APPLICATIONS
235(6)
7.2.1 Shifting Multiple Bytes on the 8086
235(1)
7.2.2 Fast Multiplication and Division
236(1)
7.2.3 Displaying Binary Bits
236(2)
7.2.4 Isolating a Bit String
238(1)
7.2.5 RECORD Directive
239(2)
7.3 EXTENDED ADDITION AND SUBTRACTION
241(4)
7.3.1 ADC Instruction
241(3)
7.3.2 SBB Instruction
244(1)
7.4 MULTIPLICATION AND DIVISION
245(6)
7.4.1 MUL Instruction
246(1)
7.4.2 IMUL Instruction
247(1)
7.4.3 DIV Instruction
248(1)
7.4.4 IDIV Instruction
249(1)
7.4.5 CBW, CWD, CDQ, and CWDE Instructions
249(1)
7.4.6 Preventing Divide Overflow
250(1)
7.5 APPLICATION: DIRECT VIDEO OUTPUT
251(3)
7.5.1 Set_videoseg Procedure
251(1)
7.5.2 Writechar_direct Procedure
252(1)
7.5.3 Writestring_direct Procedure
253(1)
7.6 ASCII AND PACKED DECIMAL ARITHMETIC
254(3)
7.6.1 AAA Instruction
255(1)
7.6.2 AAS Instruction
255(1)
7.6.3 AAM Instruction
255(1)
7.6.4 AAD Instruction
256(1)
7.6.5 DAA, DAS Instructions
256(1)
7.7 REVIEW QUESTIONS
257(3)
7.8 PROGRAMMING EXERCISES
260(7)
7.8.1 Bit Manipulation
260(1)
7.8.2 Bit-Mapped Sets
261(1)
7.8.3 Prime Numbers
262(1)
7.8.4 Arithmetic with Large Numbers
263(2)
7.8.5 Direct Video Output
265(2)
8 Structures and Macros
267(46)
8.1 STRUCTURES
267(5)
8.2 INTRODUCING MACROS
272(7)
8.2.1 Macros with Parameters
272(2)
8.2.2 Defining a Macro
274(1)
8.2.3 Example: mDisplayStr Macro
275(1)
8.2.4 Example: mGotoRowCol Macro
276(1)
8.2.5 Macros That Allocate Storage
277(1)
8.2.6 LOCAL Directive
278(1)
8.3 SPECIAL MACRO TECHNIQUES
279(7)
8.3.1 Nested Macros
279(1)
8.3.2 Macros Calling Procedures
280(1)
8.3.3 Conditional-Assembly Directives
281(2)
8.3.4 EXITM Directive
283(1)
8.3.5 Macro Operators
284(2)
8.4 A SIMPLE MACRO LIBRARY
286(5)
8.4.1 mWriteliteral (Write Literal)
286(1)
8.4.2 mCondCall (Conditional Call)
287(1)
8.4.3 mCompJmp (Compare and Jump)
288(1)
8.4.4 mMult16 (Memory Multiply/16)
288(1)
8.4.5 mMOVE (Memory to Memory Move)
289(1)
8.4.6 mLongLoop (Long Loop)
290(1)
8.5 ADVANCED MACROS AND DIRECTIVES
291(15)
8.5.1 REPT Directive
291(1)
8.5.2 Linked List Example
292(1)
8.5.3 IRP Directive
293(1)
8.5.4 Extended Jump Macro
294(2)
8.5.5 Generic Shift/Rotate Macro
296(1)
8.5.6 Additional Tips
297(9)
8.6 REVIEW QUESTIONS
306(3)
8.7 PROGRAMMING EXERCISES
309(4)
9 Numeric Conversions and Libraries
313(42)
9.1 INTRODUCTION
314(1)
9.2 CHARACTER TRANSLATION METHODS
314(6)
9.2.1 The XLAT Instruction
315(1)
9.2.2 Character Filtering
316(1)
9.2.3 Character Encoding
317(3)
9.3 STACK PARAMETERS
320(14)
9.3.1 Creating a Stack Frame
320(2)
9.3.2 Passing Arguments by Reference
322(3)
9.3.3 LDS/LES/LFS/LGS/LSS (Load Far Pointer)
325(1)
9.3.4 ENTER Instruction
326(1)
9.3.5 LEAVE Instruction
327(1)
9.3.6 Passing Arguments the `C' Language Way
327(2)
9.3.7 Procedure Declarations in Borland TASM
329(2)
9.3.8 Function Procedures (TASM)
331(1)
9.3.9 Procedure Declarations in Microsoft MASM
331(3)
9.4 SEPARATELY ASSEMBLED MODULES
334(3)
9.4.1 The PUBLIC Directive
334(1)
9.4.2 Creating a MultiModule Program
335(2)
9.5 CREATING A LINK LIBRARY
337(3)
9.6 BINARY TO ASCII CONVERSION
340(2)
9.6.1 The Writeint Procedure
341(1)
9.7 ASCII TO BINARY CONVERSION
342(4)
9.7.1 The Readint Procedure
343(3)
9.8 REVIEW QUESTIONS
346(3)
9.9 PROGRAMMING EXERCISES
349(6)
10 Strings And Arrays
355(38)
10.1 STRING STORAGE METHODS
355(2)
10.1.1 Overview
355(1)
10.1.2 Types of Strings
356(1)
10.2 STRING PRIMITIVE INSTRUCTIONS
357(12)
10.2.1 MOVS (Move String Data)
361(1)
10.2.2 The Need for Speed
362(1)
10.2.3 CMPS (Compare Strings)
363(2)
10.2.4 SCAS (Scan String)
365(3)
10.2.5 STOS (Store in String)
368(1)
10.2.6 LODS (Load String)
368(1)
10.3 A LIBRARY OF STRING PROCEDURES
369(9)
10.3.1 Str_compare Procedure
371(1)
10.3.2 Str_copy Procedure
372(1)
10.3.3 Str_length Procedure
373(1)
10.3.4 Str_getline Procedure
374(2)
10.3.5 Readstring Procedure
376(1)
10.3.6 Str_ucase Procedure
376(1)
10.3.7 Writestring Procedure
377(1)
10.3.8 The Str_write Procedure
378(1)
10.4 STRING LIBRARY TEST PROGRAM
378(4)
10.5 REVIEW QUESTIONS
382(2)
10.6 PROGRAMMING EXERCISES
384(9)
11 Disk Storage
393(44)
11.1 DISK STORAGE FUNDAMENTALS
394(11)
11.1.1 Physical and Logical Characteristics
394(3)
11.1.2 Types of Disks
397(1)
11.1.3 Disk Directory
397(2)
11.1.4 Directory Structure
399(2)
11.1.5 Sample Disk Directory
401(1)
11.1.6 File Allocation Table (FAT)
402(1)
11.1.7 Reading and Writing Disk Sectors
403(2)
11.2 SECTOR DISPLAY PROGRAM
405(5)
11.3 DECODING THE FILE ALLOCATION TABLE
410(6)
11.3.1 Cluster Display Program
411(5)
11.4 SYSTEM-LEVEL FILE FUNCTIONS
416(8)
11.4.1 DOS Error Codes
417(1)
1.4.1 Displaying Error Messages
418(3)
11.4.2 File Specifications
421(1)
11.4.3 Reading the DOS Command Tail
422(2)
11.5 DRIVE AND DIRECTORY MANIPULATION
424(7)
11.5.1 Set Default Drive (0Eh)
424(1)
11.5.2 Get Default Drive (19h)
424(1)
11.5.3 Get Disk Free Space (36h)
424(1)
11.5.4 Get Current Directory (47h)
425(1)
11.5.5 Set Current Directory (3Bh)
426(1)
11.5.6 Create Subdirectory (39h)
426(1)
11.5.7 Remove Subdirectory (3Ah)
426(1)
11.5.8 Get Device Parameters (44h)
427(4)
11.6 REVIEW QUESTIONS
431(2)
11.7 PROGRAMMING EXERCISES
433(4)
11.7.1 Sector Display Exercises
435(2)
12 File Processing
437(32)
12.1 FILE MANIPULATION
437(6)
12.1.1 Introduction
437(1)
12.1.2 Get/Set File Attribute (43h)
438(2)
12.1.3 Delete File (41h)
440(1)
12.1.4 Rename File (56h)
440(1)
12.1.5 Get/Set File Date/Time (57h)
441(1)
12.1.6 Find First Matching File (4Eh)
442(1)
12.1.7 Find Next Matching File (4Fh)
443(1)
12.1.8 Set Disk Transfer Address (1Ah)
443(1)
12.2 APPLICATION: DISPLAY FILENAMES AND DATES
443(5)
12.3 FILE I/O SERVICES
448(5)
12.3.1 Create File (3Ch)
448(2)
12.3.2 Open File (3Dh)
450(1)
12.3.3 Close File (3Eh)
451(1)
12.3.4 Read From File or Device (3Fh)
451(1)
12.3.5 Write to File or Device (40h)
452(1)
12.4 RANDOM FILE ACCESS
453(3)
12.4.1 Move File Pointer (42h)
453(3)
12.5 READING A BITMAP FILE
456(6)
12.6 REVIEW QUESTIONS
462(2)
12.7 PROGRAMMING EXERCISES
464(5)
12.7.1 Manipulating Disk Directories
466(3)
13 High-Level Language Interface
469(32)
13.1 INTRODUCTION
469(3)
13.1.1 General Conventions
469(3)
13.2 WRITING INLINE ASSEMBLY CODE
472(6)
13.2.1 Microsoft Visual C++ 5.0
472(3)
13.2.2 File Encryption Example
475(3)
13.3 LINKING TO C++ PROGRAMS
478(17)
13.3.1 Linking to Borland C++
479(1)
13.3.2 ReadSector Example
480(6)
13.3.3 Large Random Number Example
486(2)
13.3.4 Linking to Visual C++ in Protected Mode
488(7)
13.4 REVIEW QUESTIONS
495(3)
13.5 PROGRAMMING EXERCISES
498(3)
14 Advanced Topics I
501(28)
14.1 POINTERS AND INDIRECTION
501(4)
14.1.1 LEA (Load Effective Address)
501(2)
14.1.2 Indirect Jumps and Calls
503(2)
14.1.3 32-Bit Pointer Table
505(1)
14.2 PROCESSOR CONTROL AND I/O
505(4)
14.2.1 ESC, HLT, LOCK, and WAIT
505(1)
14.2.2 Input-Output Ports
506(2)
14.2.3 Flage Manipulation Instructions
508(1)
14.3 DEFINING SEGMENTS
509(8)
14.3.1 Explicit Segment Definitions
509(2)
14.3.2 Segment Definition Syntax
511(2)
14.3.3 The ASSUME Directive
513(2)
14.3.4 Segment Override Operator
515(1)
14.3.5 Combining Segments
515(2)
14.4 DYNAMIC MEMORY ALLOCATION
517(2)
14.4.1 Modify Memory Blocks
517(1)
14.4.2 Allocate Memory
518(1)
14.4.3 Release Allocated Memory
519(1)
14.5 RUNTIME PROGRAM STRUCTURE
519(4)
14.5.1 COM Programs
520(1)
14.5.2 EXE Programs
521(2)
14.6 REVIEW QUESTIONS
523(3)
14.7 PROGRAMMING EXERCISES
526(3)
15 Advanced Topics II
529(42)
15.1 SYSTEM HARDWARE
529(5)
15.1.1 Real-Time Clock
530(1)
15.1.2 CPU
531(1)
15.1.3 Calculating Instruction Timings
532(1)
15.1.4 Reading From Memory
533(1)
15.2 INSTRUCTION ENCODING (8086/8088)
534(5)
15.2.1 Single-Byte Instructions
536(1)
15.2.2 Immediate Operands
536(1)
15.2.3 Register-Mode Instructions
537(1)
15.2.4 Memory-Mode Instructions
538(1)
15.3 INTERRUPT HANDLING
539(15)
15.3.1 Hardware Interrupts
543(2)
15.3.2 Interrupt Control Instructions
545(1)
15.3.3 Writing an Interrupt Handler Procedure
545(3)
15.3.4 Memory-Resident Programs (TSR)
548(1)
15.3.5 Application: The No_Reset program
549(5)
15.4 DEFINING REAL NUMBERS
554(2)
15.4.1 Define Doubleword (DD)
555(1)
15.4.2 Define Quadword (DQ)
555(1)
15.4.3 Define Tenbyte (DT)
556(1)
15.5 FLOATING-POINT INSTRUCTIONS
556(8)
15.5.1 Floating-Point Coprocessors
556(1)
15.5.2 Instruction Formats
557(2)
15.5.3 Example: Evaluating an Expression
559(2)
15.5.4 Application: Payroll Calculation Program
561(3)
15.6 REVIEW QUESTIONS
564(1)
15.7 PROGRAMMING EXERCISES
565(6)
Appendix A: Binary and Hexadecimal Tutorial
571(14)
A.1 BINARY NUMBERS
571(5)
A.1.1 Addition Examples
572(1)
A.1.2 Binary to Decimal Conversion
573(1)
A.1.3 Decimal to Binary Conversion
574(2)
A.2 HEXADECIMAL NUMBERS
576(3)
A.2.1 Binary to Hexadecimal Conversion
576(1)
A.2.2 Hexadecimal to Decimal Conversion
577(1)
A.2.3 Hexadecimal Digit Position Values
578(1)
A.2.4 Decimal to Hexadecimal Conversion
578(1)
A.3 ARITHMETIC
579(4)
A.3.1 Signed and Unsigned Numbers
579(1)
A.3.2 Twos Complement Notation
580(1)
A.3.3 Binary Subtraction
581(1)
A.3.4 Hexadecimal Addition and Subtraction
582(1)
A.4 REVIEW QUESTIONS
583(1)
A.5 ANSWERS TO REVIEW QUESTIONS
584(1)
Appendix B: Using Debug
585(20)
B.1 INTRODUCING DEBUG
585(2)
B.2 DEBUG COMMAND SUMMARY
587(3)
B.2.1 Command Parameters
589(1)
B.3 INDIVIDUAL COMMANDS
590(12)
B.3.1 ? (Help)
590(1)
B.3.2 A (Assemble)
590(1)
B.3.3 C (Compare)
591(1)
B.3.4 D (Dump)
592(1)
B.3.5 E (Enter)
593(1)
B.3.6 F (Fill)
594(1)
B.3.7 G (Go)
594(1)
B.3.8 H (Hexarithmetic)
595(1)
B.3.9 I (Input)
595(1)
B.3.10 L (Load)
595(1)
B.3.11 M (Move)
596(1)
B.3.12 N (Name)
597(1)
B.3.13 P (Proceed)
597(2)
B.3.14 Q (Quit)
599(1)
B.3.15 R (Register)
599(1)
B.3.16 S (Search)
600(1)
B.3.17 T (Trace)
600(1)
B.3.18 U (Unassemble)
601(1)
B.3.19 W (Write)
601(1)
B.4 SEGMENT DEFAULTS
602(1)
B.5 USING SCRIPT FILES WITH DEBUG
603(2)
Appendix C: Microsoft CodeView
605(10)
C.1 INTRODUCTION
605(1)
C.2 EXPRESSIONS
605(2)
C.3 KEYBOARD COMMANDS
607(1)
C.4 CONTROLLING PROGRAM EXECUTION
608(1)
C.5 EXAMINING AND MODIFYING DATA
609(2)
C.5.1 Examining and Modifying Data and Expressions
609(1)
C.5.2 Watching Variables During Program Execution
610(1)
C.5.3 Direct Dialog Output to File/Printer
610(1)
C.6 HANDS-ON TUTORIAL
611(4)
Appendix D: Borland Turbo Debugger
615(8)
D.1 PREPARING A PROGRAM TO BE DEBUGGED
615(1)
D.2 SELECTED COMMAND-LINE OPTIONS
615(1)
D.3 TRACING PROGRAMS
616(1)
D.3.1 Stack Window (View / Stack)
616(1)
D.3.2 Execution History Window (View / Execution)
616(1)
D.3.3 The Run Menu
616(1)
D.4 SETTING BREAKPOINTS
617(1)
D.5 ASSEMBLER EXPRESSIONS
618(1)
D.6 EXAMINING AND MODIFYING DATA
618(2)
D.6.1 Variables Window (View / Variables)
618(1)
D.6.2 Watch Window (View / Watches)
619(1)
D.6.3 Viewing A Memory Dump
619(1)
D.6.4 Inspector Windows
619(1)
D.6.5 Evaluate/Modify Dialog Box
620(1)
D.7 CONFIGURING TURBO DEBUGGER
620(3)
Appendix E: Guide to the Sample Programs
623(8)
E.1 INFORMATION ABOUT THE SAMPLE PROGRAM FILES
623(2)
E.2 CONTENTS OF THE MACROS.INC FILE
625(1)
E.3 LINK LIBRARY PROCEDURES
626(1)
E.4 SAMPLE PROGRAMS FROM THE CHAPTERS
627(4)
Appendix F: The Intel Instruction Set
631(30)
F.1 INTRODUCTION
631(2)
F.1.1 Flags
631(1)
F.1.2 Instruction Descriptions and Formats
632(1)
F.2 THE INSTRUCTION SET
633(28)
Appendix G: BIOS and DOS Interrupts
661
G.1 OVERALL INTERRUPT LIST
661(1)
G.2 INTERRUPT 21H FUNCTIONS (DOS SERVICES)
662(4)
G.3 INTERRUPT 10H FUNCTIONS (VIDEO BIOS)
666(1)
G.4 INTERRUPT 16H FUNCTIONS (KEYBOARD)
667

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program