《汇编语言与计算机体系结构——使用C++和Java》配套软件包在哪里下载?

lann64 2006-09-19 09:01:36
书上给的那个网址www.brookscole.com好像转到Thomson什么网站去了,好像没有地方下载。哪位知道下载地址?
奇怪,我发非技术问题怎么就到灌水乐园去了?只好重发一次。
...全文
548 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2006-09-20
  • 打赏
  • 举报
回复
问一下楼主,这本书是什么内容?
lann64 2006-09-20
  • 打赏
  • 举报
回复
自己顶。
没有人知道嘛?
lann64 2006-09-20
  • 打赏
  • 举报
回复
本书特点
汇编语言和计算机体系结构都是难学的课程。传统的汇编语言是如此复杂和特别,以至于即使学习基本概念都可能是一项困难任务。计算机体系结构也有同样的问题,而且更严重。学习汇编语言,我们要研究一个复杂系统;而学习计算机体系结构,则要研究许多复杂系统。
那么怎样才能最有效地学习汇编语言和计算机体系结构呢?本书采用的方法是使用一个简单的计算机模型H1。H1非常容易学习,学生可以迅速用H1完成大量任务。另外,学生可以着重学习重要的系统概念,而不是无关紧要的细节。
使用简单的计算机模型介绍基本概念很难说是一项创新技术。但是,本书以两种创新的方式使用H1模型。第一,H1几乎出现在每一章。结果是连贯的计算机系统的开发,而不是不相关主题的集合。第二,H1不是静态模型,而是有一些学生可以修复的缺陷(事实上是重大缺陷)。H1的缺陷不是本书的缺陷,相反,它们是本书用来使学生参与设计和实现过程的资源。
本书的最重要特点之一是提供大量帮助更好理解的练习。例如,学生可以用C++或Java编写连接器,或者为H1实现一种面向堆栈的体系结构并评估其性能。
因为本书重点在重要的系统概念上面,所以本书为计算机科学和工程领域的高级课程提供了极好的准备。使用本书的学生将具备在高级编程、编译器设计、编程语言设计、操作系统、高级体系结构和计算机工程方面从事重要工作的知识。
H1完美地示范了计算机体系结构和组织的基本方面。但是,它不能示范现代计算机中存在的某些高级功能。因此,笔者在第14~16章增加了关于现代系统的材料。这几章涉及存储系统、RISC、CISC、流水线技术、SPARC、Pentium和JVM(Java虚拟机,Java Virtual Machine)。
书中各章可以以不同顺序讲述,某些章节可以跳过(参见后面的每章前提)。例如,第5章(数字逻辑电路)可以在第1章之后的任何时间讲述,或者跳过;第16章(Java虚拟机)可以在第7章之后的任何时间讲述,或者跳过。

读者对象
本书包括汇编语言与计算机体系结构,可作为一个学期的大学课程。然而,本书同样很适合仅讲述汇编语言或计算机体系结构的课程。因为对硬件和软件的均衡对待,本书适合计算机科学和工程这两个专业。本书还非常适合作为计算机科学专业研究生教学计划的第一门课程,尤其适合那些没有深厚计算机科学或工程背景的学生。

本书前提
尽管使用了C++和Java,但本书的惟一预备知识是C++或Java知识。开始的C++示例非常简单,慢慢才变得越来越复杂,而且都有详细的解释。这种对C++的细致处理,加上C++与Java的相似性,使本书完全适合只熟悉Java的学生。实际上,这样的学生将从本书获得额外好处:几乎不费力的C++入门。如果在某个课程密集的专业内没有C++的空间,则本书将使得在一门课程内包括C++、汇编语言和计算机体系结构成为可能。
尽管对C++的处理是柔和的,但本书仍将详细提供许多对C++的分析,并概述一些编程语言。例如,本书精确展示了对象的实现方法。即使对C++高度熟练的学生也能发现这部分内容的知识性和吸引力。
对于只熟悉C++的学生而言,关于Java的内容不应该有任何问题。第1章给出几个说明浮点误差的Java程序。第4章讨论了可能在Java程序内出现的大小端问题。第8章讨论了Java中的指针和数组。第9章讨论了Java中的布尔运算符。第11章为学生演示了如何用Java(或C++)实现汇编器和连接器。第13章讨论了与JVM有关的堆栈体系结构的某些分支。第16章全部致力于JVM的结构和操作。本书还包括大量同时适合Java和C++的一般材料。已经熟悉Java的学生将获得对该语言更深、更综合的理解。

