我正在编写ARM汇编代码,在某一时刻必须将一个寄存器的单个位设置为1。当然,最好使用“寄存器-位掩码”方法来完成。然而,根据ARM文档,汇编
ORR
命令(按位或)不接受立即值。换句话说,您只能将一个寄存器中的值与另一个寄存器中的值进行按位或操作。如果您想一下,这是有道理的,因为ARM指令本身是32位长的,所以无法将32位掩码压缩到指令中。然而,为了立即使用它而将立即值写入寄存器是低效的,因为它会产生读取后写入冒险,从而使CPU停顿。一般来说,最有效的方法是在不浪费寄存器持续保存该掩码的情况下将寄存器与掩码进行ORR
吗?ARM有推荐的做法吗?