0

我正在尝试 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 )
4

1 回答 1

1

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

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 作为最后一个寄存器参数。

于 2019-10-26T01:19:47.930 回答