如何用汇编语言实现单片机比较转移

来源:百度知道 编辑:UC知道 时间:2024/05/15 09:03:44
例如:当累加器A中数大于0小于等于10时,执行程序1
当累加器A中数大于10小于等于20时,执行程序2
当累加器A中数大于20小于等于30时,执行程序3
以此类推
一定要用汇编语言哦,谢谢了

pan: clr cy
mov 30h,a
subb a,#10
jb cy,prog1
mov a,30h
clr cy
subb a,#20
jb cy,prog2
mov a,30h
clr cy
subb a,#30
jb cy,prog3
.....

prog1: nop
..
prog2: nop
..
prog3: nop
..

用CJNE指令加查询标志位C就可以了。
CJNE比较结果影响C的状态

;30h存放被测数

mov a,30h
jz goto0;为0转处理0的程序,或返回

cjne a,#11,k1;检测A>11吗?
k1:jc goto1 ;有借位就是小于,就是1-10了,转相应处理程序.

cjne a,#21,k2;检测A>21吗?
k2:jc goto2

cjne a,#31,k3;检测A>31吗?
k3:jc goto3
......

如此类推