基本信息
- 原书名:Professional Assembly Language
- 原出版社: John Wiley & Sons
内容简介
计算机书籍
每种高级语言程序在连接为可执行程序之前,都必须被编译为汇编语言程序,因此对于高级语言程序设计者来说,了解编译器如何生成汇编语言代码十分有用。
本书分为三部分。第一部分讲解汇编语言程序设计环境基础,第二部分研究汇编语言程序设计,最后一部分讲解高级汇编语言技术。本书的主要目的是向使用高级语言的程序员讲解编译器如何从C和C++程序创建汇编语言例程,以及编程人员应如何掌握生成的汇编语言代码,调整汇编语言例程以提高应用程序的性能。
本书适合有一定编程经验的开发人员参考。
每种高级语言(比如C和C++)在连接为可执行程序之前都会被编译器转换成汇编语言。本书面向使用高级语言的开发人员,讲解如何查看和解释编译器生成的汇编语言代码,了解它们是如何创建的,从而可以修改编译器生成的代码或创建自己的汇编语言例程。本书揭示如何使程序中的函数更快更高效的内幕,以及提高应用程序性能的方法。
本书主要内容:查看高级语言程序生成的汇编语言代码的好处;如何为Linux奔腾处理器环境创建独立的汇编语言程序;如何将高级函数和库整合到汇编语言程序中;如何将汇编语言例程整合到C和C++应用程序中;如何在汇编语言程序中使用Linux系统调用;如何在应用程序中使用奔腾处理器的MMX和SSE功能。
作译者
目录
第一部分 汇编语言程序设计环境基础
第1章 什么是汇编语言
1.1 处理器指令
1.1.1 指令码处理
1.1.2 指令码格式
1.2 高级语言
1.2.1 高级语言的种类
1.2.2 高级语言的特性
1.3 汇编语言
1.3.1 操作码助记符
1.3.2 定义数据
1.3.3 命令
1.4 小结
第2章 IA-32平台
2.1 IA-32处理器的核心部分
2.1.1 控制单元
2.1.2 执行单元
2.1.3 寄存器
2.1.4 标志
前言
但是,汇编语言程序设计远没有到死亡的时候。每种高级语言程序在能够连接为可执行程序之前都必须被编译为汇编语言程序。对于高级语言程序设计者来说,了解编译器如何生成汇编语言代码很有用处,这表现在使用汇编语言直接编写例程和了解编译器如何把高级语言转换为汇编语言方面。
本书目的
本书的主要目的是向使用高级语言的程序员讲解高级语言程序是如何被转换为汇编语言的,以及如何掌握生成的汇编语言代码。这就是说,本书的主要读者是已经熟悉高级语言(比如C、C++,甚至Java)的程序员。本书没有花时间讲解基本的程序设计原则。我们假设读者已经熟悉计算机程序设计的基础,并且有兴趣学习汇编语言以便了解程序运行的幕后发生了什么。
但是,如果你是程序设计的初学者并且把汇编语言程序设计作为起点,本书也没有完全忽略你的要求。可以从头到尾阅读各个章节获得如何进行汇编语言程序设计(和一般的程序设计)的基础知识。书中的每个主题都包括范例代码来演示汇编语言指令如何工作。如果你完全是程序设计新手,也可以从本书开始学习程序设计,进而学习本书其他高级主题。
本书范围
本书的主要目的是使C和C++程序员熟悉汇编语言,讲解编译器如何从C和C++程序创建汇编语言例程,并讲解如何整理生成的汇编语言例程以便提高应用程序的性能。
所有用高级语言(比如C和C++)编写的程序,在被连接为可执行程序之前,都会被编译器转换为汇编语言。编译器使用编译器的设计者定义的特定规则来确定如何正确地转换高级语言语句。很多程序员只是编写高级语言程序并且假设编译器会创建正确的可执行代码来实现程序。
但是,情况并非总是如此。当编译器把高级语言代码转换为汇编语言代码时,稀奇古怪的事情经常出现。另外,编译器往往遵循非常特别的转换规则,以至于不能在最终的汇编语言代码中发现节省时间的捷径,而对于编写不良的高级例程,它也不能加以改善。在这样的情况下,汇编语言代码的知识就有用武之地了。
本书正是讲解汇编语言的知识,描述在连接为可执行程序之前如何检查编译器生成的汇编语言代码,并发现可以修改何处代码来提高性能或者提供附加功能,帮助读者理解编译器的转换处理是如何影响高级语言例程的。
本书结构
本书分为三个部分。第一部分讲解汇编语言程序设计环境的基础。因为汇编语言在各种处理器和汇编器之间是不同的,所以必须选择常见的平台。本书使用运行在Intel处理器系列上的Linux操作系统。Linux环境提供丰富的程序开发工具,比如优化编译器、汇编器、连接器和调试器,它们的费用很低,或者是免费的。Linux环境之中这些丰富的开发工具使它非常适合把C程序剖析为汇编语言代码。
第一部分的各章如下:
第1章“什么是汇编语言”,一开始确保你确切地了解什么是汇编语言以及如何将它融入程序设计模型。这一章揭开了汇编语言的神秘面纱,并且提供了解如何把汇编语言和高级语言一起使用的基础知识。
第2章“IA-32平台”,提供对Intel奔腾处理器系列的简要介绍。当使用汇编语言时,了解底层的处理器和它如何处理程序是很重要的。但是这一章没有打算对IA—32平台的操作进行深入的分析,也没有提供在这个平台上进行程序设计涉及到的硬件和操作。
第3章“相关的工具”,讲解本书中使用的Linux开放源代码的开发工具。本书中使用GNU编译器、汇编器、连接器和调试器对程序进行编译、汇编、连接和调试。
第4章“汇编语言程序范例”;演示如何在Linux系统上使用GNU工具创建、汇编、连接和调试简单的汇编语言程序。这一章还演示如何在Linux系统上在汇编语言程序中使用C库函数为汇编语言应用程序添加额外的特性。
本书的第二部分研究汇编语言程序设计的基础。在能够分析编译器生成的汇编语言代码之前,必须了解汇编语言指令。这一部分的各章如下:
第5章“传送数据”,讲解在汇编语言程序中如何传送数据元素。讲解寄存器、内存位置和堆栈的概念,并且提供在它们之间传送数据的范例。
第6章“控制执行流程”,描述汇编语言程序中使用的分支指令。这可能是程序最为重要的特性之一,认识分支并且优化分支的能力对提高应用程序的性能是至关重要的。






(已有55条评价)






