我正在为ARM8(aarch64)编写一些汇编代码。我想进行除法,并将获得的余数用于进一步的计算。在x86中,当我使用'div'时,我知道我的余数保存在RDX中。我的问题是-是否与aarch64指令集中的等效?我知道'udiv'和'sdiv'做无符号和有符号除法,并得到商。有没有一条指令可以给我剩余?(我想在c中使用%模运算符)。我知道我可以使用代数获得它,只是想确认我没有错过更简单的方法。
除非可以将常数and
除以2的幂次方,否则可以将其优化到,没有指令可以计算除法的余数。您可以将它整齐地分成两个部分:
// input: x0=dividend, x1=divisor
udiv x2, x0, x1
msub x3, x2, x1, x0
// result: x2=quotient, x3=remainder
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句