我试图为我的CENG课程破译一段代码,而且我遇到了一些让我感到困惑的领域。代码如下($表示十六进制):
C EQU $202200
ORG $201150
A DC.W 639
B DC.W -215
ORG $201200
MOVE A,R0 <---??
ADD B,R0 <---??
MOVE R0,C
标记的行是我在解密时遇到的问题。我知道我创建一个等于$ 202200的变量C,移动起始内存,创建变量A和B并给它们值,然后再次移动起始内存。这是我被卡住的地方。我会支持MOV R0,A,它只是将A的值放入寄存器R0,但是如何将寄存器放入变量?这对我来说没有意义,谷歌正在填补空白,任何人都可以帮助我理解这一点吗?感谢。
答案 0 :(得分:0)
mov
指令将存储在一个位置(寄存器,存储器等)中的值复制到另一个位置。在您的代码段中,它看起来像是使用约定:
INSTRUCTION <source>, <destination>
所以行:
MOVE A, R0
ADD B, R0
平均:
A
指示的内存位置的值复制到寄存器R0
中。B
指示的内存位置的值添加到寄存器R0
中的值,将结果存储在R0
。答案 1 :(得分:0)
谢谢你,但我认为并非如此。如果这是真的,那么底线给出了完全相同的问题。 MOV A,R0和MOV R0,C。因此,其中一个需要反转,那又是什么意思?
我相信这是ARM。