【发布时间】:2016-09-21 02:09:01
【问题描述】:
我正在学习 ARM Cortex 的汇编语言,但遇到以下问题:
写一行汇编指令进行以下计算: 对 R2 的内容应用算术右移,然后添加 R1 和 R2 的内容并将结果存储在 R0 中。
我将算术右移理解为:
ASR R0, R2, #9
添加很简单:
ADD R0, R1, R2
但我不确定如何将这些组合成一个命令。 到目前为止,我从一个示例中得出了以下内容,我看到该示例看起来好像他们以类似的方式在一行上执行两个命令:
ASR R0, R2, #9, [ADD R1, R2]
我知道这可能是错误的,所以谁能向我解释一下应该怎么做?
【问题讨论】:
-
将
add与移位的输入操作数一起使用。它不工作的其他方式。 davespace.co.uk/arm/introduction-to-arm/barrel-shifter.html -
@PeterCordes,类似于:
ADD R0, R1, R2, ASR #9? -
这几乎与我链接的页面上的示例之一完全一样,所以是的,我认为这是有效的语法。你应该检查它是否组装好了。
标签: assembly arm cortex-m3 cortex-m