第一图书网

汇编语言程序设计

布鲁姆 机械工业出版社
出版时间:

2006-1  

出版社:

机械工业出版社  

作者:

布鲁姆  

页数:

409  

Tag标签:

无  

前言

  在目前正在使用的程序设计语言之中,汇编语言是被误解得最深的一种。当提到“汇编语言”这个术语时,经常使人联想到低级的位移动和在长达数千页的指令手册中费力地查找正确的指令格式。随着各种出色的高级语言开发工具的快速发展,在各种程序设计新闻组中“汇编语言程序设计已经死亡了”这种评论并不少见。但是,汇编语言程序设计远没有到死亡的时候。每种高级语言程序在能够连接为可执行程序之前都必须被编译为汇编语言程序。对于高级语言程序设计者来说,了解编译器如何生成汇编语言代码很有用处,这表现在使用汇编语言直接编写例程和了解编译器如何把高级语言转换为汇编语言方面。

内容概要

每种高级语言程序在连接为可执行程序之前,都必须被编译为汇编语言程序,因此对于高级语言程序设计者来说,了解编译器如何生成汇编语言代码十分有用。 本书分为三部分。第一部分讲解汇编语言程序设计环境基础,第二部分研究汇编语言程序设计,最后一部分讲解高级汇编语言技术。本书的主要目的是向使用高级语言的程序员讲解编译器如何从C和C++程序创建汇编语言例程,以及编程人员应如何掌握生成的汇编语言代码,调整汇编语言例程以提高应用程序的性能。 本书适合有一定编程经验的开发人员参考。

作者简介

