常量命名规则
1. 常量的名称要采用有意义的英文单词大写缩写。
2. 常量要定义在“.CONST“ 段中。
3. 在定义部分要加入注释来说明常量含义。
4. 常量标识符的长度不超过16个字符。
5. 系统寄存器中常用到的某些位可以再额外进行定义,但要有意义:
P_key1 EQU P1.0 ;P_ 打头表示为Port 定义
Pm_key1 EQU P1m.0 ;Pm_打头表示为Port 方向定义
标号命名规则
1. 标号的名称要采用有意义的英文单词小写缩写。
2. 子程序标号定义。在同一个子程序中,所有的标号应该有规律可寻。建议第一个标号为
子程序名,下面所用到的标号用子程序名添加数字表示,从而便于今后程序的添加和修改。
数字尽量使用两位数,在子程序的退出位置,数字一般为”90”。
例如:
在一段按键扫描程序中,如下的标号是不可取的。
Label:
LabelOK
LabelFail
LabelQuit
Labelfun:
LabelEnd:
Ret
(设计师要花许多精神命名label, 同时不容易看出子程序的结构关西, 所以建议在子程序
里面别在花精神命名, 都用号码表示)(详细的动作都用注解来说明)
应该改为:
;***************************************************
; Sub-routine , Name : label
;***************************************************
Label:
If the condition fail then go to Label90
; program begin here
Label10:
; 注解都写在这里
Label20:
; 最后结尾结束的label 都用90 当做结尾
: 有助于程序的阅读
Label90:
Ret
3. 为了使程序的结构更加清晰,子程序的命名要尽量能显示出相互间的调用关系。
由main 主循环中直接调用的程序,要以“mn_” 作为标号的开头,下面仅列出一些常用的
子程序名称,其它类似情况可同样处理。
mn_app ;系统应用程序
mn_intgnd ;中断与主程序之间的界面子程序
mn_key ;按键扫描子程序
mn_lcd ;LCD 显示子程序
mn_led ;LED 显示子程序
mn_tone ;声音处理子程序
mn_epp EEPROM 读写操作
mn_bio ;基本输入/输出控制
mn_adc ;ADC 输入及处理
mn_debug ;debug 处理程序
4. 程序的几个常用入口地址命名如下:
复位入口: reset
中断入口: isr
主程序入口:main
例如:
org 0
jmp reset
org 8
jmp sr ;ISR(Interrupt Service Routine)
org 10
;有效程序开始地址
reset:
….
;进入主程序前的一些准备工作(预处理)
premain:
….
;主程序循环圈
main:
…
Jmp main
文件名命名规则
1. 在一个项目中要包括两种文件:源文件和头文件。源文件是程序体,扩展名为”.asm”,
头文件包括了变量、常量、宏命令的定义,扩展名为”.inc”。
2. 头文件的命名
头文件用三个不同的文件来分别定义常量、变量、宏命令,其命名方法如下:
常量定义文件: xxx_equ.inc
变量定义文件: xxx_ram.inc
宏命令定义文件:xxx_macro.inc
其中,xxx 表示项目的名称。
例如:
作一个电话机的完整程序,头文件可如下定义:
常量定义文件: phone_equ.inc
变量定义文件: phone_ram.inc
宏命令定义文件:phone_macro.inc
3. 源文件分为主文件、子文件。主文件包括了项目的主程序,它描述了芯片信息、CODE
OPTION 信息及项目包含的其它子文件模块。子文件是由各个子程序模块组成,功能相近
的子程序要放在一个文件中,文件名可以用“项目名+模块功能的缩写+扩展名”表示。下面
列举一些常用的文件名:
主程序文件: xxx_main.asm
常用的子文件定义:
中断服务程序模块: xxx_int.asm
进程处理模块: xxx_pro.asm
系统处理程序: xxx_sys.asm
按键处理模块: xxx_key.asm
LCD 显示模块: xxx_lcd.asm
其中,xxx 表示项目的名称。