Assembly Language for the IBM PC Family
Scott Jones Publishing Inc., US (Verlag)
978-1-57676-058-1 (ISBN)
- Keine Verlagsinformationen verfügbar
- Artikel merken
This textbook teaches useful programming techniques. It was developed so that the order and presentation of material is determined by pedagogical necessity. Important but difficult concepts are delayed until the reader has a sound grasp of the fundamentals and these more advanced concepts are actually needed. Constant and exhaustive reinforcement ensures that readers thoroughly understand the concepts presented. The author's extensive set of exercises, with answers, tests the student's grasp of what is happening in the machine on a nuts and bolts level.
Chapter 1: Preliminaries
1.1 Hardware Overview
1.1.1 Level I: General Properties of Personal Computers
1.1.2 Level II: IBM PC Hardware
1.1.3 More on Memory (Optional)
1.2 The Decimal, Binary, and Hexadecimal Numbering Systems
1.2.1 The Binary Number System
1.2.2 Conversions between Binary and Decimal
1.2.3 The Hexadecimal Number System
1.2.4 Conversions Involving Hexadecimal
1.2.5 Addition in Binary and Hex
1.3 Negative Numbers; 2's Complement Arithmetic
1.3.1 Sign-Magnitude Representation
1.3.2 1's Complement Representation
1.3.3 2's Complement Representation
1.4 The ASCII Character Set
1.5 Pseudo-Code
Chapter 2: Assembler Overview
2.1 Creating an Assembly Language Program
2.2 Structure of an IBM PC Assembly Language Program
2.2.1 Global Program Structure
2.2.2 The .STACK Segment
2.2.3 The .DATA Segment
2.2.4 The .CODE Segment
Chapter 3: More on I/O
3.1 Macros for I/O
3.2 The DOS Display Character Call
3.3 Magic Numbers
3.4 Numeric I/O
Chapter 4: Arithmetic
4.1 Addition and Subtraction
4.2 Multiplication and Division
4.3 Comments on Comments
4.4 A Little Something Extra: Timing of Instructions (completely new)
4.5 Internal Format of Instructions (Optional)
Debug Workshop I: Introduction to Debuggers
Chapter 5: Comparing and Branching
5.1 Decision-making in Assembly Language
5.2 Unsigned Conditional Jumps
5.3 Arithmetic and the Flags
5.4 Counting Loops (important revision)
5.5 Reading Single Characters
5.6 Loop Case Studies
5.7 Some Technical Details on Compares and Jumps
5.8 Timing of Instructions, Continued.
Debug Workshop II: Debugging with Breakpoints
Chapter 6: Subprograms
6.1 Writing Subprograms
6.2 The Stack
6.3 The Stack, call, and ret
6.4 Separately Translated Subprograms
6.5 Creating Program Libraries (Optional)
6.6 How the Linker Works (Optional)
Debug Workshop III: Procedures
Chapter 7: Applying Assembly I: Numeric I/O
7.1 PutDec I: Displaying Unsigned Numbers
7.2 PutDec II: Turning PutUDec into PutDec
7.3 GetDec I: Reading a Number from the Keyboard
Chapter 8: Writing Macros and Program Testing
8.1 Writing Simple Macros
8.1.1 Macro Declarations
8.1.2 Macro Expansion
8.1.3 Parameter Parentheses
8.1.4 Local Symbols
8.1.5 Parameter Separator (&)
8.1.6 Assembly Listings
8.2 An Extended Example: Programming Testing
8.3 Pseudo-Macros for Repetition
Chapter 9: Bit Operations
9.1 Boolean Operations
9.2 Shift Operations (substantial revision)
9.3 An Application-Code to Implement PutHex
9.4 A Little Something Extra: Bit Instructions in High Level Languages
9.5 Assembler RECORD Structures (Optional)
Chapter 10 Arrays
10.1 Addressing
10.1.1 Memory Address versus Memory Contents
10.1.2 Address Arithmetic
10.1.3 Types of Address Expressions
10.1.4 Rules for Address Expressions
10.1.5 Byte Swapping
10.1.6 Byte Swapping and Address Arithmetic (Optional)
10.2 Arrays
10.2.1 Arrays in General
10.2.2 Using Arrays
10.3 Reading a Whole Line from the Keyboard
10.4 A Little Something Extra: Indexing with Extended Registers (new in this position)
10.5 Arrays in High-Level Languages (Optional)
Debug Workshop IV: Arrays and Byte Swapping
Chapter 11: Applying Assembly II: Array Applications
11.1 Conversion Tables
11.2 Sets (Substantially rewritten)
11.2.1 Representing Sets as Arrays
11.2.2 Searching Sets
11.2.3 An Application: The Sieve of Eratosthenes
11.3 PutDec III: Bin2Dec
11.4 C/C++/Java Variable Length Character Strings (completely new)
11.5 C/C++ switch and Pascal case Statements
Chapter 12: Segments
12.1 Segments and Offsets
12.2 Segment Registers
12.3 Defining Segments (important new material)
12.4 The ASSUME Statement
12.5 The Program Segment Prefix (PSP)
12.6 A Little Something Extra: The Real Time Clock and Program Timing (mostly new)
12.7 A Little Something Extra: Pointers
12.8 A Little Something Extra: Memory Models (new material)
Debug Workshop V: Segments
Chapter 13: Procedures and High Level Languages
13.1 Procedures and the Stack (includes new material)
13.2 A Little Something Extra: Assembler Help with Procedures (includes new material)
13.3 A Little Something Extra: CPU Assistance with Procedures
13.4 A Little Something Extra: Reference Parameters (includes new material)
13.5 A Little Something Extra: Other C++ Features (all new)
13.5.1 Default Parameter values
13.5.2 Overloaded Functions
13.5.3 Polymorphic Calling of Virtual Functions
13.6 A Little Something Extra: Embedding Assembly in a High Level Language
Chapter 14: Applying Assembly III: Multiple Precision and Decimal Arithmetic
14.1 Operations for Multiple Precision
14.2 Working with Multiple Precision Numbers
14.3 Random Numbers (substantially revised)
14.4 Decimal Arithmetic
Chapter 15: Interrupts
15.1 Generalities about Interrupts
15.2 Interrupt Processing on the 80X86
15.3 Applications: Timing Operations and Debuggers
15.3.1 The Real Time Clock
15.3.2 Interrupts and Debuggers
15.4 Interrupt Handlers
15.5 A Little Something Extra: A TSR Program
15.6 A Little Something Extra: Simultaneously Executing Programs
15.6.1 Race Conditions
15.6.2 Semaphores: an Abstract Method of Synchronization
15.6.3 Using Semaphores to Solve Race Conditions
15.6.4 Implementing Semaphores to Solve Race Conditions
15.7 A Short History of Interrupts
Chapter 16: Conditional Assembly and More on Macros
16.1 Generally Applicable IFs
16.2 IFs Usable Only in Macros (includes new material)
Chapter 17: String Processing Instructions
17.1 The String Operations (includes new material)
17.2 The REP Instruction Prefix
Chapter 18: File Processing
18.1 Handles and Opening, Creating, and Closing Files
18.2 Basic File Operations
18.3 Random File Accessing
18.3.1 The _LSeek Macro
18.3.2 Applications of _LSeek I: LOG, a Message Logger
18.3.3 Applications of _LSeek II: Tail, and End of File Displayer (revised)
18.3.4 Writing the _LSeek Macro
18.4 A Little Something Extra: Redirecting stderr (includes new material)
18.5 The Utility Routines ParseCmd, CCheck, and WCheck (revised)
Chapter 19: Floating Point
19.1 FPU Data
19.1.1 Floating Point Numbers
19.1.2 Integers
19.1.3 BCD Numbers
19.2 Form of Floating Point Instructions
19.3 The FPU Stack
19.4 Floating Point Arithmetic
19.5 Floating Point I/O
19.6 FPU Comparing and Branching
19.7 Transcendental Functions and the FPU
19.8 The FPU and the Debugger
Chapter 20: Applying Assembly IV: Windows 32 Bit Programming (entirely new)
(Actual chapter contents may vary)
20.1 32 Bit Console Applications
20.2 Simple Windows Programs in Assembly
20.3 Graphics Programming
Answers to Selected Exercises
Appendix A: The IBM Extended Character Set
Appendix B: 80X86 Instructions
Appendix C: DOS in Windows (entirely new)
Appendix D: Selected DOS and BIOS Functions, Formats, and Memory Locations
Appendix E: Debugger Summary
Appendix F: How Assemblers Work
Bibliography
Index
Erscheint lt. Verlag | 25.5.2005 |
---|---|
Sprache | englisch |
Maße | 187 x 231 mm |
Gewicht | 1321 g |
Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► Assembler |
ISBN-10 | 1-57676-058-8 / 1576760588 |
ISBN-13 | 978-1-57676-058-1 / 9781576760581 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich