◇◇新语丝(www.xys.org)(xys.dxiong.com)(xys.3322.org)(xys.xlogit.com)◇◇ “十年磨一书”,再评那本错误百出,越改越错的“高等学校通用教材” HammerRed   细心的读者一定会注意到,我在文章《一本错误百出,越改越错的“高等学 校通用教材”》中讨论的李广第,朱月秀和王秀山编著的《单片机基础》(北京 航空航天大学出版社出版),前后历经了十多年:从1994年第一版,到2005年, 至少印了13次。其实,该书目前还在不断印刷、推广和使用中。   古人有“十年磨一剑”的故事。该故事揭示了一个磨剑人对完美的追求,为 了追求最高的品质,在十年中始终在琢磨他的剑,而不卖出或换取利益,最终磨 成了宝剑。   而李广第与北航出版社,十年前就将锈迹斑斑的《单片机基础》草草出版发 行,在不断获得利益的同时,也不时试图磨去这本书中的锈迹,也可称为“十年 磨一书”了。可惜的是,十年的修行却没有提高多少水平,十年磨锈迹却始终难 以磨尽。至今,这本书仍是锈迹斑斑。   不妨再举几个延至今日,仍在犯非常低级错误的例子:   1. 2005年的12次印刷版69页第10行有示例程序与注释: ... ORL P1,#03H ;将P1.0和P1.1置“1”,准备输入信号 MOV A,P1.0 ;输入信号A MOV B,P1.1 ;输入信号B ...   这个“程序”极其荒唐!荒唐之处在于,它即存在语法错误,也存在语意错 误,根本就无法通过汇编,更不可能正确执行。   其一,两条MOV指令的语法错误为:A和B寄存器都是8位的,而P1.0和P1.1都 是1位的,指令不允许进行这类不相容的赋值,这是语法错;   其二,计算机不知道如何才能将1位的引脚读入值赋给8位的寄存器,这是语 意错。   我的刚学完单片机的学生都知道,传送类指令的源与的操作数必须满足相容 性原则,而出书至少10年以上的李广第却搞不懂。   2. 2005年的12次印刷版45页倒数第6行,认定地址从0000H(0)到0100H (256),总共有256个单元!   会一点算术的都会知道,从0到256,总共有257个单元,而不是256个!小学 的算术应当翻出来复习后再写书吧。   3. 再举一个十年不断出错,不断修改,却怎么也改不好的例子:   1994年版148页,原例题说明与程序如下(略去注释): [应用举例]把内部RAM中起始地址为data的数据串送到外部RAM以buffer为首地址 的区域,直到发现“$”字符的ASCII码为止。同时规定数据串的最大长度为32个 字节。 MOV R0,#DATA MOV DPTR,#BUFFER MOV R1,#20H LOOP: MOV A,@R0 SUBB A,#24H JZ LOOP INC DPTR INC R0 MOVX @DPTR,A DJNZ R1,LOOP LOOP1: RET   这个程序有很多错误,最严重的错误是:传送的数据都减去数24H即“$”与 C,使得传送的数据受到了破坏,根本不可能正确传送!   其它错误还有:   JZ LOOP应当改为JZ LOOP1;   带借位减之前少了CLR C指令,有可能多减了1;   INC DPTR不应当放在MOVX @DPTR,A之前,等。   经过7年的磨锈,2001年的第2版第89页到第90页,相同的例题,程序进行了 更改: MOV R0,#DATA MOV DPTR,#BUFFER MOV R1,#20H LOOP: MOV A,@R0 SUBB A,#24H JZ LOOP1 ;这条指令改了 INC DPTR INC R0 MOVX @DPTR,A DJNZ R1,LOOP LOOP1: RET   最严重的错误与另外两个错误依旧没有发现,没有更改!   经过10年的磨锈,2005年的第2版第12次印刷,第89页到第90页,相同的例 题,程序再次进行更改: MOV R0,#DATA MOV DPTR,#BUFFER MOV R1,#20H LOOP: MOV A,@R0 SUBB A,#24H ;将待传数据修改了,仍未清C! JZ LOOP1 MOVX @DPTR,A INC DPTR ;将这条指令改对了位置 INC R0 DJNZ R1,LOOP LOOP1: RET   改来改去,最严重的两个错误依旧,传送的数据先被修改,然后再传送,不 可能正确传送了!   书中有太多的错误,太多的不断修改却怎么也改不好的例子,真是一本奇书!   十年可以给人和社会带来多少改变,十年的科技与技术有多大的发展!   可是,十年给李广第带来了多大变化呢?从李广第的《单片机基础》来看, 这十年来除了出书给他带来的利益之外,在学术上看来没有什么实质性的的提高, 否则不会一而再,再而三地改错,却始终无法将书改好。   看到他目前的水平尚如此低下,可以想见十多年前出书时的水平是什么状况 了。由此,我倒是非常佩服该老兄敢于写书,敢于出书,而且敢于十多年,历经 多版和十几次地不断重印,给我的学生提供了难得的“好教材”,谢谢噢!   胆大而脸皮厚,这种现象在中国不是少数。   到底是什么样的人,一方面水平如此低下,另一方面胆量又如此大呢?我认 为,最可能的答案是:这很可能是中国高校的部分教师。   目前高校教给学生的知识很多与实际相脱离,有不少教师根本没有科研与应 用的实践,因此对所教知识的正确性、适用性、局限性不甚了解,无法了解。就 象李广第的书,MCS-51的单片机程序是从0000H还是从8000H开始运行,外部中断 0从0003H还是从8003H开始执行等等   基本问题都没有搞清楚,写的“程序”也不必经过汇编,更不用经过实践和 应用的考验,就可以堂而皇之地写到书上,还出版,还再版,还印了十几次!   对高校教师来说,我教学生什么,就考学生什么。教你1+1=3,考试时, 你按照我教的1+1=3,就可以得满分。至于1+1到底等于多少,1+1在实际应 用中到底起到什么作用,学生学了1+1=3之后对他的将来有什么害处,就管不着 了!工资照拿,职称照评,薪水照提。   高校教师的这种情况怎么改变?能通过“本科教学评估”来改变吗?我很悲 观!   目前看到的是,“本科教学评估”注重形式,逼人作假,有水平的教师都感 到很压抑。   对李广第,在评估中,会查出因为教科书水平低下错误百出而受到批评,还 是会因为连续十年不断再版和重印受到表彰,将是检验评估效果和作用的尺子之 一。结果如何,让我们拭目以待。 (XYS20070707) ◇◇新语丝(www.xys.org)(xys.dxiong.com)(xys.3322.org)(xys.xlogit.com)◇◇