2014-10-09 73 views
0

我试图破译我的CENG类的一段代码,并且遇到了一些令我感到困惑的区域。代码如下($表示十六进制):在理解MOV概念时遇到问题(汇编语言)

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,但是如何将一个寄存器放入一个变量?这对我来说没有任何意义,谷歌正在画空白,任何人都可以帮我理解这一点吗?谢谢。

+1

他们是否告诉过您正在使用的处理器的名称? – 2014-10-09 06:49:52

回答

0

mov指令将存储在一个位置(寄存器,存储器等)中的复制到另一个位置。在您的代码段,它看起来像它的使用约定:

INSTRUCTION <source>, <destination> 

所以行:

MOVE A, R0 
ADD B, R0 

平均:

  • 复制存储在存储单元的值由变量表示A纳入注册R0
  • 将存储在变量B指示的存储器位置中的值添加到寄存器R0中的值,将结果存储在R0中。
0

谢谢,但我不认为是这样。如果这是真的,那么底线给我的确是同样的问题。 MOV A,R0和MOV R0,C。所以他们中的一个需要颠倒过来,那又是什么意思?

我相信这是ARM。