我试图将值添加到两个寄存器中,并将它们模数为8。 所以,在C代码中,它就像这样
a = a + b;
c = a % 8;
如何在ARM程序集中执行上述操作。
答案 0 :(得分:2)
并非所有ARM处理器都具有用于除法或模数的直接指令,因此在大多数情况下,对模运算的调用最终将作为对例如函数调用的函数调用。 ___modsi3
。
在这种特殊情况下,当为8进行模数运算时,如果可以假设值为非负值,则可以将% 8
部分设为& 7
。在这种情况下,您案例的程序集将是:
add rA, rA, rB
and rC, rA, #7