汇编语言艺术
2005-3
清华大学
RANDALL HYDE
888
无
本书是由著名作者Randall Hyde在其十多年的汇编语言教学经验基础上编写而成的,以X86系列微机为背景,从简单的Hello程序开始,系统而详细地阐述了X86微机汇编语言的各种基础知识和编程技巧,内容包括数据表示、存储器管理、各种数据类型、过程、与汇编语言相关的体系结构、控制结构、文件、宏指令、位处理指令、字符串指令、MMX指令、类和对象,以及与其他语言的混合编程等,尤其是在高级汇编语言(HLA)方面,本书进行了细致深入的阐述。本书可作为高等院校计算机及相关专业的教材和参考用书。 本书力求从艺术的角度来阐述汇编语言的魅力,减轻甚至消除读者对汇编语言学习的恐惧和苦恼,从而轻松快速地掌握汇编语言。本书可作为高等院校计算机专业学生的教材和参考用书。
作者:(美国)海德(Hyde R.)
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 Information2 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 Information3 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 Information4 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 Information5 PROCEDURES AND UNITS ……6 ARITHMETIC7 LOW LEVEL CONTROL STRUCTURES8 FILES9 ADVANCED ARITHMETIC1O MACRoS AN D TH E H LA CoMPI LE TIME LANGUAGE11 BIT MANIPULATION15 MIXED LANGUAGE PROGRAMMINGA ASCII CHARACTER SETB THE 80X86 INSTRUCTION SETINDEX
无
Hyde所写的汇编语言的入门书。语言通俗易懂,风趣幽默,撇开技术,作者叙述的方式就像是在和你交谈一样,让人陶醉。网上就有整理好的电子版,我也是首先看了电子版,才下定决心去买本印刷版的。但拿到书后,发现这个影印版把作者十分风趣幽默的前言给删除了,真是败笔!!!Randall Hyde的书值得一读。[...]
我从卓越买了这本,还有另外一本,送来时连个防损包裹都没有!只是外面一个熟料袋,而且塑料袋也被撕开了一个16开书的长度的口子,整本书可以从口子里拿出来,我问送货员防损包裹呢,他说可能是丢了,真晕!书的封面有些折痕和几处开胶,回来我自己用胶水粘的。真败了!
难得一见,曾经沧海难为水。