CSRRW(Atomic Read/Write CSR) 指令原子性的交换CSR和寄存器中的值。 CSRRW指令读取在CSR中的旧值,将其零扩展到32位,然后写入整数寄存器rd中,rs1寄存器中的值将被写入CSR中。如果rd为x0,则不对csr执行读操作
示例:
csrrw t6,mscratch,t6 t6=mscratch mscratch=t6
伪指令csrw csr rs <==> csrrw x0, csr, rs 写寄存器CSR
CSRRS(Automic Read and Clear Bits in CSR) 指令读取CSR的值,将其零扩展到32位,然后写入rd中,rs1中的初始值被当做按位掩码指明了哪些CSR中的位被置为1,rs1中的任何为 1 的位,将导致 CSR 中对应位被置为 1,如果 CSR 中该位是可以写的话。CSR 中的其他位不受影响。
示例:csrrs x5, mie, x6 x5 = mie; mie |= x6 ;

伪指令 csrr rd csr <==> csrrs rd, csr, x0 读寄存器CSR
CSRRC(Atomic Read and Clear Bits in CSR)指令读取 CSR 的值,将其零扩展到 32位,然后写入整数寄存器 rd 中。整数寄存器 rs1 中的初始值被当做按位掩码指明了哪些 CSR 中的位被置为 0。rs1 中的任何为 1 的位,将导致 CSR 中对应位被置为 0,如果 CSR 中该位是可以写的话。CSR 中的其他位不受影响。
示例:csrrc x5, mie, x6 x5 = mie; mie &= x6
CSRRWI/CSRRSI/CSRRCI 和以上三个命令的区别是用5bit 的无符号立即数(zero-extending)代替了 rs1。
对于相关伪指令的意义可以总结如下表:


ECALL 命令用于主动触发异常,根据调用 ECALL 的权限级别产生不同的 exception code;异常产生时 epc 寄存器的值存放的是 ECALL 指令本身的地址。
EBREAK指令被调试器所使用,用来将控制权传送回给调试环境。

RISC-V CSR 相关指令集相关推荐

  1. RISC V (RV32+RV64) 架构 整体介绍

    文章目录 riscv 市场 芯片介绍 软件介绍 开发板介绍 PC介绍 riscv 架构 编程模型(指令集/寄存器/ABI/SBI) 运行状态 指令集 寄存器 riscv32和riscv64两者的区别 ...

  2. 计组学习笔记2(RISC v版)

    指令集解释 (规定:R[r]表示通用寄存器r的内容,M[addr]表示存储单元addr的内容,SEXT[imm]表示对imm进行符号扩展,ZEXT[imm]表示对imm进行零扩展) 整数运算类 -U型 ...

  3. Linux笔记-grep -v功能相关说明

    背景 比如服务器上有一个sh脚本,这个sh脚本会启动一个进程,这个进程名和这个sh脚本名是一样的,只是一个带有.sh一个没有. 现在有个需求,查询这个进程或这个脚本是否正常运行,如,进程名是Hello ...

  4. 安装Ubuntu RISC V toolchain失败(网速、git配置原因)

    git获取大容量工程出错:RPC failed: curl GnuTLS recv error : Decryption has failed. error: RPC failed; curl 56 ...

  5. RV1126与RV1109 AI系统设计概要(一部分)

    RV1109与RV1126参数 主要区别 RV1126处理器(例子) 四核核 Cortex-A7,ARM架构V7-A指令,独立Neon SIMD(一种高级单指令多数据扩展指令集,可执行并行数据处理), ...

  6. 一种全新的指令集架构RISC-V

    目录 RISC-V指令集架构介绍 通用寄存器模型 RISC-V特权级 RISC-V指令集描述 RISC-V总结 RISC-V指令集架构介绍 RISC-V(英文发音为"risk-five&qu ...

  7. GPU指令集技术分析

    GPU指令集技术分析 本文将两篇文章整理了一下. 参考文章链接如下: https://zhuanlan.zhihu.com/p/391238629 https://zhuanlan.zhihu.com ...

  8. 计算机组成原理 — CPU — 指令集架构类型

    目录 文章目录 目录 主流 CPU 指令集架构 CISC(复杂指令集计算机) x86 系列处理器 RISC(精简指令集计算机) ARM 系列处理器 PowerPC 系列处理器 MIPS 架构 RISC ...

  9. RISC-V架构生态及相关学习记录

    从网络整理,仅供自己学习 _____________________________________________________________________________ 1.RISC-V架 ...

最新文章

  1. 自己动手写一个印钞机 第四章
  2. 透过国外初创公司看高精度地图难题
  3. php post请求后端拿不到值_[精选] uniapp实现多端开发,与PHP是如何结合的
  4. dokuwiki 部署笔记
  5. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第15篇]RSA-OAEP和ECIES的密钥生成,加密和解密
  6. 中国科学家提出“探索极端宇宙”国际科学计划
  7. python变量名必须以什么开头_python变量为什么不能以数字开头
  8. JVM虚拟机-Class文件之魔数
  9. Navicat的使用,连表查询,python代码操作sql语句
  10. od ida 栈溢出初体验
  11. CTFmisc常见音频隐写总结
  12. Error in macro ./uart_scope_run_msim_rtl
  13. css3优惠卷上方锯齿_CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式
  14. 视频 码率控制类型和内涵
  15. 加拿大比索大学计算机科学硕士,来悉尼大学恍恍惚惚一年后,我给大家吐血整理了经验贴…....
  16. Android系统应用开发
  17. 【科研数据处理】[实践]类别变量频数分析图表、数值变量分布图表与正态性检验(包含对数正态)
  18. 全国省市区数据库-拼音-首字母-经纬度-城市编码-邮编-简称-组合称
  19. 如何判断和删除Orphaned site collections?
  20. 1155低功耗cpu排行_比拼浮点运算速度,超算排行榜是这样“算”出来的

热门文章

  1. 欧几里德关系的S5---刘易斯逻辑之十一
  2. VMware ESXi 8.0集成网卡驱动
  3. 2018三七互娱前端笔试
  4. Docker与Dockerfile极简入门文档
  5. json数组遍历-第5讲
  6. Windows编程之COM组件
  7. linux多网卡配置ip地址(linux一个网卡配置多个ip)
  8. 走过了十年,亚信安全用什么引领云安全发展?
  9. firefox firbug 的“阻挡” blocking
  10. 在 PostgreSQL 中简单实现 Insert ignore 操作