![](https://csdnimg.cn/release/download_crawler_static/86828953/bg10.jpg)
可以大大减少程序的总容量,提高效率,节省空间;
注意
:
不能用
INC(
增
1)
指令
,
因为
,
该指令不影响标志位
C
。
2
确定算法
程序中已假定,标号均用伪指令定义了具体地址。
INC R0
例
4
:将
A
中二进制数转换成
3
位压缩
BCD
码数,百位数放
MH
单元中,十位、个位数放在
ML
中。
ORL C, TF0
;
MOV A, 55H
ORG 0000H
指令
“MOVC A
,
@A+DPTR”
应用范围较广,使用该指令时不必计算偏移量,优点是表格可以设在
64KB
程序存储器空间内的任何地方
,而不像
“MOVC A
,
@A+PC”
那样只设在
PC
下面的
256
个单元中,所以使用较方便。
重复上面做法
,
直到
10
个数比较完。
SJMP $
;
设测得电压值
x
放入
R2R3
中,根据电压值
x
,查找对应的温度值
y
,仍放入
R2R3
中。
RLC A
乘数的高字节已在
R5
中,低字节已在
R4
中。
相应的程序如下:
ORG0000H
MOVP2,#00H;送地址高位至P2口
MOVR0,#0EH;R0=0EH
MOVR1,#0FH;R1=0FH
MOVXA,@R0;A=(000EH),即(000EH)中的数据送到A中
MOV20H,A;(20)=(000EH),即(000EH)中的数据送到20H中
MOVXA,@R1;A=(000FH),即(000FH)中的数据送到A中
XCHA,20H;(20H)�A,使得A=(000EH),(20H)=(000FH)
MOVX@R1,A;A=(000EH)�(000FH),(000EH)中的数据送到(000FH)中
MOVA,20H;A=(000FH)。(000FH)中的数据送到A中
MOVX@R0,A;A=(000FH)�(000EH),送回变换后的数据
SJMP$;$表示本指令首地址,跳转到本指令开始处,即原地循环,
;实现动态停机
END