[英]Comparing R0 with R1 using assembly (Keil)
我有两个值存储在R0
和R1
。 我将两者进行如下比较:
MOV R3, #(R0 XOR R1)
CJNE R3,#0,NOT_EQUAL
显然,不可能以这种方式使用XOR运算符。 还有另一种比较R0
和R1
并检查它们是否相等的方法吗?
由于要在运行时执行XOR
,因此必须使用说明来完成。 不幸的是, XRL
指令仅对A
寄存器XRL
,因此您可能必须进行一些重新排列。 假设A
不可用,但R3
可用,则可以执行以下操作:
MOV R3, A ; save A to R3
MOV A, R0
XRL A, R1
XCH A, R3 ; restore A and put the result into R3
CJNE R3, #0, NOT_EQUAL
如果A
可用,则可以使用CJNE
接受内存操作数,而知道寄存器是内存映射的:
MOV A, R0
CJNE A, 1, NOT_EQUAL ; 1 is the bank0 address of R1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.