我在R0
和R1
中存储了两个值。我将两者比较如下:
MOV R3, #(R0 XOR R1)
CJNE R3,#0,NOT_EQUAL
显然不可能以这种方式使用XOR OPERATOR。
是否有另一种方法可以将R0
与R1
进行比较,并检查它们是否相同?
答案 0 :(得分:1)
由于您希望在运行时执行XOR
,因此您必须使用指令来完成此操作。不幸的是,XRL
指令仅在A
寄存器上运行,因此您可能需要进行一些重新排列。假设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