首页 理论教育常见汇编语言错误51单片机案例笔记

常见汇编语言错误51单片机案例笔记

【摘要】:5)标号后边遗漏“:”。例如:建议修改为9)字母I和数字1混淆。10)创造发明不存在的汇编语言指令。例如,主程序中设定了R4=5,表示主程序循环执行5次,而其中的一个延时子程序又用到R4,使R4的值发生紊乱,造成程序无法正常执行。编写汇编语言的忠告:要养成良好的程序书写习惯,如标号对齐、参数对齐、注释对齐,这样看起来赏心悦目,也不容易出错。

1)标号重复。常见于复制、粘贴程序时忘记修改标号,造成出现多个相同的标号,标号是不允许重复的。

2)标点符号以全角方式输入。汇编程序要求标点符号为半角方式,否则汇编失败。可以在输入:,;时切换到半角方式,或者在大写状态输入标点符号。这也是很容易犯而且不容易发觉的错误。

3)数值#FFH前遗漏0。根据要求应该在a~f前加0,写成#OFFH。

4)字母O和数字0混淆。

5)标号后边遗漏“:”。

6)标号使用了特殊字符。标号不能用指令助记符、伪指令、特殊功能寄存器名和8051在指令系统中用的“#”、“@”等,长度以2-6字符为宜,第一字母必须是英文字母。例如,Tl、T2、A、B这些字符有特定的含义,不允许用于标号。

7)AJMP跳转超过2KB地址。AJMP属于短跳转命令,有2KB地址范围的限制。

8)超过地址范围。JB P3.2,EXIT跳转超过128--127个地址范围。例如:(www.chuimin.cn)

建议修改为

9)字母I和数字1混淆。

10)创造发明不存在的汇编语言指令。这种指令汇编程序不支持,芯片也不认可。

11)寄存器重复调用。例如,主程序中设定了R4=5,表示主程序循环执行5次,而其中的一个延时子程序又用到R4,使R4的值发生紊乱,造成程序无法正常执行。

12)硬件不熟悉。单片机一般采用下拉输出,往往端口输出0驱动外设工作,和常见的正逻辑相反,容易搞错。

编写汇编语言的忠告:

要养成良好的程序书写习惯,如标号对齐、参数对齐、注释对齐,这样看起来赏心悦目,也不容易出错。标号最好采用有意义的英文,这样比较直观,注释尽量详细准确,便于以后读懂,而且有利于其他程序中作为子程序模块的调用。还有要注意典型程序模块的积累,再复杂的程序也是由一个个小程序模块组成的,在初学阶段可以对典型程序如延时子程序、查表子程序、按键消抖子程序等编写实践一次,这样印象深刻,便于以后引用。