标签: assembly arm cpu-registers cpu-architecture arm64
我想像1<<(val-1)那样进行计算,其中val是3到12范围内的任何值。 它可以在3个操作中完成,比如
mov x0, #1 sub val, #1 lsl x2, x0, val
另一个想法是设置Carry标志并随身携带旋转。在这种情况下,它将在两个操作中完成,因为不应该减去“val”。
问题是arm64似乎不支持旋转/携带。 有没有人有想法如何将此代码放入2个操作系统? 感谢。