编写一个程序段判断寄存器R5中的数据是否为12、18、22、29、45或67如果是则将RO中的数据加1否则将RO设置为OxF并把这个程序段定义成一个代码段。
代码段如下:
check_data:
CMP R5, #12 ; 比较R5是否等于12
BEQ increment ; 如果相等就跳转到increment
CMP R5, #18 ; 比较R5是否等于18
BEQ increment ; 如果相等就跳转到increment
CMP R5, #22 ; 比较R5是否等于22
BEQ increment ; 如果相等就跳转到increment
CMP R5, #29 ; 比较R5是否等于29
BEQ increment ; 如果相等就跳转到increment
CMP R5, #45 ; 比较R5是否等于45
BEQ increment ; 如果相等就跳转到increment
CMP R5, #67 ; 比较R5是否等于67
BEQ increment ; 如果相等就跳转到increment
MOV RO, #0xF ; 如果不相等就将RO设置为0xF
B done ; 跳转到done
increment:
ADD RO, RO, #1 ; 如果相等就将RO加1
done:
; 代码段结束
该代码段首先使用CMP指令比较R5的值是否等于12、18、22、29、45或67,如果是,则跳转到increment标签处,将RO加1;如果不是,则将RO设置为0xF,并跳转到done标签处结束
原文地址: https://www.cveoy.top/t/topic/eLFM 著作权归作者所有。请勿转载和采集!