Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 Xtensa 装配中执行以下操作的正确方法是什么:
a4 = ( 1 << a5 )
其中 a4 和 a5 是寄存器,a5 可以包含值 0 到 3(将来可能是 0 到 7,但现在不必太担心。)
我敢肯定这一定很简单,但似乎很棘手。
根据 Xtensa ISA,您必须使用 ssl 指令(设置左移量)将移位量加载到内部移位量寄存器(SAR)中。然后您必须使用 sll(逻辑左移)指令,该指令需要两个寄存器,即目标寄存器和包含要移位的值的寄存器。相当于您a4 = ( 1 << a5 )在汇编程序中的表达式是:
movi a4, 1 ssl a5 sll a4, a4