assembly - 汇编器消息 -> 错误:寄存器编号超出范围
问题描述
我正在尝试
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 作为最后一个寄存器参数。
推荐阅读
- php - 如何使用 php 在 sendgrid 中设置唯一的开放跟踪
- python - 手动提交偏移量到kafka主题的正确方法是什么
- emacs - 为什么在 Emacs 中使用命令 Mx jedi:install-server 没有回复
- html - 我们是否应该避免使用 ID 作为 CSS 选择器
- amazon-dynamodb - dynamo db 全局表的每个区域的不同 RCU
- bash - 来自另一个文件的 Grep 列表(文件)
- c# - 如何在 Azure 搜索服务中添加 Azure Cosmos DB 的主键作为搜索参数
- jquery - if 语句选择器的区别
- filter - 如何用“虚拟”边替换隐藏节点?
- angular - 使用 ngx-swiper-wrapper 实现带有拇指的图像滑块