汇编语言

汇编语言编程艺术

 

译者简介:
陈曙晖,国防科技大学计算机专业博士,老师。1998年参加工作,在国防科技大学网络与信息安全研究所从事银河超级计算机网络系统和核心路由器的开发工作,担任核心路由器配置管理分系统的开发负责人,曾获得军队科技进步奖一等奖一项(银河超级计算机网络系统)、二等奖一项(核心路由器系统)。 
审校者简介:
毛希平,博士,清华大学计算机系老师,主讲“汇编语言程序设计”课程,并在清华大学计算机系高性能计算研究所从事研究工作,主要研究方向:并行计算和网格计算。
查看本书序言(作者:清华大学教授 温冬婵)

相信很多人都看过该书的网络版,它浓缩了网络版的精华,特别是对HLA的讲解,可谓入木三分。——Cherry Lam(高级程序员,印度) 
我一直认为,只有经过多年的学习和实际演练,才能掌握汇编语言程序设计,这本书改变了我的看法。——James Brodin (软件公司技术总监,美国) 
对于想快速成为汇编语言开发人员的学习者来说,本书是多年难遇的好书。——Conny Meilin(大学教授,瑞典) 
作者将多年来的开发和教学经验融合在大量的编程实例中,读者通过本书能快速地学会汇编语言程序设计,掌握其中的编程技巧 ——温冬婵(清华大学教授,中国)

汇编语言第2版

 

汇编语言是各种CPU提供的机器指令的助记符的集合,人们可以用汇编语言直接控制硬件系统进行工作。汇编语言是很多相关课程(如数据结构、操作系统、微机原理等)的重要基础。为了更好地引导、帮助读者学习汇编语言,作者以循序渐进的思想精心创作了这本书。本书具有如下特点:采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索;在深入本质的层面上对汇编语言进行讲解;对关键环节进行深入的剖析。
汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。
在本章中,对硬件系统结构的问题进行一部分的探讨,以使后续的课程可在一个好的基础上进行。
机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。

INTEL汇编语言程序设计第5版

 

内容简介

本书全面细致地讲述了汇编语言程序设计的各个方面。从微处理器体系结构、工作机制到指令集;从最基本的编译器链器的使用到高级过程、结构和宏的使用;从用纯汇编编写程序到用C/C++等最新编译器与汇编的混合接口编程;从16位实模式下BIOS、DOS实模式文本及图形程序设计到32位保护模式的Windows程序设计;从磁盘基础知识到Intel指令编码、浮点运算等相关知识都做了深入而细致的讲解。本书对计算机体系结构及基本原理做了相当篇幅的介绍,因此本书不仅可作为高等院校计算机专业汇编语言的教材,也可以作为计算机体系结构和原理的参考资料。

 

目录

第1章 基本概念

1.1 欢迎来到汇编语言的世界

1.1.1 一些精彩的提问

1.1.2 汇编语言应用程序

1.1.3 本节习题

1.2 虚拟机的概念

1.2.1 PC汇编编译器的历史

1.2.2 本节习题

1.3 数据的表示方法

1.3.1 二进制数

l-3.2 二进制加法

1.3.3 整数存储的尺寸

1.1.2 汇编语言应用程序

 

在程序设计的早期,大多数程序都是全部或部分用汇编语言写成的。那时候程序必须在很慢的处理器上、很小的内存中运行并要做到尽可能高效。当内存更多、处理器梦幻般提速的时候,程序也变得越来越复杂了,程序员开始使用C, FORTRAN和COBOL等支持一定结构化设计能力的高级语言编写程序。现在C++,C#和Java等面向对象的语言使得编写百万行以上代码的复杂程序成为可能。

因为编写和维护需要花费太多的时间,所以已经几乎看不到完全用汇编语言编写的大型程序。汇编语言主要用于优化程序中对执行速度要求苛刻的部分或实现对计算机硬件的访问。表1.1比较了高级语言和汇编语言在编写几种不同类型的应用程序时的优缺点。

汇编语言和高级语言的比较

应用程序类型

高级语言

1.1.1 一些精彩的提问

 

需要具备什么背景知识?
在阅读本书之前,读者应该学完一门大学计箅机程序设计入门课程。读者在使用汇编语言实现IF语句、循环和数组等高级语言结构的时候,将获得更深刻的理解。

什么是汇编器和链接器?
汇编器是把汇编语言源程序转换为机器语言的实用工具程序。链接器是把编译器创建的多个单独的文件组合链接成可执行程序的实用工具程序。另外一个相关的工具称为调试器,允许在程序运行时单步执行并查看寄存器和内存的内容。

需要什么硬件和软件?
需要一台装配有Intel386,Intel486, Pentium或IA-32兼容处理器的计算机。例如使用AMD系列处理器完全能够正常工作。MASM兼容从Windows 95开始的所有32位版本的Windows操作系统。一些与直接硬件访问和磁盘扇区编程相关的程序必须在DOS, Windows95/98/Me下运行,这是由于WindowsNT/2000/XP有严格的安全限制。

除此之外,还需要:

1.1 欢迎来到汇编语言的世界

 

本书着重讲述MS-Windows平台上IA-32兼容微处理器的汇编语言程序设计。读者可使用Intel或AMD的32位/64位处理器运行本书中的所有例子。

Intel IA-32系列处理器始于80386,并一直延续到(包括)Pentium 4处理器。我们选择的编译器是Microsoft MASM(Macro Assembler)8.0汇编器,运行于MS-Windows下。对于基于Intel的计算机,还有一些其他的优秀汇编器可供选择,包括TASM(Turbo Assembler),NASM(Netwide Assembler)和GNU汇编器。其中,TASM的语法与MASM的语法最为接近,读者可以(或许需要在老师的帮助下)用TASM汇编并运行本书中的大部分例子。其他的汇编器,NASM和GNU汇编器,语法与MASM则有些不同。

汇编语言是所有程序设计语言中最古老的语言,它与计算机的机器语言最为接近,通过汇编语言可以直接访问计算机的硬件,这就要求读者深入了解计算机体系结构和操作系统的大量细节。

本书的价值:为什么一定要阅读本书呢?读者可能正在学习与下列名称非常接近的大学课程:

订阅 RSS - 汇编语言