Martian148's blog Martian148's blog
首页
  • ICPC 算法笔记
  • ICPC 算法题解
  • 体系结构
  • 高等数学
  • 线性代数
  • 概率论与数理统计
  • 具体数学
  • Martian148的奇思妙想
  • 游记
  • 通识课笔记
关于
  • useful 网站
  • 友情链接
  • 分类
  • 归档

Martian148

一只热爱文科的理科生
首页
  • ICPC 算法笔记
  • ICPC 算法题解
  • 体系结构
  • 高等数学
  • 线性代数
  • 概率论与数理统计
  • 具体数学
  • Martian148的奇思妙想
  • 游记
  • 通识课笔记
关于
  • useful 网站
  • 友情链接
  • 分类
  • 归档
  • ACM - ICPC

  • 编程语言

  • 体系结构

    • 计算机组成原理笔记
    • CS61C

      • RISC-V速查表
        • 1. 算术运算指令
        • 2. 逻辑运算指令
        • 3. 移位指令
        • 4. 内存访问指令(Load/Store)
        • 5. 分支与跳转指令
        • 6. 系统调用与环境指令
        • 7. 伪指令(Pseudo-instructions)
      • CS61C Lab1
      • CS61C Lab2
      • CS61C Lab3
    • CSAPP

  • Web

  • 人工智能

  • 编程工具

  • 计算机科学
  • 体系结构
  • CS61C
martian148
2025-05-12
目录

RISC-V速查表

# 1. 算术运算指令

指令 格式 功能 示例
add add rd, rs1, rs2 加法(rd = rs1 + rs2) add t0, t1, t2
sub sub rd, rs1, rs2 减法(rd = rs1 - rs2) sub t0, t1, t2
addi addi rd, rs1, imm 加立即数(rd = rs1 + imm) addi t0, t1, 10
mul mul rd, rs1, rs2 乘法(rd = rs1 * rs2) mul t0, t1, t2
div div rd, rs1, rs2 除法(rd = rs1 / rs2) div t0, t1, t2
rem rem rd, rs1, rs2 取余(rd = rs1 % rs2) rem t0, t1, t2

# 2. 逻辑运算指令

指令 格式 功能 示例
and and rd, rs1, rs2 按位与 and t0, t1, t2
or or rd, rs1, rs2 按位或 or t0, t1, t2
xor xor rd, rs1, rs2 按位异或 xor t0, t1, t2
andi andi rd, rs1, imm 与立即数 andi t0, t1, 0xFF
ori ori rd, rs1, imm 或立即数 ori t0, t1, 0x0F
xori xori rd, rs1, imm 异或立即数 xori t0, t1, 0x55

# 3. 移位指令

指令 格式 功能 示例
sll sll rd, rs1, rs2 逻辑左移 sll t0, t1, t2
srl srl rd, rs1, rs2 逻辑右移 srl t0, t1, t2
sra sra rd, rs1, rs2 算术右移(保留符号位) sra t0, t1, t2
slli slli rd, rs1, imm 立即数逻辑左移 slli t0, t1, 3
srli srli rd, rs1, imm 立即数逻辑右移 srli t0, t1, 2
srai srai rd, rs1, imm 立即数算术右移 srai t0, t1, 4

# 4. 内存访问指令(Load/Store)

指令 格式 功能 示例
lw lw rd, offset(rs1) 从内存加载字(32位) lw t0, 4(sp)
lh lh rd, offset(rs1) 加载半字(16位,符号扩展) lh t0, 2(s0)
lb lb rd, offset(rs1) 加载字节(8位,符号扩展) lb t0, 1(a0)
sw sw rs2, offset(rs1) 存储字(32位) sw t0, 8(sp)
sh sh rs2, offset(rs1) 存储半字(16位) sh t0, 2(s1)
sb sb rs2, offset(rs1) 存储字节(8位) sb t0, 3(a1)

# 5. 分支与跳转指令

指令 格式 功能 示例
beq beq rs1, rs2, label 相等时跳转 beq t0, t1, loop
bne bne rs1, rs2, label 不等时跳转 bne t0, t1, exit
blt blt rs1, rs2, label 小于时跳转 blt t0, t1, loop
bge bge rs1, rs2, label 大于等于时跳转 bge t0, t1, exit
jal jal rd, label 跳转并链接(用于函数调用) jal ra, factorial
jalr jalr rd, offset(rs1) 间接跳转(用于返回) jalr ra, 0(ra)

# 6. 系统调用与环境指令

指令 格式 功能 示例
ecall ecall 触发系统调用 ecall
ebreak ebreak 触发调试断点 ebreak
fence fence 内存屏障(保证指令顺序) fence

# 7. 伪指令(Pseudo-instructions)

指令 实际指令 功能 示例
mv addi rd, rs, 0 寄存器复制 mv t0, t1
li addi rd, x0, imm 加载立即数 li t0, 42
nop addi x0, x0, 0 空操作 nop
ret jalr x0, 0(ra) 函数返回 ret
j jal x0, label 无条件跳转 j loop

image-20250512224411169

计算机组成原理笔记
CS61C Lab1

← 计算机组成原理笔记 CS61C Lab1→

最近更新
01
Java基础语法
05-26
02
开发环境配置
05-26
03
pink 老师 JavaScript 学习笔记
05-26
更多文章>
Theme by Vdoing | Copyright © 2024-2025 Martian148 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式