完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
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指令被调试器所使用,用来将控制权传送回给调试环境。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
1851 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4767 浏览 0 评论
4248 浏览 9 评论
3839 浏览 16 评论
4413 浏览 1 评论
4233浏览 3评论
2397浏览 0评论
3416浏览 0评论
1176浏览 0评论
2862浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 04:59 , Processed in 0.672762 second(s), Total 76, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1182