书评 IBM PC汇编语言程序设计(第5版)

时间:2022-02-05 01:28:35
这本书是北京邮电出版社出版的,作者是Peter Abel

沈美明 温冬蝉 翻译的.

    这本书非常适合初学者或者打算学的人,也许是因为

这本书是"国外著名高等院校信息科学与技术优秀教材".

本书的特点就是很注重实际操作,实际上计算机语言就应

该是一种控制操作技能,而不应当是考试题目所考察的

诸如"什么可以什么不可以".本书例子的特色就是完整例

子都有编译生成的lst文件附注在旁,看起来很方便.汇编

语言上的差别最终是要体现在机器码上.比如jmp far/near

的就对应了不同的机器码.书中例子注释也是很详细的,

阅读方便.在第二部分"汇编语言的基础知识"部分,详细介绍

汇编 连接 与执行,在第三章,介绍了debug程序的使用.

充分体现实际应用这一个出发点.相比之下,国内一些教材,

在实际应用上讲述甚少.

    但是,这本书有很多莫名其妙的错误,比如第3页:

"字节 一组9个相关的位称为字节";再比如,181页的10-2

程序,是一个带阴影的菜单程序.其中有定义 ".stack 64"

如果64是十六进制的话,64h个byte是足够的,但是masm 611

会按照十进制处理,就会导致溢出,98下就是执行非法操作

需要关闭,这样的错误对于刚刚接触汇编语言的人来说是

根本不可能修正的.

    因此,最后的建议是,如果有机会看这本书,就不要买

了,因为这本书是很容易看明白地~

15 个解决方案

#1


谢谢

#2


"1组9个相关的位称为字节",这句话其实没有错,多出来的1位用于硬件的奇偶校验,对于程序员来说只有8位可见而已

#3


"1组9个相关的位称为字节",又看了一遍,恍然大悟,我错了.

有1位是机器自动填充的.

#4



以前买了一本IBM PC的汇编教材,看了N年都不懂.中国出的.黄色书皮的那本.

#5


沈美明、温冬婵总算作了一件好事!将这本书翻译出来,相信她们的翻译水准。
她们自己写的《IBM PC汇编语言程序设计》一书多年来不知道害惨了多少自学汇编语言的人,我就是其中一名受害者。

#6


我也是啊

#7


哈哈,还好我及早转向黑皮了,否则我也会被害惨啦~

#8


?
个人感觉黄皮的不差啊
几乎是那时最好的了,偶学的时候教材比黄皮的还差

#9


以前买了一本IBM PC的汇编教材,看了N年都不懂.中国出的.黄色书皮的那本.

  我也有这本书,真的是好难啊,不过里面的细节讲的不错,关于那些伪指令讲的比沈美明 温冬蝉 好多了

#10


汗!你们指的黄皮的是不是<IBM PC宏汇编语言程序设计> 印刷了十几次那本?
那本应该不错吧
没啥看不懂的啊

#11


