错误的写法:

amoadd.w a1, a0, a2

这是参照 Open RISC-V Reference Card 的格式书写的,这将将产生错误:

illegal operands `amoadd.w a1,a0,a2'

正确的写法:

amoadd.w a1, a2, (a0)

凡是 Load、Store 类型的指令,汇编指令和 Reference Card 的格式是不一样的,存储地址的那个寄存器要加上圆括号,而且要放在指令的最后。如果有偏移量,那么要加在圆括号前面,例如 Load Word 指令,在 Reference Card 中是这样的格式:lw rd, rs1, imm ,汇编指令要这么写: lw rd, imm(rs1)

Atomic 指令都是 Load、Store 类型的,其中的 rs1 存储的是要 Load、Store 的内存地址。

带 aq 或 rl 的 Atomic 指令的写法示例:

amoswap.w.aq a1,a2,(a0)
amoswap.w.rl    a1,a2,(a0)
amoswap.w.aqrl  a1,a2,(a0)

不知道汇编指令语法的解决办法:

  1. 使用 .insn 伪指令构造机器码,然后通过 objdump 反汇编出来,看看反汇编是什么格式,那么汇编指令就用什么格式。比如上面的 amoadd.w a1, a2, (a0) 通过 .insn 伪指令构造 .insn r AMO, 2, 4, a1, a0, a2 。更多关于 .insn 伪指令的内容参考 gas 文档 RISC-V Instruction Formats 。
  2. The RISC-V Instruction Set Manual 会有一些示例代码可以参考。

参考:

  • RISCV Inline Assembly in GCC: Atomic Load/Store

risc-v gcc 编译 atomic 指令时产生 illegal operands 错误的解决办法相关推荐

  1. linux ora27040,使用RMAN recover database时遇到ORA-01119 ORA-27040 错误的解决办法

    问题描述: DATA COLLECTED =============== CUSTOMER STATEMENT ------------------ 不过在恢复数据的过程中,用8月1号的全备份,恢复到 ...

  2. 【VM Ware】虚拟机安装XP系统时,出现546错误的解决办法

    引言: 现在的windows操作系统对旧版本的软件兼容性非常差,很多老软件无法在win10下运行,因此我们需要建立虚拟机来运行老版软件.可是我们通过虚拟机安装XP系统时,有时候会出现546错误.经过本 ...

  3. java ora-12505_JDBC连接Oracle数据库时出现的ORA-12505错误及解决办法

    转载至http://www.blogjava.net/itspy/archive/2007/12/20/169072.html Oracle 问题描述: 今天使用jdbc连接oracle 10.2.0 ...

  4. flex buider 4.6 打开设计模式(designer)时提示内存不足错误的解决办法

    先申明,此方法只适用于flex builder 4.6及以下版本, flex builder 4.7以后已经完全取消了designer功能,是没有办法补救的. 1. 首先下载APE文件,这个文件好像是 ...

  5. Windows 7英文版访问2003或XP共享时提示用户名密码错误的解决办法

    我这个人没事就喜欢玩系统,前两天把系统从Windows 2008 R2换回了英文版Windows 7(装了汉化包),但却无法访问Windows Server 2003的共享了,但用同一个密码能访问20 ...

  6. 使用 SAP Fiori Tools 部署 SAP UI5 应用到 ABAP 服务器时遇到的各种错误和解决办法

    错误1 (node:28340) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'customMiddleware ...

  7. VS2019运行OpenGL时出现的常见错误及解决办法

    OpenGL程序在低版本的VS中运行成功,但在VS2019中运行却出现各种错误,以下是常见错误的解决办法.(文章结尾有库的链接哟~) 问题一:无法打开文件"glaux.lib" 解 ...

  8. bluestacks安装安卓引擎时出现2502 2503错误的解决办法

    2503代表工作站无法启动. 2502代表下面的程序调用不支持的MS-DOS函数. 以管理员身份运行命令提示符 在经典桌面使用快捷键Win+X,出现一个菜单,选择"命令提示符(管理员) &q ...

  9. fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾

    问题:drawhouse1.cpp(17) : fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾 解决: 方法1.cpp文件添加引用#include "Stdaf ...

  10. debug笔记—编译报错usr/bin/ld: cannot find -lfl 解决办法;yum 安装软件时,报错:No package XXX available 解决办法

    问题1: 在编译GEOS-Chem中KPP时,出现问题: usr/bin/ld: cannot find -lfl 原因:参考链接:https://www.royalchen.com/?p=2170 ...

最新文章

  1. python 3d绘图平面_python 用 matplotlib 在 3D 空间中绘制平面 实例详解
  2. 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(61)-如何使用框架来开发?...
  3. 【OS】期末总结复习
  4. mysql update中使用subquery
  5. matlab光顺拐点,基于MATLAB的最大误差双圆弧逼近曲线的算法及实现.pdf
  6. bzoj 4300 绝世好题 —— 思路
  7. 02-c#基础之01-基础语法(一)
  8. [转】:Android调试工具及方法
  9. 微型计算机生产制约因素,精品解析:广东省东莞市2019-2020学年高三下学期第一次统考(5月)模拟考试文科综合地理试题...
  10. Spread基本知识(一)
  11. NVisionXRFBXConverter(Beta版)实践课程
  12. Mastering The Mix Total Bundle 2021 Mac - 混音插件合集
  13. VIO,visual-inertial odometry)即视觉惯性里程计
  14. Flexbox中英文手册
  15. 惠普打印机m226dn教程_惠普m226dn说明书
  16. 计算机一级office操作题题库百度云,不容错过!计算机等级考试题库之一级MS Office操作题与答案...
  17. visual studio 调试php,使用visual studio code调试php代码
  18. 分享一下微信域名防封方案
  19. Epub解析 -- Pageturner
  20. PyQT5 - 打包为.EXE文件

热门文章

  1. flutter BoxDecoration设置背景 image 报错:type ‘Image‘ is not a subtype of type ‘ImageProvider<Object> 解决方法
  2. 完整图书馆管理系统(包含设计思路、图形界面、后台数据库)
  3. 以太坊实战之《如何正确处理nonce》
  4. Python 实现毫秒级淘宝抢购脚本
  5. react-native系列(11)组件篇:Image图片加载和ImageEditor图片剪切
  6. 滤波器原理及其作用计算机网络,三种滤波器的工作原理
  7. 记一次 “HTTP 405 Method Not Allowed”的解决方法
  8. 推荐一本书:清华出版的《Modbus软件开发实战指南》
  9. linux查看端口命令ss,Linux查看端口号ss和losf指令
  10. c语言怎么写注释,C语言注释