小编Gar*_*ary的帖子

为什么 ARM7 上 MUL 表达式的前两个参数不能相同?

我一直在帮助实验室进行 ARM7 汇编语言课程,今天遇到一个问题,学生输入了以下表达式:

MUL R0, R0, R1
Run Code Online (Sandbox Code Playgroud)

该代码未编译。解决方案是将表达式更改为:

MUL R0, R1, R0
Run Code Online (Sandbox Code Playgroud)

即MUL的前两个参数不能是同一个寄存器。我已经知道这一点,因为它是 ARM 文档的一部分: http ://infocenter.arm.com/help/topic/com.arm.doc.dui0489i/DUI0489I_arm_assembler_reference.pdf

学生很高兴他们的问题得到了解决,但我很沮丧,因为我不知道为什么ARM7 要求这样传递参数。我认为这可能与乘法器移位和加法时用于存储中间值的寄存器之一有关,但我什至不确定乘法在 ARM 上是否是这样工作的(事实上,我相当清楚)当然不是)。为什么参数的顺序在这里如此重要?

assembly arm multiplication arm7

4
推荐指数
1
解决办法
1807
查看次数

标签 统计

arm ×1

arm7 ×1

assembly ×1

multiplication ×1