单片机汇编程序设计
时间:2015-09-22 10:37 来源:自动控制网
1. 简单程序设计 简单程序又称顺序程序。这种程序的形式最简单,计算机执行程序的方式是“从头到尾”,逐条执行指令语句,直到程序结束,除非用特殊指令让它跳转,不然它会在PC控制下执行。这是程序的最基本形式,任何程序都离不开这种形式。 例1:编写1+2的程序 ORG 0000H MOV 30H, #02 MOV A, #01 ADD A, 30H END 2. 分支程序设计 在处理实际事务中,只用简单程序设计的方法是不够的。因为大部分程序总包含有判断、比较等情况,这就需要分支程序。分支程序是利用条件转移指令,使程序执行到某一指令后,根据条件(即上面运行的情况)是否满足,来改变程序执行的持续。下面举两个分支程序的例子。 例2:求单字节有符号二进制数的补码。 ORG 0000H CMPT:JNB ACC.7, NCH ; (A)>0,不需转换。 CPL A ADD A, #1 SETB ACC.7 ; 保存符号。 NCH:RET END 3. 循环程序设计 在程序设计中,有时会遇到多次重复处理的问题,这就需要下面讲的循环程序来完成。循环程序是强制CPU重复执行某一指令系列(程序段)的一种程序结构形式,凡是要重复执行的程序段都可以按循环结构设计。 循环程序一般由五部分组成: (1)初始化部分:为循环程序做准备。如:设置循环次数计数器的初值,地址指针置初值,为循环变量赋初值等。 (2)处理部分:为反复执行的程序段,是循环程序的实体。 (3)修改部分:每执行一次循环体后,对指针作一次修改,使指针指向下一数据所在位置,为进入下一轮处理做准备。 (4)控制部分:根据循环次数计数器的状态或循环条件,检查循环是否能继续进行,若循环次数到或循环条件不满足,应控制退出循环,否则继续循环。 通常2、3、4部分又称为循环体。 (5)结束部分:分析及存放执行结果。 例如:设有50个外部RAM单元要清“0”,即为循环次数存放在R2寄存器中,其首址存放在DPTR中,设为2000H。 程序如下: ORG 0000H MOV DPTR, #2000H CLEAR: CLR A MOV R2, #32H ; 置计数值。 LOOP: MOVX @DPTR, A INC DPTR ; 修改地址指针 DJNZ R2, LOOP ; 控制循环 END |