ARM汇编,无需MUL指令即可相乘

时间:2014-02-17 07:58:50

标签: assembly arm

我对此进行了广泛的研究,但未找到任何答案。我需要在不使用ARM汇编语言中的乘法指令的情况下乘以* 17。我知道你可以使用RSB,但是如何设置值或使用LSL#部分让我很困惑。任何帮助都会很棒!!

1 个答案:

答案 0 :(得分: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>

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