2014-10-09 68 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。