汇编语言艺术

汇编语言艺术
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2005-03
版次: 1
ISBN: 9787302104353
定价: 88.00
装帧: 平装
开本: 其他
纸张: 胶版纸
页数: 888页
15人买过
  • 本书是由著名作者Randall Hyde在其十多年的汇编语言教学经验基础上编写而成的,以X86系列微机为背景,从简单的Hello程序开始,系统而详细地阐述了X86微机汇编语言的各种基础知识和编程技巧,内容包括数据表示、存储器管理、各种数据类型、过程、与汇编语言相关的体系结构、控制结构、文件、宏指令、位处理指令、字符串指令、MMX指令、类和对象,以及与其他语言的混合编程等,尤其是在高级汇编语言(HLA)方面,本书进行了细致深入的阐述。本书可作为高等院校计算机及相关专业的教材和参考用书。
      
      
      本书力求从艺术的角度来阐述汇编语言的魅力,减轻甚至消除读者对汇编语言学习的恐惧和苦恼,从而轻松快速地掌握汇编语言。本书可作为高等院校计算机专业学生的教材和参考用书。 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
  • 内容简介:
    本书是由著名作者Randall Hyde在其十多年的汇编语言教学经验基础上编写而成的,以X86系列微机为背景,从简单的Hello程序开始,系统而详细地阐述了X86微机汇编语言的各种基础知识和编程技巧,内容包括数据表示、存储器管理、各种数据类型、过程、与汇编语言相关的体系结构、控制结构、文件、宏指令、位处理指令、字符串指令、MMX指令、类和对象,以及与其他语言的混合编程等,尤其是在高级汇编语言(HLA)方面,本书进行了细致深入的阐述。本书可作为高等院校计算机及相关专业的教材和参考用书。
      
      
      本书力求从艺术的角度来阐述汇编语言的魅力,减轻甚至消除读者对汇编语言学习的恐惧和苦恼,从而轻松快速地掌握汇编语言。本书可作为高等院校计算机专业学生的教材和参考用书。
  • 目录:
    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
查看详情
相关图书 / 更多
汇编语言艺术
汇编语言案例教程(微课版)()
李建俊、张慧明 著
汇编语言艺术
汇编语言:基于x86处理器(原书第8版)
[美]基普·R.欧文(Kip R.Irvine)
汇编语言艺术
汇编语言简明教程(湖北警官学院系列教材)
王宁 著
汇编语言艺术
汇编语言程序设计——基于x86与MIPS架构
何云华
汇编语言艺术
汇编语言上机指导(微课版)
许向前 主编;崔素丽 副主编;李建俊;张慧明;孙曼曼
汇编语言艺术
汇编语言编程基础 基于LoongArch
孙国云 敖琪 王锐
汇编语言艺术
汇编语言:基于x86处理器(英文版·原书第8版)
[美]基普·欧文(Kip R.Irvine)
汇编语言艺术
汇编语言程序设计——基于ARM体系结构(第4版)
文全刚 著
汇编语言艺术
汇编语言与计算机系统组成 第2版
李心广 张晶 潘智刚 罗海涛 编著
汇编语言艺术
汇编语言实用教程 : 基于Win32编程
秦莲、姬伟峰 主编
汇编语言艺术
汇编语言(基于64位ARMv8体系结构)
钱晓捷
汇编语言艺术
汇编语言(第4版)
全国计算机专业技术资格考试办公室 著