1. 问题:ACC 和A 有什么区别?例如:ADD A,ACC
问题分析处理:在这里A和ACC值得都是累加器ACC(E0H),只不过A为寄存器寻址,而ACC为直接寻址代表E0H,因为汇编指令里没有ADD A,A;而有ADD A,dir,所以就会有MOV A,ACC !于2008年9月28日星期日解决
寄存器寻址与直接寻址的区别:
直接寻址是操作数所在的字节地址(占用一个字节)出现在指令码中,寄存器寻址是寄存器编码出现在指令码中。由于使用寄存器寻址的寄存器少,编码位数少(少于三位二进制数),通常操作码和寄存器编码合用一个字节,因此寄存器寻址的指令机器码短,执行快。通用寄存器包括:A,B,DPTR,R0~R7。其中B寄存器仅在乘,除法指令中为寄存器寻址,其他指令中为直接寻址。MOV A,B;MOV B,A;ADD A,B;中B均为直接寻址。
除上面所指出的几个寄存器外,其他特殊功能寄存器一律为直接寻址。
2. 问题:公司新买的MCU AT89s52 在用TOP851 烧录过程中总是出现问题,描述如下:
(1)检查空为No Blank ,无法写入代码,读取后缓存中有代码存在
(2)检查空为 Blank,烧写完后,Verify 出错,再次擦除,在检查空为 No Blank ,无法写入代码,读取后缓存中有代码存在。
问题分析:查资料《8051单片机彻底研究基础篇》人民邮电出版,林申茂编著 P301
刻录中出现任何问题,只有以下两种情况:
(1)非空白芯片(The chip is NOT blank)代表刻录器的刻录电压不足,或是芯片损毁
(2)数据查证错误(Verify FAIL)代表芯片本身是锁码芯片,在Erase过程中因为刻录电压不足,导致无法清除锁码数据,到了数据查证时便发生错误信息;另一个可能就是损毁的芯片本身就是空白的,但是损毁的地址无法将数据写入,造成查证错误。
分析处理:经尝试择日在烧录即发现有的IC又可以写入,再用ISP方式写入代码,剩下的所谓不良IC全部写入成功,说明异常原因为我的TOP851烧录器擦除电压不够以及烧录电压不够造成部分地址无法写入,和擦除不干净。之后用ISP方式即可解决此问题!