2016-09-21 87 views
2

我正在學習用匯編語言編寫的ARM Cortex和我有以下問題:右移,並添加一個命令

寫彙編指令的一個線以下的計算: 應用算術右移上的內容的R2,然後添加R1和R2的 內容並將結果存儲在R0中。

我理解的算術右移爲:

ASR R0, R2, #9

而且做一個補充的是簡單的:

ADD R0, R1, R2

,但我不能確定如何將這些組合成一個命令。 到目前爲止,我想出了從比如下面我看到看上去好像他們是在類似的方式上做一個線上的兩個命令:

ASR R0, R2, #9, [ADD R1, R2]

我知道這可能是錯誤的,所以能任何人向我解釋如何做到這一點?

+1

使用帶有移位輸入操作數的'add'。它不會以其他方式工作。 http://www.davespace.co.uk/arm/introduction-to-arm/barrel-shifter.html –

+1

@PeterCordes,類似於:'ADD R0,R1,R2,ASR#9'? –

+1

這幾乎完全像我鏈接的頁面上的例子之一,所以是的,我認爲這是有效的語法。你應該檢查它是否組裝。 –

回答

0

看來你現在正走在正確的軌道上。

add rd, rn, rm, asr #n