1个回答
展开全部
单片机中 没有相等就跳转的指令
其实,CJNE实际上也实现了相等跳转的功能的:
CJNE A,#DATA,rel ;如果不等跳到rel
指令A ;如果等就执行下一条指令 指令A
...
rel:指令B
...
假如有一条相等就跳转的指令CJE(实际上没有)
CJE A,#DATA,rel ;相等跳到rel
指令B ;不等跳到指令B
...
rel:指令A
...
上面两个功能完全一样,所以没必要加一条相等就跳转的指令CJE 。
相等跳转可以用:
1:CJNE
2:一楼的 两数相减,为0则相等。但CMP比较指令是微机的
单片机没有此指令,用SUBB的话原数被改变,要先保护。
3:两数异或
XRL A,#DATA
JZ rel ;结果为0跳到rel
用2/3的话注意:要用到A
JZ rel ; A中的数为0,跳转到rel.
其实,CJNE实际上也实现了相等跳转的功能的:
CJNE A,#DATA,rel ;如果不等跳到rel
指令A ;如果等就执行下一条指令 指令A
...
rel:指令B
...
假如有一条相等就跳转的指令CJE(实际上没有)
CJE A,#DATA,rel ;相等跳到rel
指令B ;不等跳到指令B
...
rel:指令A
...
上面两个功能完全一样,所以没必要加一条相等就跳转的指令CJE 。
相等跳转可以用:
1:CJNE
2:一楼的 两数相减,为0则相等。但CMP比较指令是微机的
单片机没有此指令,用SUBB的话原数被改变,要先保护。
3:两数异或
XRL A,#DATA
JZ rel ;结果为0跳到rel
用2/3的话注意:要用到A
JZ rel ; A中的数为0,跳转到rel.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询