0

在 Xtensa 装配中执行以下操作的正确方法是什么:

a4 = ( 1 << a5 )

其中 a4 和 a5 是寄存器,a5 可以包含值 0 到 3(将来可能是 0 到 7,但现在不必太担心。)

我敢肯定这一定很简单,但似乎很棘手。

4

1 回答 1

2

根据 Xtensa ISA,您必须使用 ssl 指令(设置左移量)将移位量加载到内部移位量寄存器(SAR)中。然后您必须使用 sll(逻辑左移)指令,该指令需要两个寄存器,即目标寄存器和包含要移位的值的寄存器。相当于您a4 = ( 1 << a5 )在汇编程序中的表达式是:

movi a4, 1
ssl a5
sll a4, a4
于 2021-12-19T07:39:32.607 回答