簡體   English   中英

使用程序集(Keil)比較R0與R1

[英]Comparing R0 with R1 using assembly (Keil)

我有兩個值存儲在R0R1 我將兩者進行如下比較:

MOV R3, #(R0 XOR R1)
CJNE R3,#0,NOT_EQUAL

顯然,不可能以這種方式使用XOR運算符。 還有另一種比較R0R1並檢查它們是否相等的方法嗎?

由於要在運行時執行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM