1 HELLO,WORLD OF ASSEMBLY LANGUAGE
1.1 Chapter Overview
1.2 The Anatomy of an HLA Program
1.3 Running Your First HLA Program
1.4 Some Basic HLA Data Declarations
1.5 Boolean Values
1.6 Character Values
1.7 An Introduction to Ifle Intel 80x86 CPU Family
1.7.1 The Memory Subsystem
1.8 Some Basic Machine Instructions
1.9 Some Basic HLA Control Structures
1.9.1 Boolean Expressions in HLA Statements
1.9.2 The HLA IF..THEN..ELSEIF..ELSE..ENDIF Statement
1.9.3 Conjunction, Disjunction, and Negation in Boolean Expressions
1.9.4 The WHILE..ENDWHILE Statement
1.9.5 The FOR..ENDFOR Statement
1.9.6 The REPEAT..UNTIL Statement
1.9.7 The BREAK and BREAKIF Statements
1.9.8 The FOREVER..ENDFOR Statement
1.9.9 The TRY..EXCEPTION..ENDTRY Statement
1.10 Introduction fo tfle HLA Sfandard Library
1.1O.1 Predefined Constanfs in the STDIo Module
1.1O.2 Sfandard In and Sfandard OUt
1.1O.3 The sfdOUt.newln ROUtine
1.1O.4 The sfdOUt.putiX ROUtines
1.1O.5 The sfdOUt.putiXSize Routines
1.1O.6 The sfdOUt.put ROUtine
1.1O.7 The sfd.n.gefc ROUtine
1.1O.8 The sfd.n.getiX ROUtines
1.1O.9 The sfd.n.teadLn and sfd.n.fIushlnput ROUtines
1.1O.1 O The sfdin.get ROUtine
1.11 AdditionaI Defails AbOUt TRY..ENDTRY
1.11.1 Nesting TRY..ENDTRY Sfafements
1.11.2 The UNPRoTECTED CIause in a TRY..ENDTRY Sfatement
1.11.3 The ANYEXCEPTIoN CIause in a TRY..ENDTRY SIafement
1.11.4 Regisfers and t11e TRY..ENDTRY Stafement
1.12 High LeveI AssembIy Language vs.Low Level AssembIy
1.13 For More Information
2 DATA REPRESENTATIoN
2.1 Chapter Overview
2.2 Numbering Systems
2.2.1 A Review of the Decimal System
2.2.2 The Binary Numbering System
2.2.3 Binary Formats
2.3 The Hexadecimal Numbering System
2.4 Data Organization
2.4.1 Bits
2.4.2 Nibbles
2.4.3 Bytes
2.4.4 Words
2.4.5 Double Words
2.4.6 Quad Words and Long Words
2.5 Arithmetic Operations on Binary and Hexadecimal Numbers
2.6 A Note About Numbers vs. Representation
2.7 Logical Operations on Bits
2.8 Logical Operations on Binary Numbers and Bit Strings
2.9 Signed and Unsigned Numbers
2.10 Sign Extension, Zero Extension, Contraction, and Saturation
2.11 Shifts and Rotates
2.12 Bit Fields and Packed Data
2.13 An Introduction to Floating Point Arithmetic
2.13.1 IEEE Floating Point Formats
2.13.2 HLA Support for Floating Point Values
2.14 Binary Coded Decimal (BCD) Representation
2.15 Characters
2.15.1 The ASCII Character Encoding
2.15.2 HLA Support for ASCII Characters
2.16 The Unicode Character Set
2.17 For More Information
3 MEMoRY ACCESS AND oRGANIZATIoN
3.1 Chaloter OvervieW
3.2 111e 80x86 Addlessing Modes
3.2.1 80x86 Reftister Addtessinfl Modes
3.2.2 80x86 32.Bit Memory Addressing Modes.
3.3 Run.Time Memory Orflanization
3.3.1 The Code Section
3.3.2 The Stat‘ic Sections
3.3.3 The Read-OnIy Data Section
3.3.4 The Stomge Section
3.3.5 The@NoSToRAGE Attribute
3.3.6 The Var Section
3.3.7 Orflanization of DecIaration Sections Within Your Programs
3.4 HOW HLA AIIocafes Memory for VariabIes
3.5 HLA Support for Dafa AIignment
3.6 Address Expressions
3.7 Type Coercion
3.8 Regjster Type Coercion
3.9 The Sfack Segment and the PUSH and POP Instructions
3.9.1 The Basic PUSH Instruction
3.9.2 The Basic POP lnstruction
3.9.3 Preserving Reftistes with the PUSH and PoP lnstructions
3.9.4 The Sfack ls a LIFo Data Structure
3.9.5 Otller PUSH and PoP Instructions
3.9.6 Removing Dafa from the Stack WithoUt POPOing It
3.9.7 Accessjng Dafa You've Pushed on t}1e Stack WithOUt POPlOjn lt
3.10 Dynamic Memory A¨Ocatlon and the Heao Seflment
3.11 The INC and DEC Instructions
3.12 Obtaing the Address of a Memorv obiect
3.13 For More Information
4 CONSTANTS,VARIAB LES,AN D DATA TYPES
4.1 Chapter Overview
4.2 Some Additional Instructions: INTMUL, BOUND, INTO
4.3 The "I'BYTE Data Types
4.4 HLA Constant and Value Declarations
4.4.1 Constant Types
4.4.2 String and Character Literal Constants
4.4.3 String and Text Constants in the CONST Section
4.4.4 Constant Expressions
4.4.5 Multiple CONST Sections and Their Order in an HLA Program
4.4.6 The HLA VAL Section
4.4.7 Modifying VAL Objects at Arbitrary Points in Your Programs
4.5 The HLA TYPE Section
4.6 ENUM and HLA Enumerated Data Types
4.7 Pointer Data Types
4.7.1 Using Pointers in Assembly Language
4.7.2 Declaring Pointers in HLA
4.7.3 Pointer Constants and Pointer Constant Expressions
4.7.4 Pointer Variables and Dynamic Memory Allocation
4.7.5 Common Pointer Problems
4.8 The HLA Standard Library CHARS.HHF Module
4.9 Composite Data Types
4.10 Character Strings
4.11 HLA Strings
4.12 Accessing the Characters Within a String
4.13 The HLA String Module and Other String-Related Routines
4.14 In-Memory Conversions
4.15 Character Sets
4.16 Character Set Implementation in HLA
4.17 HLA Character Set Constants and Character Set Expressions
4.18 The IN Operator in HLA HLL Boolean Expressions
4.19 Character Set Support in the HLA Standard Library
4.20 Using Character Sets in Your HLA Programs
4.21 Arrays
4.22 Declaring Arrays in Your HLA Programs
4.23 HLA Array Constants
4.24 Accessing Elements of a Single Dimension Array
4.24.1 Sorting an Array of Values
4.25 Multidimensional Arrays
4.25.1 Row Major Ordering
4.25.2 Column Major Ordering
4.26 Allocating Storage For Multidimensional Arrays
4.27 Accessing Multidimensional Array Elements in Assembly Language
4.28 Large Arrays and MASM (Windows Programmers Only)
4.29 Records
4.30 Record Constants
4.31 Arrays of Records
4.32 Arrays/Records as Record Fields
4.33 Controlling Field Offsets Within a Record :
4.34 Aligning Fields Within a Record
4.35 Pointers to Records ~
4.36 Unions
4.37 Anonymous Unions
4.38 Variant Types
4.39 Union Constants
4.40 Namespaces
4.41 Dynamic Arrays in Assembly Language
4.42 HLA Standard Library Array Support
4.43 For More Information
5 PROCEDURES AND UNITS
……
6 ARITHMETIC
7 LOW LEVEL CONTROL STRUCTURES
8 FILES
9 ADVANCED ARITHMETIC
1O MACRoS AN D TH E H LA CoMPI LE TIME LANGUAGE
11 BIT MANIPULATION
15 MIXED LANGUAGE PROGRAMMING
A ASCII CHARACTER SET
B THE 80X86 INSTRUCTION SET
INDEX
· · · · · · (
收起)