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