Muutke küpsiste eelistusi

IBM PC Assembly Language and Programming: United States Edition 4th edition [Kõva köide]

  • Formaat: Hardback, 606 pages, kõrgus x laius x paksus: 240x185x26 mm, kaal: 1019 g
  • Ilmumisaeg: 28-Jul-1997
  • Kirjastus: Pearson
  • ISBN-10: 0137566107
  • ISBN-13: 9780137566105
  • Kõva köide
  • Hind: 74,30 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Hardback, 606 pages, kõrgus x laius x paksus: 240x185x26 mm, kaal: 1019 g
  • Ilmumisaeg: 28-Jul-1997
  • Kirjastus: Pearson
  • ISBN-10: 0137566107
  • ISBN-13: 9780137566105
This introductory tutorial to assembly programming features program examples and exercises, without prerequisites knowledge of a programming language or PC architecture. Abel (British Columbia Institute of Technology) guides readers through fundamentals of PC hardware, software, introductory and advanced programming, screen and keyboard processing, data manipulation, and advanced input/output. Also included are reference chapters, and appendices on ASCII and keyboard codes, number conversions, and the DOS DEBUG program. Omitted by design are the macro codes and more sophisticated solutions used by professional programmers. Annotation c. by Book News, Inc., Portland, Or.
PREFACE xiii
Part A Fundamentals of PC Hardware and Software 1(48)
1 BASIC FEATURES OF PC HARDWARE
1(19)
Introduction
1(1)
Bits and Bytes
1(2)
Binary Numbers
3(3)
Hexadecimal Representation
6(1)
ASCII Code
7(1)
The Processor
7(2)
Internal Memory
9(2)
Segments and Addressing
11(2)
Registers
13(4)
Key Points
17(1)
Questions
18(2)
2 REQUIREMENTS FOR USING PC SOFTWARE
20(9)
Introduction
20(1)
Features of the Operating System
20(1)
The Boot Process
21(1)
Input-Output Interface
22(1)
The System Program Loader
22(1)
The Stack
23(2)
Addressing of Instructions and Data
25(2)
Instruction Operands
27(1)
Key Points
27(1)
Questions
28(1)
3 EXECUTING COMPUTER INSTRUCTIONS
29(20)
Introduction
29(1)
Using the DEBUG Program
30(1)
Viewing Memory Locations
31(3)
Machine Language Example I: Immediate Data
34(4)
Machine Language Example II: Defined Data
38(3)
An Assembly Language Example
41(1)
Using the INT Instruction
42(3)
Saving a Program from Within DEBUG
45(1)
Using the PTR Operator
45(1)
Key Points
46(1)
Questions
47(2)
Part B Fundamentals of Assembly Language 49(90)
4 REQUIREMENTS FOR CODING IN ASSEMBLY LANGUAGE
49(24)
Introduction
49(1)
Assemblers and Compilers
50(1)
Program Comments
50(1)
Reserved Words
51(1)
Identifiers
51(1)
Statements
52(1)
Directives
53(4)
Instructions for Initializing a Program
57(2)
Instructions for Ending Program Execution
59(1)
Example of a Source Program
59(1)
Initializing for Protected Mode
60(1)
Simplified Segment Directives
61(1)
Data Definition
62(3)
Directives for Defining Data
65(4)
The EQU Directive
69(1)
Key Points
70(1)
Questions
71(2)
5 ASSEMBLING, LINKING, AND EXECUTING A PROGRAM
73(18)
Introduction
73(1)
Preparing a Program for Execution
73(1)
Assembling a Source Program
74(2)
Using Conventional Segment Definitions
76(5)
Using Simplified Segment Directives
81(2)
Two-Pass Assembler
83(1)
Linking an Object Program
83(3)
Executing a Program
86(1)
Cross-Reference Listing
86(1)
Error Diagnostics
87(1)
The Assembler Location Counter
89(1)
Key Points
89(1)
Questions
89(2)
6 SYMBOLIC INSTRUCTIONS AND ADDRESSING
91(17)
Introduction
91(1)
The Symbolic Instruction Set
91(3)
Instruction Operands
94(3)
The MOV Instruction
97(1)
Move-and-Fill Instructions
98(1)
Immediate Operands
99(1)
The XCHG Instruction
100(1)
The LEA Instruction
101(1)
The INC and DEC Instructions
101(1)
Extended Move Operations
101(2)
The INT Instruction
103(1)
Aligning Data Addresses
104(1)
Near and Far Addresses
104(1)
The Segment Override Prefix
105(1)
Key Points
105(1)
Questions
106(2)
7 WRITING .COM PROGRAMS
108(6)
Introduction
108(1)
Differences Between an .EXE and a .COM Program
108(1)
Converting into .COM Format
109(1)
Example of a .COM Program
110(1)
The .COM Stack
111(1)
Debugging Tips
112(1)
Key Points
112(1)
Questions
113(1)
8 PROGRAMMING REQUIREMENTS FOR LOGIC AND CONTROL
114(25)
Introduction
114(1)
Short, Near, and Far Addresses
115(1)
Instruction Labels
115(1)
The JMP Instruction
116(2)
The LOOP Instruction
118(1)
The Flags Register
119(1)
The CMP Instruction
120(1)
Conditional Jump Instructions
121(2)
Calling Procedures
123(3)
Effect of Program Execution on the Stack
126(1)
Boolean Operations
127(2)
Program: Changing Uppercase to Lowercase
129(1)
Shifting Bits
130(2)
Rotating Bits
132(2)
Jump Tables
134(2)
Organizing a Program
136(1)
Key Points
137(1)
Questions
137(2)
Part C Screen and Keyboard Operations 139(64)
9 INTRODUCTION TO SCREEN AND KEYBOARD PROCESSING
139(17)
Introduction
139(1)
The Screen
140(1)
Setting the Cursor
140(1)
Clearing the Screen
141(1)
INT 21H Function 09H for Screen Display
142(2)
INT 21H Function OAH for Keyboard Input
144(1)
Program: Accepting and Displaying Names
145(4)
Using Control Characters in a Screen Display
149(1)
INT 21H Function 02H for Screen Display
150(1)
File Handles
150(1)
INT 21H Function 40H for Screen Display
151(1)
INT 21H Function 3FH for Keyboard Input
152(2)
Key Points
154(1)
Questions
154(2)
10 ADVANCED FEATURES OF SCREEN PROCESSING
156(29)
Introduction
156(1)
Video Adapters
157(1)
Setting the Video Mode
157(1)
Using Text Mode
158(3)
Screen Pages
161(1)
Using INT IOH for Text Mode
161(6)
Program: Displaying the ASCII Character Set
167(3)
ASCII Characters for Boxes and Menus
170(1)
Program: Blinking, Reverse Video, and Scrolling
171(2)
Direct Video Display
173(2)
Using Graphics Mode
175(2)
INT IOH for Graphics
177(3)
Program: Setting and Displaying Graphics Mode
180(2)
Determining the Type of Video Adapter
182(1)
Key Points
182(1)
Questions
183(2)
11 ADVANCED FEATURES OF KEYBOARD PROCESSING
185(18)
Introduction
185(1)
The Keyboard
186(1)
Keyboard Shift Status
186(1)
The Keyboard Buffer
187(1)
Using INT 2IH for Keyboard Input
188(1)
Using INT I6H for Keyboard Input
189(2)
Extended Function Keys and Scan Codes
191(2)
Program: Selecting from a Menu
193(4)
BIOS INT 09H and the Keyboard Buffer
197(4)
Keying in the Full ASCII Character Set
201(1)
Key Points
201(1)
Questions
202(1)
Part D Data Manipulation 203(86)
12 PROCESSING STRING DATA
203(17)
Introduction
203(1)
Features of String Operations
204(1)
REP: Repeat String Prefix
204(1)
MOVS: Move String Instruction
205(2)
LODS: Load String Instruction
207(1)
STOS: Store String Instruction
208(1)
Program: Using LODS and STOS to Transfer Data
209(2)
CMPS: Compare String Instruction
211(2)
SCAS: Scan String Instruction
213(1)
Example: Using Scan and Replace
214(1)
Alternative Coding for String Instructions
214(1)
Duplicating a Pattern
215(1)
Program: Right Adjusting a Screen Display
215(3)
Key Points
218(1)
Questions
218(2)
13 ARITHMETIC: I-- PROCESSING BINARY DATA
220(24)
Introduction
220(1)
Processing Unsigned and Signed Data
221(1)
Addition and Subtraction
222(2)
Extending Values in a Register
224(1)
Performing Arithmetic on Doubleword Values
225(2)
Multiplication
227(3)
Performing Doubleword Multiplication
231(3)
Special Multiplication Instructions
234(1)
Multiplication by Shifting
235(1)
Division
235(4)
Division by Shifting
239(1)
Reversing the Sign
240(1)
The Numeric Data Processor
240(2)
Key Points
242(1)
Questions
243(1)
14 ARITHMETIC: II-- PROCESSING ASCII AND BCD DATA
244(21)
Introduction
244(1)
Data in Decimal Format
245(1)
Processing ASCII Data
246(3)
Processing Unpacked BCD Data
249(2)
Processing Packed BCD Data
251(2)
Converting ASCII Data to Binary Format
253(2)
Converting Binary Data to ASCII Format
255(2)
Shifting and Rounding a Product
257(1)
Program: Converting ASCII Data
257(6)
Key Points
263(1)
Questions
264(1)
15 DEFINING AND PROCESSING TABLES
265(24)
Introduction
265(1)
Defining Tables
265(1)
Direct Addressing of Table Entries
267(4)
Searching a Table
271(6)
The XLAT (Translate) Instruction
277(1)
Program: Displaying Hex and ASCII Characters
278(2)
Sorting Table Entries
280(1)
Linked Lists
281(5)
The TYPE, LENGTH, and SIZE Operators
286(1)
Key Points
286(1)
Questions
287(2)
Part E Advanced Input/Output 289(111)
16 DISK STORAGE I: ORGANIZATION
289(15)
Introduction
289(1)
Disk Characteristics
289(3)
The Disk System Area and Data Area
292(2)
The Boot Record
294(1)
The Directory
294(2)
The File Allocation Table
296(3)
Exercise: Examining the FAT
299(3)
Processing Files on Disk
302(1)
Key Points
302(1)
Questions
302(2)
17 DISK STORAGE II: WRITING AND READING FILES
304(28)
Introduction
304(1)
ASCIIZ Strings
305(1)
File Handles
305(1)
Error Return Codes
305(1)
File Pointers
306(1)
Using File Handles to Create Disk Files
306(5)
Using File Handles to Read Disk Files
311(2)
Using File Handles for Random Processing
313(7)
Program: Processing an ASCII File
320(4)
Absolute Disk I/O
324(1)
Disk Services Using File Control Blocks
325(5)
Key Points
330(1)
Questions
330(2)
18 DISK STORAGE III: INT 21H FUNCTIONS FOR SUPPORTING DISKS AND FILES
332(25)
Introduction
332(1)
Operations Handling Disk Drives
333(9)
Program: Reading Data from Sectors
342(3)
Operations Handling the Directory and the FAT
345(1)
Program: Displaying the Directory
346(2)
Operations Handling Disk Files
348(5)
Program: Selectively Deleting Files
353(3)
Key Points
356(1)
Questions
356(1)
19 DISK STORAGE IV: INT 13H DISK FUNCTIONS
357(12)
Introduction
357(1)
BIOS Status Byte
358(1)
Basic INT 13H Disk Operations
358(2)
Program: Using INT 13H to Read Sectors
360(3)
Other INT 13H Disk Operations
363(5)
Key Points
368(1)
Questions
368(1)
20 FACILITIES FOR PRINTING
369(14)
Introduction
369(1)
Common Printer Control Characters
370(1)
INT 21H Function 40H: Print Characters
370(1)
Program: Printing With Page Overflow and Headings
371(3)
Program: Printing ASCII Files and Handling Tabs
374(4)
INT 21H Function 05H: Print Character
378(1)
Special Printer Control Characters
379(1)
INT 17H Functions for Printing
380(1)
Key Points
381(1)
Questions
381(2)
21 OTHER INPUT/OUTPUT FACILITIES
383(17)
Introduction
383(1)
Mouse Features
383(1)
Mouse Functions
384(1)
Common INT 33H Operations
385(6)
Program: Using the Mouse
391(3)
Ports
394(1)
String Input/Output
395(2)
Generating Sound
397(1)
Key Points
397(1)
Questions
398(2)
Part F Advanced Programming 400(78)
22 DEFINING AND USING MACROS
400(19)
Introduction
400(1)
Two Simple Macro Definitions
401(1)
Using Parameters in Macros
402(1)
Macro Comments
403(2)
Using a Macro Within a Macro Definition
405(2)
The LOCAL Directive
407(1)
Including Macros from a Library
407(3)
Concatenation
410(1)
Repetition Directives
410(2)
Conditional Directives
412(4)
Key Points
416(1)
Questions
417(2)
23 LINKING TO SUBPROGRAMS
419(26)
Introduction
419(1)
The SEGMENT Directive
420(1)
Intrasegment Calls
421(1)
Intersegment Calls
422(1)
The EXTRN and PUBLIC Attributes
423(2)
Using EXTRN and PUBLIC for an Entry Point
425(2)
Defining the Code Segment as PUBLIC
427(2)
Using Simplified Segment Directives
429(1)
Defining Common Data as PUBLIC
430(1)
Defining Data in Both Programs
431(2)
Passing Parameters to a Subprogram
433(3)
Linking Pascal with an Assembly Language Program
436(4)
Linking C with an Assembly Language Program
440(2)
Key Points
442(2)
Questions
444(1)
24 MEMORY MANAGEMENT
445(33)
Introduction
445(1)
The Main DOS Programs
445(1)
The High-Memory Area
446(1)
The Program Segment Prefix
447(5)
Memory Blocks
452(3)
Memory Allocation Strategy
455(1)
The Program Loader
456(6)
Allocating and Freeing Memory
462(1)
Loading or Executing a Program Function
463(1)
Program Overlays
464(6)
Resident Programs
470(5)
Key Points
475(1)
Questions
476(2)
Part G Reference
Chapters
478(79)
25 BIOS DATA AREAS AND PROGRAM INTERRUPTS
478(19)
Introduction
478(1)
The Boot Process
478(1)
The BIOS Data Area
479(3)
Interrupt Services
482(1)
BIOS Interrupts
483(4)
BIOS:DOS Interface
487(1)
DOS Interrupts
487(1)
INT 2IH Services
488(6)
Key Points
494(1)
Questions
495(2)
26 OPERATORS AND DIRECTIVES
497(28)
Introduction
497(1)
Type Specifiers
497(1)
Operators
498(6)
Directives
504(21)
27 THE PC INSTRUCTION SET
525(32)
Introduction
525(1)
Register Notation
526(1)
The Addressing Mode Byte
526(1)
Two-Byte Instructions
527(1)
Three-Byte Instructions
528(1)
Four-Byte Instructions
528(1)
Instruction Set
529(28)
APPENDIXES 557(26)
A Conversion Between Hexadecimal and Decimal Numbers 557(3)
B ASCII Character Codes 560(2)
C Reserved Words 562(2)
D Assembler and Link Options 564(8)
E The DEBUG Program 572(7)
F Keyboard Scan Codes and ASCII Codes 579(4)
ANSWERS TO SELECTED QUESTIONS 583(12)
INDEX 595