PREFACE
Part A Fundamentals of PC Hardware and Software
1 BASIC FEATURES OF PC HASDWARE
Introduction
Bits and Bytes
Binary Numbers
Hexadecimal Representation
ASCII Code
The Processor
Internal Memory
Segments and Addressing
Registers
Key Points
Questions
2 REQUIREMENTS FOR USING PC SOFTWARE
Introduction
Features of the Operating System
The Boot Process
Input-Output Interface
The System Program Loader
The Stack
Addressing of Instructions and Data
Instruction Operands
Key Points
Questions
3 EXECUTING COMPUTER INSTRUCTIONS
Introduction
Using the DEBUG Program
Viewing Memory Locations
Machine Language Example 1: Immediate Data
Machine Language Example 11: Defined Data
An Assembly Language Example
Using the INT Instruction
Saving a Program from Within DEBUG
Using the PTR Operator
Key Points
Questions
Part B Fundamentals of Assembly Language
4 REQUIREMENTS FOR CODING IN ASSEMBLY LANGUAGE
Introduction
Assemblers and Compilers
Progiam Comments
Reserved Words
Identifiers
Statements
Directives
Instructions for Initializing a Program
Instructions for Ending Program Execution
Example of a Source Program
Initializing for Protected Mode
Simplified Segment Directives
Data Definition
Directives for Defining Data
The EQU Directive
Key Points
Questions
5 ASSEMBLING, LINKING AND EXECUTING A PROGRAM
Introduction
Preparing a Program for Execution
Assembling a Source Program
Using Conventional Segment Definitions
Using Simplified Segment Directives
Two-Pass Assembler
Linking an Object Program
Executing a Program
Cross-Reference Listing
Error Diagnostics
The Assembler Location Counter
Key Points
Questions
6 SYMBOLIC INSTRUCTIONS AND ADDRESSING
Introduction
The Symbolic Instruction Set
Instruction Operands
The MOV Instruction
Move-and-Fill Instmctions
Immediate Operands
The XCHG Instruction
The LEA Instruction
The INC and DEC Instmctions
Extended Move Operations
The INT Instruction
Aligning Data Addresses
Near and Far Addresses
The Segment Override Prefix
Key Points
Questions
7 WRITING .COM PROGRAMS
Introduction
Differences Between an .EXE and a .COM Program
Converting into .COM Format
Example of a .COM Program
The .COM Stack
Debugging Tips
Key Points
Questions
8 PROCRAMMING REQUIREAIENTS FOR LOGIC AND CONTROL
Introduction
Short, Near, and Far Addresses
Instruction Labels
The JMP Instruction
The LOOP Instruction
The Flags Register
The CMP Instruction
Conditional Jump Instructions
Calling Procedures
Effect of Program Execution on the Stack
Boolean Operations
Program: Changing Uppercase to Lowercase
Shifting Bits
Rotating Bits
Jump Tables
Organizing a Program
Key Points
Questions
Part C Screen and Keyboard Operations
9 INTRODUCTION TO SCREEN AND KEYBOARD PROCESSING
Introduction
The Screen
Setting the Cursor
Clearing the Screen
INT 21H Function 09H for Screen Display
INT 21H Function OAH for Keyboard Input
Program: Accepting and Displaying Names
Using Control Characters in a Screen Display
INT 2IH Function 02H for Screen Display
File Handles
INT 2IH Function 40H for Screen Display
INT 2IH Function 3FH for Keyboard Input
Key Points
Questions
10 ADVANCED FEATURES OF SCREEN PROCESSINC
Introduction
Video Adapters
Setting the Video Mode
Using Text Mode
Screen Pages
Using INT IOH for Text Mode
Program: Displaying the ASCII Character Set
ASCII Characters for Boxes and Menus
Program: Blinking, Reverse Viden and Scrolling
Direct Video Display
Using Graphics Mode
INT IOH for Graphics
Program: Setting and Displaying Graphics Mode
Determining the Type of Video Adapter
Key Points
Questions
11 ADVANCED FEATURES OF KEYBOARD PROCESSING
Introduction
The Keyboard
Keyboard Shift Status
The Keyboard Buffer
Using INT 2IH for Keyboard Input
Using INT 16H for Keyboard Input
Extended Function Keys and Scan Codes
Program: Selecting from a Menu
BIOS INT 09H and the Keyboard Buffer
Keying in the Full ASCII Character Set
Key Points
Questions
Part D Data Manipulation
12 PROCESSING STRING DATA
Introduction
Features of String Operations
REP: Repeat String Prefix
MOVS: Move String Instruction
LODS: Load String Instruction
STOS: Store String Instruction
Program: Using LODS and STOS to Transfer Data
CMPS: Compare String Instruction
SCAS: Scan String Instruction
Example: Using Scan and Replace
Alternative Coding for String Instructions
Duplicating a Pattern
Program: Right Adjusting a screen Display
Key Points
Questions
13 ARITHMETIC: I-PROCESSING BINARY DATA
Introduction
Processing Unsigncd and Signed Data
Addition and Subtraction
Extending Values in a Register
Performing Arithmetic on Doubleword Values
Multiplication
Performing Doubleword Multiplication
Special Multiplication Instructions
Multiplication by Shifting
Division
Division by Shifting
Reversing the Sign
The Numeric Data Processo
Key Points
Questions
14 ARITHMETIC: II-PROCESSING ASCII AND
BCD DATA
Introduction
Data in Decimal Format
Processing ASCII Data
Processing Unpacked BCD Data
Processing Packed BCD Data
Converting ASCII Data to Binary Format
Converting Binary Data to ASCII Format
Shifting and Rounding a Product
Program: Converting ASCII Data
Key Points
Questions
15 DEFINING AND PROCESSING TABLES
Introduction
Defining Tables
Direct Addressing of Table Entries :
Searching a Table
The XLAT (Translate) Instruction
Program: Displaying Hex and ASCII Characters
Sorting Table Entries
Linked Lists
The TYPE, LENGTH and SIZE Operators
Key Points
Questions
Part E Advanced Input/Output
16 DISK STORAGE 1: ORGANIZATION
Introduction
Disk Characteristics
The Disk System Area and Data Area
The Boot Record
The Directory
The File Allocation Table
Exercise: Examining the FAT
Processing Files on Disk
Key Points
Questions
17 DISK STORAGE 11: WRITING AND READING
fILES
Introduction
ASCIIZ Strings
File Handles
Error Return Codes
File Pointers
Using File Handles to Create Disk Files
Using File Handles to Read Disk Files
Using File Handles for Random Processing
Program: Processing an ASCII File
Absolute Disk 1/0
Disk Services Using File Control Blocks
Key Points
Questions
18 DISK STORAGE III: INT 21H FUNCTIONS FOR SUPPORTING
DISKS AND PILES
Introduction
Operations Handling Disk Drives
Program: Reading Data from Sectors
Operations Handling the Directory and the FAT
Program: Displaying the Directory
Operations Handling Disk Files
Program: Selectively Deleting Files
Key Points
Questions
19 DISK STORAGE IV: INT 13H DISK FUNCTIONS
Introduction
BIOS Status Byte
Basic INT I3H Disk Operations
Program: Using INT I3H to Read Sectors
Other INT I3H Disk Operations
Key Points
Questions
20 FACILITIES FOR PRINTING
Introduction
Common Printcr Control Charactcrs
INT 2IH Function 401-1: Print Charaeters
Program: Printing With Page Overflow and Headings
Program: Printing ASCII Files and Handling Tabs
INT IIH Function 05 H: Print Character
Special Printer Control Characters
INT 17H Functions for Printing
Key Points
Questions
21 OTHER INPUT/OUTPUT FACILITIES
Introduction
Mouse Features
Mouse Funetions
Common INT 33H Operations
Program: Using the Mouse
Ports
String Input/Output
Generating Sound
Key Points
Questions
Part F Advanced Programming
22 DEFINING AND USING MACROS
Introduction
Two Simple Macro Definitions
Using Parameters in Macros
Macro Comments
Using a Macro Within a Macro Definition
The LOCAL Directive
Including Macros from a Library
Concatenation
Repetition Directives
Conditional Directives
Key Points
Questions
23 LINKING TO SUBPROGRAMS
Introduction
The SEGMENT Directive
Intrasegment Calls
Intersegment Calls
The EXTRN and FUBLIC Attributes
Using EXTRN and PUBLIC for an Entry Point
Defining the Code Segment as PUBLIC
Using Simplified Segment Directives
Defining Common Data as PUBLIC
Defining Data in Both Programs
Passing Parameters to a Subprogram
Linking Pascal with an Assembly Language Program
Linking C with an Assembly Language Program
Key Points
Questions
24 MEMORY MANAGEMENT
Introduction
The Main DOS Programs
The High-Memory Area
The Program Segment Prefix
Memory Blocks
Memory Allocation Strategy
The Program Loader
Allocating and Freeing Memory
Loading or Executing a Program Function
Program Overlays
Resident Programs
Key Points
Questions
Part G Reference Chapters
25 BIOS DATA AREAS AND PROGRAM INTESSUPTS
Introduction
The Boot Process
The BIOS Data Area
Interrupt Services
BIOS Interrupts
BIOS:DOS Interface
DOS Interrupts
INT 2IH Services
Key Points
Questions
26 OPERATORS AND DIRECTIVES
Introduction
Type Specifiers
Operators
Directives
27 THE PC INSTRUCTION SET
Introduction
Register Notation
The Addressing Mode Byte
Two-Byte Instructions
Three-Byte Instructions
Four-Byte Instructions
Instruction Set
APPENDIXES
A Conversion Between Hexadecimal and Decimal Numbers
B ASCII Character Codes
C Reserved Words
D Assembler and Link Options
E The DEBUG Program
F Keyboard Scan Codes and ASCII Codes
ANSWERS TO SELECTED QUESTIONS
INDEX