我写这些的目的是想让这本书更完美,让我推荐它的时候不再犹豫。一本好书应该是经的起推敲。
其实如果大家真的认真看书并动脑去想的话,我想大家也能发现这些问题。引一句古语:“尽信书不如无书。”
语句1,P4最后一行:CPU要从内存中读数据,首先要指定存储单元的地址。
语句2:P7第5行:16根数据总线一次可传送2个字节。
语句3,P18最后一行:在8086内部,能够一次性处理、传输、暂时存储的信息的最大长度是16位的。
语句4:P24第4行:8086机中,任意时刻,CPU将CS:IP的指向的内容当作指令执行。
PS:我怎么就看这句中的“任意时刻”不爽,你可知CALL和JMP指令。
语句5:P26第2行:图2.15中发生的变化是从内存20000H单元开始存放的机器指令B8 23 01 通过数据总线被送入CPU。
PS:它怎么知道要传3个字节?3个字节一次能传完么?那传第二次时是哪来的地址啊?(参见语句1)网上有人说指令的首字节包含着指令的长度所以CPU知道指令的长度,我真想拿刀砍他,照他的理论CPU每次要先读一个字节并通过这个字节算出指令的长度,然后再去跟据长度再读指令或读指令后面的数据。。。。。就算我不砍他,CPU的设计者也得拿刀砍他。而事实上这样的才子网上真的很多,这么会自圆真说,那干嘛还要来搞底层啊,也不怕后人耻笑。
语句6:P26:图2.16中有了进一步的变化,输入输出控制电路将机器指令B8 23 01 送入指令缓冲器。
PS:哇,3个字节,8086存得下么?(参见语句3)
语句7:P27首行:图2.17中所示为读取一条指令后,IP的值自动增加,以使CPU可以读取下一条指令。因当前读入的指令 B8 23 01 长度为3个字节,所以IP中的值加3。此时,CS:IP指向内存单元2000:0003。
PS:看到这我明白了,书中的CPU是王老师设计的。
后面的错误我就不一一例举了,如果你想反驳我,那我很高兴,但请不要用那些自欺欺人的字句,因为它们经不起推敲,我希望你能用强而有力的事实依据说话,这样才能让人们信服。 |