计算机组成及汇编语言原理
基本信息
内容简介回到顶部↑
本书以java虚拟机为基础介绍计算机组织和系统结构。前半部分涵盖了计算机组织和系统结构的一般原理,以及汇编语言编程的艺术,后半部分关注于各种不同cpu在系统结构上的特殊细节,包括奔腾、8088、power系统结构以及作为典型嵌入式系统控制芯片例子的atmel avr。.
本书全面反映了ieee和acm对本科生掌握标准计算机体系结构及组成的知识点要求,适用范围广,可作为高等院校计算机及相关专业计算机组成课程的教材。
本书以创新的视角介绍了计算机组成原理,主要以java虚拟机为例,因为java虚拟机是一个极为便利、时新、可移植以及几乎到处可得到的平台。..
本书主张读者在java虚拟机的范围内彻底理解计算机组成的核心原理,然后将这些原理拓展到其他四个最主要的平台:intel 8088、pentium 4、power体系结构及atmel avr微控制器。使读者能快速掌握实际环境中计算机体系结构原理,提高实践和应用能力。
本书主要内容
·计算、表示以及虚拟机的角色。 ·算术表达式:符号表示、存储程序计算机及运算。 ·采用领先的开源java汇编器jasmin进行汇编语言编程。 ·从if语句和循环到子例程的控制结构。 ·真实的计算机体系结构:优化cpu、存储器及外设。 ·8088、pentium及power:比较其组成、体系结构及汇编语言。 ·pentium和power体系结构的性能问题,包括流水线。 ·微控制器:组成、体系结构、接口及程序设计。 ·高级java虚拟机编程:复杂和派生类型、类、继承、类操作、i/o等。 ·附录涵盖了数字逻辑、java虚拟机指令集、操作代码及类文件格式。...
本书全面反映了ieee和acm对本科生掌握标准计算机体系结构及组成的知识点要求,适用范围广,可作为高等院校计算机及相关专业计算机组成课程的教材。
本书以创新的视角介绍了计算机组成原理,主要以java虚拟机为例,因为java虚拟机是一个极为便利、时新、可移植以及几乎到处可得到的平台。..
本书主张读者在java虚拟机的范围内彻底理解计算机组成的核心原理,然后将这些原理拓展到其他四个最主要的平台:intel 8088、pentium 4、power体系结构及atmel avr微控制器。使读者能快速掌握实际环境中计算机体系结构原理,提高实践和应用能力。
本书主要内容
·计算、表示以及虚拟机的角色。 ·算术表达式:符号表示、存储程序计算机及运算。 ·采用领先的开源java汇编器jasmin进行汇编语言编程。 ·从if语句和循环到子例程的控制结构。 ·真实的计算机体系结构:优化cpu、存储器及外设。 ·8088、pentium及power:比较其组成、体系结构及汇编语言。 ·pentium和power体系结构的性能问题,包括流水线。 ·微控制器:组成、体系结构、接口及程序设计。 ·高级java虚拟机编程:复杂和派生类型、类、继承、类操作、i/o等。 ·附录涵盖了数字逻辑、java虚拟机指令集、操作代码及类文件格式。...
作译者回到顶部↑
本书提供作译者介绍
Patrick Juola 科罗拉多大学计算机科学博士,现为迪尤肯大学数学与计算机科学系副教授。他的研究兴趣包括自然语言处理、语言心理学及计算机安全。他曾在牛津大学做博士后,在卡内基-梅隆大学的CERT/CC做访问科学家,在PGP公司做专职科学家。...
.. << 查看详细
.. << 查看详细
目录回到顶部↑
出版者的话.
译者序
前言
第一部分 假想计算机
第1章 计算和表示 1
1.1 计算 1
1.1.1 电子设备 1
1.1.2 算法机 1
1.1.3 功能部件 2
1.2 数字和数值表示 6
1.2.1 数字表示和位 6
1.2.2 布尔逻辑 8
1.2.3 字节和字 9
1.2.4 表示 10
1.3 虚拟机 19
1.3.1 什么是虚拟机 19
1.3.2 可移植性问题 21
1.3.3 超越限制 21
1.3.4 易于升级 21
1.3.5 安全问题 22
译者序
前言
第一部分 假想计算机
第1章 计算和表示 1
1.1 计算 1
1.1.1 电子设备 1
1.1.2 算法机 1
1.1.3 功能部件 2
1.2 数字和数值表示 6
1.2.1 数字表示和位 6
1.2.2 布尔逻辑 8
1.2.3 字节和字 9
1.2.4 表示 10
1.3 虚拟机 19
1.3.1 什么是虚拟机 19
1.3.2 可移植性问题 21
1.3.3 超越限制 21
1.3.4 易于升级 21
1.3.5 安全问题 22
译者序回到顶部↑
当前,对于计算机组成与系统结构类的本科课程,在教学上的主要困难之一是难以选择一个合适的教学用体系结构。能清楚体现计算机组成和体系结构原理的芯片早已过时;而对于先进的奔腾机,这些基本原理则淹没于复杂的实现方法和策略中。.
本书作者意识到了目前计算机组织和系统结构在教学选材上的困难,并采取JVM作为教学体系结构。这是从新的角度进行的有益尝试。JVM非常简单、易于理解,因而可能会成为系统结构教学的最佳用机之一。但JVM毕竟与真实计算机存在物理差别,为表明这种差别,作者也有针对性地介绍了其他几种典型的体系结构。..
本书的特点是内容广泛且有一定深度,从最基本的电子器件、二进制表示和计算,到jasmin汇编语言程序设计,再到现实世界中存在的计算机系统结构,最后到JVM高级编程课题,几乎涵盖了所有相关的主题。并且,在每个章节都提供了习题,以巩固知识。
本书适合于作为大学二、三年级相关课程的教材或教学参考书。学生们通过一学期的学习,就能基本掌握计算机组成的基本原理及汇编语言编程。当然,如果学生们已经掌握了计算机的最基础知识,再学习本书则效果更好。
本书由三位老师合作翻译。吴为民翻译了第1、2、3、4、10章以及附录A、C、D、E,艾丽华翻译了第5、6、7、8、9章,张大伟翻译了附录B。由于本书的翻译工作是在繁忙的教学、科研工作之余完成的,难免有疏漏之处,欢迎各位读者给予批评指正。...
译者
2009年10月
本书作者意识到了目前计算机组织和系统结构在教学选材上的困难,并采取JVM作为教学体系结构。这是从新的角度进行的有益尝试。JVM非常简单、易于理解,因而可能会成为系统结构教学的最佳用机之一。但JVM毕竟与真实计算机存在物理差别,为表明这种差别,作者也有针对性地介绍了其他几种典型的体系结构。..
本书的特点是内容广泛且有一定深度,从最基本的电子器件、二进制表示和计算,到jasmin汇编语言程序设计,再到现实世界中存在的计算机系统结构,最后到JVM高级编程课题,几乎涵盖了所有相关的主题。并且,在每个章节都提供了习题,以巩固知识。
本书适合于作为大学二、三年级相关课程的教材或教学参考书。学生们通过一学期的学习,就能基本掌握计算机组成的基本原理及汇编语言编程。当然,如果学生们已经掌握了计算机的最基础知识,再学习本书则效果更好。
本书由三位老师合作翻译。吴为民翻译了第1、2、3、4、10章以及附录A、C、D、E,艾丽华翻译了第5、6、7、8、9章,张大伟翻译了附录B。由于本书的翻译工作是在繁忙的教学、科研工作之余完成的,难免有疏漏之处,欢迎各位读者给予批评指正。...
译者
2009年10月
前言回到顶部↑
本书内容
这是一本关于Java虚拟机(Java Virtual Machine,JVM)组织和系统结构的书。JVM是处于Java语言核心的软件,并出现在大多数计算机、Web浏览器、PDA以及网络化附属设备中。本书还涵盖了计算机组织和系统结构的一般原理,并以其他流行(或不那么流行)的计算机为例加以说明。.
这不是一本关于编程语言Java的书,虽然具备Java语言或类Java语言(C、C++、Pascal、Algol等)的一些知识会有所帮助。本书是一本关于Java语言如何使事件发生以及计算如何产生的书。
这本书的写作开始于一个现代技术的实验。当我开始任教于目前的大学时(1998年),计算机组织和系统结构课程用的主要是运行MS-DOS的8088,这个编程环境实质上与修这门课的二年级学生年龄相当。(遗憾的是,这种时间上的迟滞相当普遍。当我在本科修同样的课程时,所学系统结构的相应计算机只比我“年轻”2年。)根本问题是现代奔腾4芯片不是特别好的教学用系统结构。它加入了有20年历史的8088的所有功能,包括其局限,并提供了复杂的变通方法。由于这个复杂性问题,就难以在不详细引用早已过时的芯片集的情况下解释清楚奔腾4的工作原理。教科书主要讲解的是较简单的8088,然后作为扩展和后续思考来描述实际要使用的计算机。这就好比在福特A型上学习汽车力学,后来只讨论如催化式排气净化器、自动驾驶、基于钥匙的点火系统等重要概念。计算机系统结构课程不应被迫成为计算历史的课程。
与此不同的是,我想采用一种易于理解的系统结构来教这门课,该系统结构结合了现代原理且本身对学生有用。由于每个运行Web浏览器的计算机都结合了JVM的一个副本作为软件,因此几乎每个当今的计算机都已经有了兼容的JVM供其使用。
因而这本书涵盖了计算机组织和系统结构的核心方面:数字逻辑和系统、数据表示以及计算机组织/系统结构。本书还描述了一种特定系统结构JVM的汇编级语言,并且介绍了其他常见的系统结构(如英特尔奔腾4和Power PC)作为支持例子但不作为重点。正如IEEE计算机学会和美国计算机协会所推荐的,本书尤其适合作为计算机系统结构和组织的标准二年级课程。..
组织
本书包含两个部分。前半部分(第1~5章)涵盖了计算机组织和系统结构的一般原理,以及汇编语言编程的艺术/科学,并采用了JVM作为例子来阐明这些原理如何起作用(在数字计算机中如何表示数?加载器做哪些事情?格式转换涉及哪些事情?),以及JVM汇编语言编程中一些必要的细节,包括对操作代码的详细讨论(操作代码i2c要做哪些事情,它是如何改变堆栈的?运行汇编器的命令是什么)。本书的后半部分(第6~10章)关注于各种不同CPU在系统结构上的特殊细节,包括奔腾、它的老亲戚8088、Power系统结构,以及作为典型嵌入式系统控制芯片例子的Atmel AVR。
读者
这个框架将使得本书被广大读者和众多课程所使用,这是我的希望和信念。本书应能成功地服务于以软件为中心的计算机产业。对于那些主要感兴趣于将编程语言作为基础来学习抽象的计算机科学的人来说,JVM对计算的基本操作提供了一个简单、易于理解的介绍。作为编译器理论、编程语言或操作系统课程的基础,JVM是一个便利和可移植的平台和目标系统结构,比任何单芯片或操作系统有更广的可用性。作为进一步学习(特定平台的)各种计算机的基础,JVM提供了一个有用的解释性教学系统结构,该系统结构不仅可向目前的奔腾,而且可向在未来可能取代或支持奔腾的其他系统结构,实现平滑的、有原则的过渡。对于有兴趣学习计算机如何工作的学生来说,本书将提供有关大量不同平台的信息,以增强使用实际计算机和系统结构的能力。
如上所述,本书主要是作为本科二年级的单学期课程的教科书。前四章给出了理解计算机组织、系统结构以及汇编语言编程所需的核心材料。假设读者已经有了高级命令性语言的一些知识,并且熟悉高中代数(不是微积分)。在此基础上,教授(和学生)在选择主题方面有某种程度的灵活性,这取决于环境和具体问题。对于Intel/Windows工作组,关于8088和奔腾的章节就是有用和相关的,而对于有老式苹果机或基于Motorola微处理器实验室的学校,关于Power系统结构的章节更为相关。讲述Atmel AVR的一章可为嵌入式系统或微计算机实验室工作奠定基础,而高级的JVM课题将是打算以JVM系统结构为基础实现基于JVM的系统或编写系统软件(编译器、解释器等等)的学生之兴趣所在。进度快的课程甚至可能会涵盖本书所有的主题。书中还提供了附录供参考,因为我们相信,好的教科书应该在课程结束后仍是有用的。
致谢
没有Duquesne大学的学生,尤其是在计算机组织和汇编语言课程中参加我的实验的学生们,就不会有这本书。还要感谢我所在的系、学院以及大学所提供的帮助,尤其是来自Philip H.和Betty L. Wimmer家庭基金会的基金支持。我还要感谢我的读者,尤其是Pittsburgh大学的Erik Lindsley对早期草稿的宝贵意见。
没有出版商,本书永远不会与读者见面。因此我还要感谢Tracey Dunkelberger和Kate Hargett两位编辑,并通过他们向Prentice Hall出版集团致谢。我要向所有的审阅人致以谢意:Western Illinois大学的Mike Litman、Texas Tech大学的Noe Lopez Benitez、Arkansas Tech大学的Larry Morell、加州州立大学(Channel Islands)的Peter Smith、路易斯安娜州立大学(Shreveport)的John Sigle、以及密苏里大学(Columbia)的Harry Tyrer。同样,没有软件也不会有这本书。除了显然要感谢Sun公司发明Java的那些人以外,我特别地想要感谢jasmin的作者Jon Meyer,感谢他编写的软件以及他提供的有益支持。
最后,我还要感谢我的妻子Jodi,她为大多数示意图绘制了最初草图。更重要的是,在本书的长期写作过程中,她一直在努力容忍我,并且仍然愿意与我生活在一起。...
这是一本关于Java虚拟机(Java Virtual Machine,JVM)组织和系统结构的书。JVM是处于Java语言核心的软件,并出现在大多数计算机、Web浏览器、PDA以及网络化附属设备中。本书还涵盖了计算机组织和系统结构的一般原理,并以其他流行(或不那么流行)的计算机为例加以说明。.
这不是一本关于编程语言Java的书,虽然具备Java语言或类Java语言(C、C++、Pascal、Algol等)的一些知识会有所帮助。本书是一本关于Java语言如何使事件发生以及计算如何产生的书。
这本书的写作开始于一个现代技术的实验。当我开始任教于目前的大学时(1998年),计算机组织和系统结构课程用的主要是运行MS-DOS的8088,这个编程环境实质上与修这门课的二年级学生年龄相当。(遗憾的是,这种时间上的迟滞相当普遍。当我在本科修同样的课程时,所学系统结构的相应计算机只比我“年轻”2年。)根本问题是现代奔腾4芯片不是特别好的教学用系统结构。它加入了有20年历史的8088的所有功能,包括其局限,并提供了复杂的变通方法。由于这个复杂性问题,就难以在不详细引用早已过时的芯片集的情况下解释清楚奔腾4的工作原理。教科书主要讲解的是较简单的8088,然后作为扩展和后续思考来描述实际要使用的计算机。这就好比在福特A型上学习汽车力学,后来只讨论如催化式排气净化器、自动驾驶、基于钥匙的点火系统等重要概念。计算机系统结构课程不应被迫成为计算历史的课程。
与此不同的是,我想采用一种易于理解的系统结构来教这门课,该系统结构结合了现代原理且本身对学生有用。由于每个运行Web浏览器的计算机都结合了JVM的一个副本作为软件,因此几乎每个当今的计算机都已经有了兼容的JVM供其使用。
因而这本书涵盖了计算机组织和系统结构的核心方面:数字逻辑和系统、数据表示以及计算机组织/系统结构。本书还描述了一种特定系统结构JVM的汇编级语言,并且介绍了其他常见的系统结构(如英特尔奔腾4和Power PC)作为支持例子但不作为重点。正如IEEE计算机学会和美国计算机协会所推荐的,本书尤其适合作为计算机系统结构和组织的标准二年级课程。..
组织
本书包含两个部分。前半部分(第1~5章)涵盖了计算机组织和系统结构的一般原理,以及汇编语言编程的艺术/科学,并采用了JVM作为例子来阐明这些原理如何起作用(在数字计算机中如何表示数?加载器做哪些事情?格式转换涉及哪些事情?),以及JVM汇编语言编程中一些必要的细节,包括对操作代码的详细讨论(操作代码i2c要做哪些事情,它是如何改变堆栈的?运行汇编器的命令是什么)。本书的后半部分(第6~10章)关注于各种不同CPU在系统结构上的特殊细节,包括奔腾、它的老亲戚8088、Power系统结构,以及作为典型嵌入式系统控制芯片例子的Atmel AVR。
读者
这个框架将使得本书被广大读者和众多课程所使用,这是我的希望和信念。本书应能成功地服务于以软件为中心的计算机产业。对于那些主要感兴趣于将编程语言作为基础来学习抽象的计算机科学的人来说,JVM对计算的基本操作提供了一个简单、易于理解的介绍。作为编译器理论、编程语言或操作系统课程的基础,JVM是一个便利和可移植的平台和目标系统结构,比任何单芯片或操作系统有更广的可用性。作为进一步学习(特定平台的)各种计算机的基础,JVM提供了一个有用的解释性教学系统结构,该系统结构不仅可向目前的奔腾,而且可向在未来可能取代或支持奔腾的其他系统结构,实现平滑的、有原则的过渡。对于有兴趣学习计算机如何工作的学生来说,本书将提供有关大量不同平台的信息,以增强使用实际计算机和系统结构的能力。
如上所述,本书主要是作为本科二年级的单学期课程的教科书。前四章给出了理解计算机组织、系统结构以及汇编语言编程所需的核心材料。假设读者已经有了高级命令性语言的一些知识,并且熟悉高中代数(不是微积分)。在此基础上,教授(和学生)在选择主题方面有某种程度的灵活性,这取决于环境和具体问题。对于Intel/Windows工作组,关于8088和奔腾的章节就是有用和相关的,而对于有老式苹果机或基于Motorola微处理器实验室的学校,关于Power系统结构的章节更为相关。讲述Atmel AVR的一章可为嵌入式系统或微计算机实验室工作奠定基础,而高级的JVM课题将是打算以JVM系统结构为基础实现基于JVM的系统或编写系统软件(编译器、解释器等等)的学生之兴趣所在。进度快的课程甚至可能会涵盖本书所有的主题。书中还提供了附录供参考,因为我们相信,好的教科书应该在课程结束后仍是有用的。
致谢
没有Duquesne大学的学生,尤其是在计算机组织和汇编语言课程中参加我的实验的学生们,就不会有这本书。还要感谢我所在的系、学院以及大学所提供的帮助,尤其是来自Philip H.和Betty L. Wimmer家庭基金会的基金支持。我还要感谢我的读者,尤其是Pittsburgh大学的Erik Lindsley对早期草稿的宝贵意见。
没有出版商,本书永远不会与读者见面。因此我还要感谢Tracey Dunkelberger和Kate Hargett两位编辑,并通过他们向Prentice Hall出版集团致谢。我要向所有的审阅人致以谢意:Western Illinois大学的Mike Litman、Texas Tech大学的Noe Lopez Benitez、Arkansas Tech大学的Larry Morell、加州州立大学(Channel Islands)的Peter Smith、路易斯安娜州立大学(Shreveport)的John Sigle、以及密苏里大学(Columbia)的Harry Tyrer。同样,没有软件也不会有这本书。除了显然要感谢Sun公司发明Java的那些人以外,我特别地想要感谢jasmin的作者Jon Meyer,感谢他编写的软件以及他提供的有益支持。
最后,我还要感谢我的妻子Jodi,她为大多数示意图绘制了最初草图。更重要的是,在本书的长期写作过程中,她一直在努力容忍我,并且仍然愿意与我生活在一起。...

点击看大图

加载中...