回复Areslee(易水) 
你说“没啥看不懂”?
如果你是自学者,在没有任何人可问(包括参考其他书籍、问网友及其写的文章)的情况下能参透沈美明、温冬婵自己写的《IBM PC汇编语言程序设计》,那你真是神了。打个比方说,我随便画个符号问你什么意思,你如果知道那你真是神仙了。我为什么打这样的比方呢?因为沈美明、温冬婵自己写的《IBM PC汇编语言程序设计》里有很多很多汇编语言方面的概念,这些概念并不是其他科的概念,就是汇编语言这一科目的概念,可是沈美明、温冬婵在书中很少告诉读者这些概念是什么意思。任何一门科学知识的基础都是若干个概念,学习的第一步就是要知道这个概念“是什么意思”,就是首先要解决“这是什么”的问题。请问,你连这个东西“是什么”都不知道,那怎么学呀?沈美明、温冬婵自己写的《IBM PC汇编语言程序设计》最大的弊端就是不能很好的解决“告诉读者这是什么”,所以书中大量、频繁地出现某个概念,但却找不到解释这个概念“是什么意思”、“怎么用”、“有什么规定”。这是很不负责任的行为,我给你交了几十块的学费你却不肯告诉我这是什么,通篇都是天书,为了弄懂某个简简单单、一两句话就能解释清楚的概念而去图书馆拼命查找。
比如,我照着书作“MOV AX,[100H]”的实验(数据段的100H处的字单元的内容是4000H),用MASM 5.0编译,谁知道我在AX中看到的竟然是100H,而不是我所要得4000H,真他妈的莫名其妙,后来经过千辛万苦的查找别的资料,才知道MASM将"MOV AX,[100H]"当作“MOV AX,100H”处理,要访问数据段的100H处的字单元的内容,必须写成“MOV AX,DS:[100H]”。如果书中附带一两句话来解释一下不就省去我很多功夫吗?
再举个例子,书中大量使用“位移量”这一概念,却不告诉你位移量是什么意思及其在源程序中的使用规则。“位移量”是汇编语言中寻址方式方面的非常重要的概念,它不同于偏移量,该如何在源程序中应用“位移量”这个概念?它在源程序中的具体表示形式是怎样?(比如它能用立即数、寄存器、存储器等等来表示吗?)书中没有解释。事实上,位移量是一个带符号整数,而偏移量是无符号整数,位移量在机器码中是以补码形式储存的,而偏移量却不是,位移量在机器码中是一个地址差值,而在源程序中却有好几种的表示形式,特别是跳转指令中,你表面看源程序中的操作数是跳转地址,而经过编译后,机器码中的操作数部分却是一个位移量(地址差值),从而让人明白跳转指令的寻址结果不是目的地址,而是源地址跟目的地址之间的距离,简单点讲,跳转指令需要的操作数不是目的地址,而是一个地址差值。

#12


那就不好意思了,本人自学汇编是在初三,而且用的的教材比温、沈的更差,而且从来就没有从本人自学以来就没有老师,我是硬啃了一个学期才看懂的,到高一买了本黄皮的才郁闷死。如果我看的是黄皮的可能不用啃一学期就学会了。
自学汇编不能象上课那样一个章节一个章节的硬看,你得跳过不懂的东西,到后面自然就懂了,就象张无忌学乾坤大挪移那样,明白吗
另:我学汇编是在1993年,那时能有多少书可供参考你自己想想吧

#13


的确,学习汇编要暂时跳过不懂的东西,只要不是急着去考试什么的,以后也会懂的。也许本人在这方面太过于钻牛角尖了,这也是我不用应付考试的坏处,本着慢慢研究的目的慢慢学习。

#14


请问在哪可以下载此书呢?

#15


当地新华书店,下载费用在30元RMB上下

#1


谢谢

#2


"1组9个相关的位称为字节",这句话其实没有错,多出来的1位用于硬件的奇偶校验,对于程序员来说只有8位可见而已

#3


"1组9个相关的位称为字节",又看了一遍,恍然大悟,我错了.

有1位是机器自动填充的.

#4



以前买了一本IBM PC的汇编教材,看了N年都不懂.中国出的.黄色书皮的那本.

#5


沈美明、温冬婵总算作了一件好事!将这本书翻译出来,相信她们的翻译水准。
她们自己写的《IBM PC汇编语言程序设计》一书多年来不知道害惨了多少自学汇编语言的人,我就是其中一名受害者。

#6


我也是啊

#7


哈哈,还好我及早转向黑皮了,否则我也会被害惨啦~

#8


?
个人感觉黄皮的不差啊
几乎是那时最好的了,偶学的时候教材比黄皮的还差

#9


以前买了一本IBM PC的汇编教材,看了N年都不懂.中国出的.黄色书皮的那本.

  我也有这本书,真的是好难啊,不过里面的细节讲的不错,关于那些伪指令讲的比沈美明 温冬蝉 好多了

#10


