PRAISE FOR THE FIRST EDITION OF THE ART OF ASSEMBLY LANGUAGE; ACKNOWLEDGMENTS;; Chapter 1: HELLO, WORLD OF ASSEMBLY LANGUAGE; 1.1 1.1 The Anatomy of an HLA Program; 1.2 1.2 Running Your First HLA Program; 1.3 1.3 Some Basic HLA Data Declarations; 1.4 1.4 Boolean Values; 1.5 1.5 Character Values; 1.6 1.6 An Introduction to the Intel 80x86 CPU Family; 1.7 1.7 The Memory Subsystem; 1.8 1.8 Some Basic Machine Instructions; 1.9 1.9 Some Basic HLA Control Structures; 1.10 1.10 Introduction to the HLA Standard Library; 1.11 1.11 Additional Details About try..endtry; 1.12 1.12 High-Level Assembly Language vs. Low-Level Assembly Language; 1.13 1.13 For More Information; Chapter 2: DATA REPRESENTATION; 2.1 2.1 Numbering Systems; 2.2 2.2 The Hexadecimal Numbering System; 2.3 2.3 Data Organization; 2.4 2.4 Arithmetic Operations on Binary and Hexadecimal Numbers; 2.5 2.5 A Note About Numbers vs. Representation; 2.6 2.6 Logical Operations on Bits; 2.7 2.7 Logical Operations on Binary Numbers and Bit Strings; 2.8 2.8 Signed and Unsigned Numbers; 2.9 2.9 Sign Extension, Zero Extension, Contraction, and Saturation; 2.10 2.10 Shifts and Rotates; 2.11 2.11 Bit Fields and Packed Data; 2.12 2.12 An Introduction to Floating-Point Arithmetic; 2.13 2.13 Binary-Coded Decimal Representation; 2.14 2.14 Characters; 2.15 2.15 The Unicode Character Set; 2.16 2.16 For More Information; Chapter 3: MEMORY ACCESS AND ORGANIZATION; 3.1 3.1 The 80x86 Addressing Modes; 3.2 3.2 Runtime Memory Organization; 3.3 3.3 How HLA Allocates Memory for Variables; 3.4 3.4 HLA Support for Data Alignment; 3.5 3.5 Address Expressions; 3.6 3.6 Type Coercion; 3.7 3.7 Register Type Coercion; 3.8 3.8 The stack Segment and the push and pop Instructions; 3.9 3.9 The Stack Is a LIFO Data Structure; 3.10 3.10 Accessing Data You've Pushed onto the Stack Without Popping It; 3.11 3.11 Dynamic Memory Allocation and the Heap Segment; 3.12 3.12 The inc and dec Instructions; 3.13 3.13 Obtaining the Address of a Memory Object; 3.14 3.14 For More Information; Chapter 4: CONSTANTS, VARIABLES, AND DATA TYPES; 4.1 4.1 Some Additional Instructions: intmul, bound, into; 4.2 4.2 HLA Constant and Value Declarations; 4.3 4.3 The HLA Type Section; 4.4 4.4 enum and HLA Enumerated Data Types; 4.5 4.5 Pointer Data Types; 4.6 4.6 Composite Data Types; 4.7 4.7 Character Strings; 4.8 4.8 HLA Strings; 4.9 4.9 Accessing the Characters Within a String; 4.10 4.10 The HLA String Module and Other String-Related Routines; 4.11 4.11 In-Memory Conversions; 4.12 4.12 Character Sets; 4.13 4.13 Character Set Implementation in HLA; 4.14 4.14 HLA Character Set Constants and Character Set Expressions; 4.15 4.15 Character Set Support in the HLA Standard Library; 4.16 4.16 Using Character Sets in Your HLA Programs; 4.17 4.17 Arrays; 4.18 4.18 Declaring Arrays in Your HLA Programs; 4.19 4.19 HLA Array Constants; 4.20 4.20 Accessing Elements of a Single-Dimensional Array; 4.21 4.21 Sorting an Array of Values; 4.22 4.22 Multidimensional Arrays; 4.23 4.23 Allocating Storage for Multidimensional Arrays; 4.24 4.24 Accessing Multidimensional Array Elements in Assembly Language; 4.25 4.25 Records; 4.26 4.26 Record Constants; 4.27 4.27 Arrays of Records; 4.28 4.28 Arrays/Records as Record Fields; 4.29 4.29 Aligning Fields Within a Record; 4.30 4.30 Pointers to Records; 4.31 4.31 Unions; 4.32 4.32 Anonymous Unions; 4.33 4.33 Variant Types; 4.34 4.34 Namespaces; 4.35 4.35 Dynamic Arrays in Assembly Language; 4.36 4.36 For More Information; Chapter 5: PROCEDURES AND UNITS; 5.1 5.1 Procedures; 5.2 5.2 Saving the State of the Machine; 5.3 5.3 Prematurely Returning from a Procedure; 5.4 5.4 Local Variables; 5.5 5.5 Other Local and Global Symbol Types; 5.6 5.6 Parameters; 5.7 5.7 Functions and Function Results; 5.8 5.8 Recursion; 5.9 5.9 Forward Procedures; 5.10 5.10 HLA v2.0 Procedure Declarations; 5.11 5.11 Low-Level Procedures and the call Instruction; 5.12 5.12 Procedures and the Stack; 5.13 5.13 Activation Records; 5.14 5.14 The Standard Entry Sequence; 5.15 5.15 The Standard Exit Sequence; 5.16 5.16 Low-Level Implementation of Automatic (Local) Variables; 5.17 5.17 Low-Level Parameter Implementation; 5.18 5.18 Procedure Pointers; 5.19 5.19 Procedural Parameters; 5.20 5.20 Untyped Reference Parameters; 5.21 5.21 Managing Large Programs; 5.22 5.22 The #include Directive; 5.23 5.23 Ignoring Duplicate #include Operations; 5.24 5.24 Units and the external Directive; 5.25 5.25 Namespace Pollution; 5.26 5.26 For More Information; Chapter 6: ARITHMETIC; 6.1 6.1 80x86 Integer Arithmetic Instructions; 6.2 6.2 Arithmetic Expressions; 6.3 6.3 Logical (Boolean) Expressions; 6.4 6.4 Machine and Arithmetic Idioms; 6.5 6.5 Floating-Point Arithmetic; 6.6 6.6 Converting Floating-Point Expressions to Assembly Langggggguage; 6.7 6.7 HLA Standard Library Support for Floating-Point Arithmetic; 6.8 6.8 For More Information; Chapter 7: LOW-LEVEL CONTROL STRUCTURES; 7.1 7.1 Low-Level Control Structures; 7.2 7.2 Statement Labels; 7.3 7.3 Unconditional Transfer of Control (jmp); 7.4 7.4 The Conditional Jump Instructions; 7.5 7.5 "Medium-Level" Control Structures: jt and jf; 7.6 7.6 Implementing Common Control Structures in Assembly Language; 7.7 7.7 Introduction to Decisions; 7.8 7.8 State Machines and Indirect Jumps; 7.9 7.9 Spaghetti Code; 7.10 7.10 Loops; 7.11 7.11 Performance Improvements; 7.12 7.12 Hybrid Control Structures in HLA; 7.13 7.13 For More Information; Chapter 8: ADVANCED ARITHMETIC; 8.1 8.1 Multiprecision Operations; 8.2 8.2 Operating on Different-Size Operands; 8.3 8.3 Decimal Arithmetic; 8.4 8.4 Tables; 8.5 8.5 For More Information; Chapter 9: MACROS AND THE HLA COMPILE-TIME LANGUAGE; 9.1 9.1 Introduction to the Compile-Time Language (CTL); 9.2 9.2 The #print and #error Statements; 9.3 9.3 Compile-Time Constants and Variables; 9.4 9.4 Compile-Time Expressions and Operators; 9.5 9.5 Compile-Time Functions; 9.6 9.6 Conditional Compilation (Compile-Time Decisions); 9.7 9.7 Repetitive Compilation (Compile-Time Loops); 9.8 9.8 Macros (Compile-Time Procedures); 9.9 9.9 Writing Compile-Time "Programs"; 9.10 9.10 Using Macros in Different Source Files; 9.11 9.11 For More Information; Chapter 10: BIT MANIPULATION; 10.1 10.1 What Is Bit Data, Anyway?; 10.2 10.2 Instructions That Manipulate Bits; 10.3 10.3 The Carry Flag as a Bit Accumulator; 10.4 10.4 Packing and Unpacking Bit Strings; 10.5 10.5 Coalescing Bit Sets and Distributing Bit Strings; 10.6 10.6 Packed Arrays of Bit Strings; 10.7 10.7 Searching for a Bit; 10.8 10.8 Counting Bits; 10.9 10.9 Reversing a Bit String; 10.10 10.10 Merging Bit Strings; 10.11 10.11 Extracting Bit Strings; 10.12 10.12 Searching for a Bit Pattern; 10.13 10.13 The HLA Standard Library Bits Module; 10.14 10.14 For More Information; Chapter 11: THE STRING INSTRUCTIONS; 11.1 11.1 The 80x86 String Instructions; 11.2 11.2 Performance of the 80x86 String Instructions; 11.3 11.3 For More Information; Chapter 12: CLASSES AND OBJECTS; 12.1 12.1 General Principles; 12.2 12.2 Classes in HLA; 12.3 12.3 Objects; 12.4 12.4 Inheritance; 12.5 12.5 Overriding; 12.6 12.6 Virtual Methods vs. Static Procedures; 12.7 12.7 Writing Class Methods and Procedures; 12.8 12.8 Object Implementation; 12.9 12.9 Constructors and Object Initialization; 12.10 12.10 Destructors; 12.11 12.11 HLA's _initialize_ and _finalize_ Strings; 12.12 12.12 Abstract Methods; 12.13 12.13 Runtime Type Information; 12.14 12.14 Calling Base Class Methods; 12.15 12.15 For More Information; ASCII CHARACTER SET; COLOPHON; UPDATES;
Already own this item? Sell Yours and earn some cash.
It's fast and free to list! (Learn More.)
Reviews
Review this Product
Webmasters, Bloggers & Website Owners
You can earn a 5% commission by selling The Art of Assembly Language paperback book on your website. It's easy to get started - we will give you example code. After you're set-up, your website can earn you money while you work, play or even sleep!
Authors/Publishers
Are you the Author/Publisher? Improve sales by submitting additional information on this title.
This item ships from and is sold by Fishpond.com, Inc.