前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RISC-V指令集讲解(1)通用寄存器和汇编指令分类

RISC-V指令集讲解(1)通用寄存器和汇编指令分类

原创
作者头像
IC知识库
修改2021-07-30 10:31:12
2.7K2
修改2021-07-30 10:31:12
举报
文章被收录于专栏:IC知识库平台IC知识库平台

1. RISC-V通用寄存器和程序计数器

在之前的RISC-V简介中主要有

RISC-V 简介(1)RISC-V的由来

RISC-V 简介(2)RISC-V指令集的特点及分类

RISC-V 简介(3)RISC-V处理器前景及中国CPU发展现状

RISC-V 简介(4)RISC-V指令集编码结构

本文将开始详细讲解RISC-V指令集。CPU中包含32个通用寄存器,有时候也会被称为通用寄存器文件,如图1所示。通用寄存器的命名方式为X0-X31。其中第一个寄存器X0的值,被硬连线到0,因此值永远是0。其他寄存器X1-X31都是可读可写的。0-31也叫做索引号,索引号也可以理解为寄存器的地址,当指令需要调用通用寄存器时可以通过索引号查找。之后将会在介绍FPGA程序时讲解如何设计读写寄存器文件。对于32位系统,所有通用寄存器的宽度都是32bit,寄存器总个数也是32个。

PC(program counter)是程序计数器,也是一个寄存器。在CPU中PC寄存器并不和上述32个通用寄存器在一起,寄存器文件中不包含PC。PC的宽度和通用寄存器的宽度一样。XLEN的值一般跟RISC-V CPU架构有关系。 如果是32位架构的CPU,那么XLEN的值就是32。图1中XLEN-1 = 32-1 =31,即在一个通用寄存器中的最高位为31。在64位CPU中通用寄存器的宽度是64,同时PC宽度也是64位,最高位为64-1 =63。

图1 RISC-V通用寄存器和PC [1]

2. RISC-V汇编指令类型

RV32I 可被分为六种基本指令格式:

用于寄存器-寄存器操作的R类型指令

用于立即数和访存load操作的I 型指令

用于访存store操作的S型指令

用于条件跳转操作的B类型指令

用于长立即数的U型指令

用于无条件跳转的J型指令

图2列出来6种基本指令的机器码格式。

图2 6种基本指令的机器码格式 [2]

2.1. R-Type 介绍

2.2. I-Type 介绍

2.3. S-Type 介绍

2.4. U-Type 介绍

2.5. B-Type 介绍

2.6. J-Type 介绍

备注:关于6种介绍的完整内容请搜索引擎搜索“IC知识库”查看。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 备注:关于6种介绍的完整内容请搜索引擎搜索“IC知识库”查看。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档