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