Richard Blum 毕业于美国普度大学电气工程专业,在美国一家政府组织工作了15年以上。在此期间,他使用过各种编程语言(C、C++、Java和Microsoft VB .NET以及C#)编写实用程序,因此他发现一个非常有价值的事实:通过研究编译器生成的汇编语言代码及使用汇编语言例程,可

书籍目录

第一部分 汇编语言程序设计环境基础 第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 标志 2.2 IA-32的高级特性 2.2.1 x87浮点单元 2.2.2 多媒体扩展 2.2.3 流化SIMD扩展 2.2.4 超线程 2.3 IA-32处理器系列 2.3.1 Intel处理器 2.3.2 非Intel处理器 2.4 小结 第3章 相关的工具 3.1 开发工具 3.1.1 汇编器 3.1.2 连接器 3.1.3 调试器 3.1.4 编译器 3.1.5 目标代码反汇编器 3.1.6 简档器 3.2 GNU汇编器 3.2.1 安装汇编器 3.2.2 使用汇编器 3.2.3 关于操作码语法 3.3 GNU连接器 3.4 GNU编译器 3.4.1 下载和安装gcc 3.4.2 使用gcc 3.5 GNU调试器程序 3.5.1 下载和安装gdb 3.5.2 使用gdb 3.6 KDE调试器 3.6.1 下载和安装kdbg 3.6.2 使用kdbg 3.7 GNU objdump程序 3.7.1 使用objdump 3.7.2 objdump范例 3.8 GNU简档器程序 3.8.1 使用简档器 3.8.2 简档范例 3.9 完整的汇编开发系统 3.9.1 Linux基础 3.9.2 下载和运行MEPIS 3.9.3 新的开发系统 3.10 小结 第4章 汇编语言程序范例 4.1 程序的组成 4.1.1 定义段 4.1.2 定义起始点 4.2 创建简单程序 4.2.1 CPUID指令 4.2.2 范例程序 4.2.3 构建可执行程序 4.2.4 运行可执行程序 4.2.5 使用编译器进行汇编 4.3 调试程序 4.4 在汇编语言中使用C库函数 4.4.1 使用printf 4.4.2 连接C库函数 4.5 小结 第二部分 汇编语言程序设计基础 第5章 传送数据 第6章 控制执行流程 第7章 使用数字 第8章 基本数学功能 第9章 高级数学功能 第10章 处理字符串 第11章 使用函数 第12章 使用Linux系统调用 第三部分 高级汇编语言技术 第13章 使用内联汇编 第14章 调用汇编库 第15章 优化例程 第16章 使用文件 第17章 使用高级IA-32特性


编辑推荐

  每种高级语言(比如C和C++)在连接为可执行程序之前都会被编译器转换成汇编语言。本书面向使用高级语言的开发人员,讲解如何查看和解释编译器生成的汇编语言代码,了解它们是如何创建的,从而可以修改编译器生成的代码或创建自己的汇编语言例程。本书揭示如何使程序中的函数更快更高效的内幕,以及提高应用程序性能的方法。  本书主要内容:  ● 查看高级语言程序生成的汇编语言代码的好处;  ● 如何为Linux奔腾处理器环境创建独立的汇编语言程序;  ● 如何将高级函数和库整合到汇编语言程序中;  ● 如何将汇编语言例程整合到C和C++应用程序中;  ● 如何在汇编语言程序中使用Linux系统调用;  ● 如何在应用程序中使用奔腾处理器的MMX和SSE功能。

图书封面

图书标签Tags

广告

下载页面


汇编语言程序设计 PDF格式下载



市面上汇编语言方面的书不少,但将AT&T(GNU)风格并基于Linux平台的少之又少,精品更是罕见,我很荣幸能够读到这样一本经典中的经典。为了证明我不是枪手,我列举此书的如下优点:1.无废话,例子很贴切。这点与国内众多汇编方面的书籍区别较大,国内的汇编书籍多半是用于高校教材的,很多都是借鉴同一本书,由于CPU在近6年来在架构上发生翻天覆地的变化,导致这些靠借鉴别人出版的书籍无法跟上节奏,就算跟上节奏也明显看出作者实际上根本没有深入地理解。2.结合高级语言,书中并不是“就汇编,论汇编”,可以看出,作者的确经历过很多软件项目的高手,没有10几年的经验是无法做到这一点的。3.由于其基于Linux平台,我们可以通过阅读本书直接转入嵌入式Linux底层方面的学习,只要再对ARM平台和指令集稍微熟悉一下,就可以直接去研究内核的引导和Linux移植方面的东西。


读了很多intel和windows下的汇编语言的书籍,对这本介绍linux下汇编的书真是情有独钟啊!
我觉得这是一本非常好的书。
不仅可以开阔眼界,而且能更深入的理解汇编语言。


这是我读过的,最好学,最实用的汇编语言教程,值得一看。我非常喜欢!


好书!汇编、系统调用、C和汇编混合应用说明得很清楚。还可以了解新的SIMD指令应用


还不错拉。适合入门,写的很详细,对理解linux内核里的汇编很有帮助


很好 gdb的高级应用


正在看,书中用的是linux开发环境.还提供很多开发工具,不错啊.


比起国内的书来说全面多了.


很好的书。可惜一直没看完过。


好书,书写的很容易懂,好书,有不少好例子,我一边看一边写,进步蛮快


最近学习linux内核,发现这本书虽名为《汇编语言程序设计》但是讲解了许多linux内部的实现机制与汇编语言的知识,是对linux程序员很用的书籍。


如题,而且这本书相对于国内及相当多一部分X86汇编书籍,好太多了,说得比较容易明白,例子比较实际,而且和一些介绍X86汇编的书籍最大的不同就是这本书并不是只顾说语言,而更多地是以底层编程思想方面出发!再者这本书是以AT&T格式汇编为主,对想了解LINUX内核及嵌入式LINUX系统开发的人员很有好处!


这本书适合初学汇编语言,又对ANSIC/C++有编程经验的人员阅读,作者将会以程序员易懂的方式初步介绍x86体系下的汇编语言。


本书主讲汇编,并在c语言,及操作系统间穿梭。让编程思想融会贯通。不错


非常不错!我通读了一遍,非常适合初级水评的编程人员,Linux/Unix下的。


翻译的有点差,不过还是一本不错的书,学Linux内核的好东西!建议挑着看!


看到pipeline 被翻译成 管线。。。确实汗了一下。


深度刚好,宽度适中


这老头子挺酷


评价一般.现在关于汇编语言程序设计的书籍很多,值得一看的都是原版和翻译过来的书但是翻译的书大多都文不对意.这本书可以当成专业书籍看看,要找到好的汇编语言程序设计籍可能要读上一大堆汇编语言程序设计书目了.呜呜


如果你想用汇编来写程序,看这本书是远远不够的。

不过对于我这个只想了解汇编的人来说,够了。


汇编啊可以看看


大多数句子的逻辑结构就是英文的直译。
很多专业名词不对。
总之让读的人感觉磕磕绊绊一点也不爽!


没有大的惊喜


可能是因为翻译质量的问题,感觉看着不舒服。


如果是英文版,这书是个好书,但到了这不良的翻译者和不良的出版社,却变成了烂书一本。就拿这书的83页中的5.3节来说,简直是乱弹琴!!!!这书还是第二次印刷!!!!!看了都要吐血,误人子弟呀,中国作家!鄙视翻译者,更鄙视出版社,永远都不会再买机械出版社的书


买来有些后悔,发现太死板了不生动,有些难


   这本书我读了大概两遍,说来惭愧,现在虽然知道这本书写的什么,可是很多细节在我现在不使用汇编以后有点淡忘了,但是这不妨碍我写它的评论。
   那一年冬天,我忽然对UNIX产生了浓厚的兴趣,开始阅读了UNIX的设计原理,就是Bach的那本《UNIX操作系统设计》,这本书的写作背景似乎还在AT&T的不准泄露UNIX源代码的条款下进行的,所以读者可以看到书中没有一处UNIX源代码的举例,但那本书真的比UNIX的内部工作原理写得很清楚。设计操作系统内核毕竟不是说干就干的事情,前期的很多准备都是必要的,知识上的就有IBM-PC,尤其是AT的架构,还有外围各种借口芯片的了解,现代CPU的工作原理的理解(计算机组成原理和微型计算机是应该好好学的,可是我当时没有重视这些,但是也不是多大的损失,从编程的兴趣上出发一样可以弥补那些知识)。此外,当然还有操作系统的原理的丰富知识,包括如何引导操作系统内核。
   这个知识是如何获得的,我现在都有些忘了,但是感觉是很漫长的一个过程,需要太多的积累,我当时的想法就是从原理出发,白手起家设计一个内核,其实这需要太多太多的知识。无论是Linus设计Linux内核,Bill Joy设计BSD内核,他们都是从在钻研了操作系统内核源代码以后入手的。即使AST设计Minix也是在讲授了Lions的书多年以后开始的,也可以说是深谙操作系统源代码的。因此设计操作系统最好的开始就是从读源代码开始。
   话题有些远了。在写引导程序之前显然是要学习汇编语言,选择开发平台和工具的。我在微机原理课上自学了8086实模式下的编程,这个还是非常有用的,由于实模式下的汇编比较简单,可是很好入手汇编语言的编程,推荐书自然是王爽老师的那本。开发平台自然是类UNIX系统了,linux,FreeBSD都可以。汇编器和链接器分别是as和ld,而as采用的汇编格式是AT&T的,因此就需要学习这个了。后来就发现了这本书。
   这本书很好,讲解清楚,而且例子丰富,可是仅仅是32位平台上的编程,没有讲到实模式和保护模式这些。因此对于写引导仍然是不够的。后来又读了《80x86汇编语言程序设计》,那本书当时看着很好,但是再我读了《Programming the 80386》以后就觉得这两本还是不能相提并论的,因此如果有谁想了解这方面的,可以直接读后者。


  全面又不失重点,入于基础出于高级。很好的总结和概括了IA-32汇编语言的重点。尤其是对C/C++于汇编的混合编程和程序优化的内容讲述极其精辟明了。显示出来作者的深厚功底和大量经验。
  本书的另一特点就是,通俗易懂。对于英语不是很好的读者也能轻松看懂英文版的。哈是不是很爽。个人觉得没有练习题是本书的一大遗憾。希望作者在下一版中能够加一些练习题。好让我们巩固一下所学。


  本书语言流畅,安排得当,实践性强,不但是一本非常好的AT&T汇编教材,对unix C程序员理解下层原理也非常有帮助!
  但本书不适用于x86_64平台,书中代码在x86机器上汇编成可执行程序后可在x86_64平台上运行,但代码却无法直接按书中方法在x86_64下汇编成可执行程序,因为e**的寄存器会换成r**,而且会有更多参数放进寄存器而不是栈里,这点请读者注意!


  如果想学习AT&T风格的汇编的话,这本书真的很不错。不过可惜这本书并不能完全作为参考手册,有一些汇编指令并没有在书中涉及到,不过这个估计得去查Intel和AMD的Developer Guide才行。


  不适合初学者,
  适合对C/C++有一定了解程度的读者,
  读起来很流畅,给几天时间能一口读完
  


我发现我们的经历很相似啊


相关图书