如何在ARM汇编中进行模运算?

时间:2017-03-21 21:43:38

标签: arm

我试图将值添加到两个寄存器中,并将它们模数为8。 所以,在C代码中,它就像这样

a = a + b;
c = a % 8;

如何在ARM程序集中执行上述操作。

1 个答案:

答案 0 :(得分:2)

并非所有ARM处理器都具有用于除法或模数的直接指令,因此在大多数情况下,对模运算的调用最终将作为对例如函数调用的函数调用。 ___modsi3

在这种特殊情况下,当为8进行模数运算时,如果可以假设值为非负值,则可以将% 8部分设为& 7。在这种情况下,您案例的程序集将是:

add rA, rA, rB
and rC, rA, #7