汗!你们指的黄皮的是不是<IBM PC宏汇编语言程序设计> 印刷了十几次那本?
那本应该不错吧
没啥看不懂的啊

#11


回复Areslee(易水) 
你说“没啥看不懂”?
如果你是自学者,在没有任何人可问(包括参考其他书籍、问网友及其写的文章)的情况下能参透沈美明、温冬婵自己写的《IBM PC汇编语言程序设计》,那你真是神了。打个比方说,我随便画个符号问你什么意思,你如果知道那你真是神仙了。我为什么打这样的比方呢?因为沈美明、温冬婵自己写的《IBM PC汇编语言程序设计》里有很多很多汇编语言方面的概念,这些概念并不是其他科的概念,就是汇编语言这一科目的概念,可是沈美明、温冬婵在书中很少告诉读者这些概念是什么意思。任何一门科学知识的基础都是若干个概念,学习的第一步就是要知道这个概念“是什么意思”,就是首先要解决“这是什么”的问题。请问,你连这个东西“是什么”都不知道,那怎么学呀?沈美明、温冬婵自己写的《IBM PC汇编语言程序设计》最大的弊端就是不能很好的解决“告诉读者这是什么”,所以书中大量、频繁地出现某个概念,但却找不到解释这个概念“是什么意思”、“怎么用”、“有什么规定”。这是很不负责任的行为,我给你交了几十块的学费你却不肯告诉我这是什么,通篇都是天书,为了弄懂某个简简单单、一两句话就能解释清楚的概念而去图书馆拼命查找。
比如,我照着书作“MOV AX,[100H]”的实验(数据段的100H处的字单元的内容是4000H),用MASM 5.0编译,谁知道我在AX中看到的竟然是100H,而不是我所要得4000H,真他妈的莫名其妙,后来经过千辛万苦的查找别的资料,才知道MASM将"MOV AX,[100H]"当作“MOV AX,100H”处理,要访问数据段的100H处的字单元的内容,必须写成“MOV AX,DS:[100H]”。如果书中附带一两句话来解释一下不就省去我很多功夫吗?
再举个例子,书中大量使用“位移量”这一概念,却不告诉你位移量是什么意思及其在源程序中的使用规则。“位移量”是汇编语言中寻址方式方面的非常重要的概念,它不同于偏移量,该如何在源程序中应用“位移量”这个概念?它在源程序中的具体表示形式是怎样?(比如它能用立即数、寄存器、存储器等等来表示吗?)书中没有解释。事实上,位移量是一个带符号整数,而偏移量是无符号整数,位移量在机器码中是以补码形式储存的,而偏移量却不是,位移量在机器码中是一个地址差值,而在源程序中却有好几种的表示形式,特别是跳转指令中,你表面看源程序中的操作数是跳转地址,而经过编译后,机器码中的操作数部分却是一个位移量(地址差值),从而让人明白跳转指令的寻址结果不是目的地址,而是源地址跟目的地址之间的距离,简单点讲,跳转指令需要的操作数不是目的地址,而是一个地址差值。

#12


那就不好意思了,本人自学汇编是在初三,而且用的的教材比温、沈的更差,而且从来就没有从本人自学以来就没有老师,我是硬啃了一个学期才看懂的,到高一买了本黄皮的才郁闷死。如果我看的是黄皮的可能不用啃一学期就学会了。
自学汇编不能象上课那样一个章节一个章节的硬看,你得跳过不懂的东西,到后面自然就懂了,就象张无忌学乾坤大挪移那样,明白吗
另:我学汇编是在1993年,那时能有多少书可供参考你自己想想吧

#13


的确,学习汇编要暂时跳过不懂的东西,只要不是急着去考试什么的,以后也会懂的。也许本人在这方面太过于钻牛角尖了,这也是我不用应付考试的坏处,本着慢慢研究的目的慢慢学习。

#14


请问在哪可以下载此书呢?

#15


当地新华书店,下载费用在30元RMB上下

#16