[英]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.