ARM组件,而不乘以MUL指令(ARM assembly, multiplying without

2019-10-19 08:52发布

我已经广泛研究这一点,并没有发现任何答案。 我需要乘以* 17不使用ARM汇编语言编写的乘法指令。 我知道你可以使用RSB,但是如何设置的值,或使用LSL#部分是混淆了我。 任何帮助将是巨大的!

Answer 1:

我同意的意见,但只是一个快速提示,编译器一般都在用常数优化乘法真的很好。

所以,你可以只用一个arm-*-*-gcc工具链得到这样的答案。

$ cat m17.c 
int f(int i) {
    return i * 17;
}

$ arm-linux-gnueabihf-gcc -O3 -S m17.c
$ cat m17.s
        <skipped>
f:
    add r0, r0, r0, lsl #4
    bx  lr
    <skipped>

和一个可怕的玩笑: 使用工具,卢克!



文章来源: ARM assembly, multiplying without MUL instruction
标签: assembly arm