汇编程序消息 -> 错误:寄存器编号超出范围



我正在尝试使用该指令
mula.dd.ll.ldinc m3 , a5 , m0 ,m1在我的汇编代码中 在具有 xtensa LX6 处理器的 ESP32 上。

它不会为其他指令产生错误,但对于此特定指令,它会产生register number out of range

我正在使用 a2-a4 来接收汇编代码中的参数,并使用其他寄存器来实现我的目的。xtensa LX6处理器具有16个(AR,32位)通用寄存器


我还尝试减少传递给汇编函数的参数编号并使用

mula.dd.ll.ldinc m3 , a3 , m0 ,m1

但它提供了相同的错误

此语法与指令集中使用的语法完全相同。

mula.dd.ll.ldinc m3 , a3 , m0  ,m1 // the instruction multiplies m0 * m1 and adds it to the accumulator and then loads data at a3+4 into m3 ( +4 is because of auto increment )

此语法与指令集中使用的语法完全相同。

mula.dd.ll.ldinc m3 , a3 , m0  ,m1

不,不完全是。此操作码的 ISA 书籍章节如下所述:

MULA.DD.*.LDINC mw, as, mx, my
The mx operand can designate either MAC16 register m0 or m1.
The my operand can designate either MAC16 register m2 or m3.

因此,不能将 M1 作为最后一个寄存器参数。

相关内容

  • 没有找到相关文章

最新更新