基本信息

内容简介
作译者
目录
译者序
前言
第1章 编程语言及数据的
基础知识 1
1.1 开篇语 1
1.2 简介 3
1.3 计算机编程语言 3
1.3.1 语言之间的关系 3
1.3.2 翻译流水线 3
1.3.3 编程语言与相应文件及编程工具之间的关系 6
1.3.4 为什么要学习汇编语言 7
1.4 数据的表示 8
1.4.1 计数系统 8
1.4.2 怎样表示整数 8
1.4.3 怎样表示无符号的整数 9
1.4.4 怎样表示带符号的整数 12
1.4.5 怎样保存字符 14
1.5 布尔表达式 16
1.6 3位计算机示例 17
前言
这是一本讲解汇编语言与计算机体系结构的教材。笔者从实用的角度出发讲解相关的原理与技术。首先介绍计算机编程语言和体系结构的基础知识,然后详细讨论汇编语言,并以此为手段,帮助读者更好地理解计算机的体系结构以及汇编语言在软件开发工作中的用途。
现有的计算机体系结构教程有这样几个缺点:(1)书里所讲的体系结构不是业界的主流;(2)书的写法更适合学习计算机与电气工程专业的人阅读,而不适合学习计算机科学专业的人及软件工程师阅读;(3)书里只讲与某个具体的操作系统有关的开发环境;(4) 定价过高;(5) 缺乏实用的内容。笔者想为大家提供一本更好的教材。
本书所面向的读者
本书主要面向计算机科学及软件工程专业的大学生。阅读本书之前,应该先学习计算机入门课程并打下良好的编程基础。你至少要掌握数据结构,而且最好是从 C/C++ 语言的角度学习过数据结构。已经工作的人也能从这本书里发现很多有用的话题,你可以据此来自学,以提高编写底层代码与高级代码的水平。
本书的编写过程及学习方法
从事学术工作的过程中,笔者经常冒出写书的念头,其中很多想法都源自我们两个人所讲的课程,也就是计算机体系结构。几十年来,这门课一直是计算机科学与软件工程专业的重要内容。此外,我们也开设了一些更偏向于实用技术的课程。
读博士的时候,我们曾经随口说要合写一本书,但一直没动笔。现在,总算找到了可以写这样一本书的机会。写书要花很多工夫,而且需要相互协作。笔者教了多年的计算机体系结构课程,并且一直在与 Prospect出版社的合作伙伴 Beth Golub 讨论相关的想法,最后,大家形成了一套颇为独特的理念,并打算以此为基础,写一本面向教师、学生与 IT 从业者的计算机体系结构教程,同时克服前面所说的缺点。也就是说,我们要写的这本书应该基于主流的体系结构,面向学习计算机科学专业的人及软件工程师,适合多种开发环境,定价要合理,而且内容也要实用。
确定了这个理念之后,我们开始用大量的时间撰写本书,这其中有许多时间花在了程序代码上。用汇编语言写代码是相当曲折的,但正因为如此也总能吸引我们去挑战。你会在学习过程中慢慢地体会到这种乐趣。想要把汇编语言与计算机体系结构这样一个复杂的话题写得简洁而清晰是很难的,而且其中哪些方面应该涵盖、哪些方面应该舍弃也不太容易决定,此外还要考虑如何安排讲解的顺序。这些都是撰写计算机书籍时经常遇到的问题。
对于许多学习计算机的人来说,通过汇编语言切入计算机体系结构是个特别好的方法,而且在用这种方法学习体系结构的过程中,你还能掌握实用的编程技巧。所以说,按照这种学习方法写出来的书,很适合用作相关课程的教材,而且也颇受学校、教师及学生的欢迎。我们认为汇编语言与计算机体系结构这门课讲起来很有意思,想要通过本书把这些有趣的知识分享给大家,希望你也能和我们一样喜欢这些内容。
内容编排及各章目标
第 1 章与第 2 章,讲解计算机编程语言与计算机体系结构的基础知识。
第 3 章至第 5 章,介绍 x86 与 x86_64 的汇编语法以及各种指令。
第 6 章至第 8 章,讲解函数、结构体以及浮点数运算等更为复杂的话题。
第 9 章与第 10 章,讲解怎样把汇编与高级语言及系统软件结合起来使用,并讲解与计算机及体系结构有关的其他高级话题。
第 11 章讲解 x86 之外的其他架构。
第 12 章介绍硬件及其元件的基本原理。
各章目标
第 1 章:描述计算机语言的翻译流程
第 2 章:了解计算机与处理器的各个组成部分
媒体评论
本书的内容涵盖汇编语言与计算机体系结构的许多方面。从计算机编程语言与体系结构的基础知识开始,讲解计算机语言的转移流程、计算机组成部分、汇编语法、算术操作、流程控制、函数、字符串、结构体、浮点数运算等内容。之后讲解怎样把汇编与高级语言及系统软件结合起来使用,并介绍硬件及其元件的基本原理。
书中以x86与x86_64这两种主流架构为重点,兼顾AT&T及Intel语法,并适用于GAS、NASM及MASM三种常见的汇编器,以及Linux、macOS及Windows三种常用的操作系统,这使得身处各种开发环境中的软件工程师都能在书里找到可以直接运用的解决方案,并了解如何将其移植到其他环境。