补充内容
软件包、演讲幻灯片以及其他补充内容可以从Course Technology站点得到,网址是www.brookscole.com。包括问题答案、额外问题、微代码、汇编器和连接器的C++和Java源代码,以及教学建议和教师手册。
软件包运行在Microsoft Windows、Microsoft DOS、SPARC Solaris、X86 Linux和Macintosh OS X上面。对其他平台的支持正在考虑之中。该软件包包括模拟器/源级调试器/仿形器(sim)、汇编器(mas)、连接器(lin)、库程序(lib)、3个用来分析对象以及执行过程和库模块的程序(pic、mex和see)、水平微代码汇编器(has)、垂直微代码汇编器(vas)、伪代码加密器(enc)、几个实用程序、完整文档,以及所有书中的示例程序。sim、mas、has和vas都可以重新配置,以适应新的指令集。
sim支持大量用于跟踪或调试机器语言程序或微代码的命令。特别有用的一个功能是在逐条机器指令的基础上显示微级(microlevel)活动。利用该工具,学生可以清楚地看到与任何一条机器指令相对应的微级活动。
sim可以使用未加密或加密的微代码。该特点使学生可以使用,但不能分析软件包内的加密微代码。在不能参考作者版本的“不利”情况下,学生可以编写自己的版本。
所有软件都使用了简单的命令行界面。命令行界面完全可以满足软件包内的程序类型,而且最易于学习使用。另外,命令行界面不因平台不同而变化。所有程序都可以不带任何命令行参数地被调用(在这种情况下,程序提示输入参数)。因此,我们可以在图形用户界面中方便地通过图标调用它们。
关于使用软件包的指导在书中,这将使学习使用该软件更容易。学生再也不必费力浏览大量文档,而教师也不必再将课堂时间浪费在教学生使用软件上面。完整文档以文件形式包含在软件包中,以供需要的人使用。

每章的预备知识

每章摘要
第1章主要介绍数制。但是,本章没有包括关于进位和溢出标志位以及书中后面需要的关于有符号和无符号比较的某些难点。本章还使用了几个Java程序来说明可能随浮点数发生的各种计算误差。
第2章介绍了H1、机器语言和sim。
第3章介绍汇编语言、汇编器、汇编过程和顺序指令执行的机制。
第4章完成了对H1汇编语言基础的介绍。本章还讨论了可能在Java程序中出现的大小端问题。因为H1非常简单,所以第2~4章需要很少的课堂时间。
第5章介绍数字逻辑电路的基础,这是完整理解H1的内部组织所必需的。另外,本章还介绍了一些重要的电子学原理。第6章依赖本章,但只是最低限度的依赖。因此,如果教师能够在课堂上提供一些逻辑电路的说明,那么可以跳过本章。
第6章给出H1和V1(V1与H1类似,但却是垂直微编程的)的内部组织以及微编程的基本原理。本章以水平和垂直微代码实现了基本指令集,还讨论了硬接线控制。在只讲述汇编语言的课程中,可以跳过本章。
第7、8章是暴露标准指令集缺点的重要两章。通过分析编译器生成的代码,学生将形成良好指令集应该做什么的认识。这两章还给出对C++的有价值的剖析。
第9章在汇编器和C++的级别上,讲述了编程方面的若干高级主题。这些主题包括指向指针的指针、引用调用的潜在错误(是否以显式实现)、值结果调用和可变长变元列表。大多数教师都愿意至少讲述本章的一部分。但是,本章是可以跳过的。
第10章介绍加载和连接机制。本章使用pic、mex和see程序来简化对象、执行过程和库模块的分析,还在汇编器级别上分析了启动代码。
第11章介绍关于实现汇编器和连接器的指导。这两个编程项目此时提供给学生是恰当的。提供的指导适用于C++和Java实现。学生通常喜欢这些项目,并能从中学到很多知识。这些项目提供了宝贵的用Java进行系统编程的机会。大多数教师都将发现,本章需要非常少的课堂讨论。
第12章介绍了最优指令集,这是对标准指令集的改进,它修正了主要在第7、8章暴露的H1的缺点。
第13章测定了最优指令集在支持复杂编程实体和机制方面的表现,比如对象、虚函数和名调用。本章还以乘法为例,讨论了可以配置计算功能的不同级别——电路级、微级和机器级。本章介绍了H1的堆栈指令集,并将其与最优指令集进行比较;还提供了关于实现最优和堆栈指令集的指导(两个值得学生此时做的项目)。
第14章使用H1作为工具,解释了程序重定位的分支,并进一步研究了各种存储系统。这些主题包括分页、命令分页、相联存储器、中断、页布置策略、存储器保护、分段和高速缓冲存储器。
第15章使用SPARC和Pentium论述某些不适合用H1论述的重要主题(如RISC、流水线技术、代码优化)。
第16章以前面介绍C++和H1汇编语言时使用的相同方式介绍了Java和JVM(尽管是以更浓缩的形式)。

致谢
笔者在微级和机器级上对H1和V1的设计,是受到Miles Murdocca和Vincent Heuring所著《计算机体系结构原理》(PrenticeHall,2000)、Vincent Heuring和Harry Jordan所著《计算机系统设计和体系结构》(Addison Wesley Longman,1997),特别是Andrew Tanenbaum所著《结构化计算机组织,(第3版)》(PrenticeHall,1990)等书中类似模型的影响。
编辑过程中的审阅者可能会显著地帮助写成一本更好的书,本书的审阅者就属于这种情况。在手稿的大量修订过程中,他们的介入为笔者提供了必不可少的指导。感谢New Orleans大学的Mahdi Abdelguerfi、New Orleans大学的Ming Hsing Chiu、Western Washington大学的Annie Groeninger、Iona学院的Lubomir Ivanov,以及Georgia Perimeter学院的Gene Sheppard。
笔者还想感谢学生们对手稿早期版本的有益反馈,感谢Vassar学院的John Collier和Brian Chickery在Macintosh方面的帮助,感谢与笔者同系的Andy Pletch在Unix方面的专业知识,感谢Addie Haas的建议和鼓励,感谢Matrix印刷厂的Merrill Peterson协调本书的印刷,并感谢Brooks/Cole出版社的Kallie Swanson在该项目还不成熟时就认识到它的价值。

Anthony J. Dos Reis

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