计组学习笔记1(RISCV版)

4.指令系统及程序的机器级表示

4.1 指令设计

-指令必须包含的信息

1.操作码(指定操作类型)

2.源操作数(一个或多个)或其地址

3.结果的地址

4.下一条指令的地址(隐含在PC 【程序计数器】 中)

-指令格式设计原则

1.尽量短

2.必须预留足够的操作码位数

3.操作码编码必须有唯一的解释

4.指令长度为字节的整数倍(内存通常以字节编址【8bit=1byte】)

5.合理选择地址字段个数(涉及指令长度与规整性问题)

6.尽量规整

-操作数类型

1.指针或地址(unsigned int)

2.带符号数值数据

3.位、位串、字符、字符串

4.布尔数据(表示逻辑值)

-寻址方式

1.立即寻址

        给出操作数本身

2.直接寻址

        给出操作数的有效地址

3.间接寻址

        给出存操作数有效地址的存储单元的地址

4.寄存器寻址

        给出操作数所在的寄存器的编号,操作数在寄存器中

5.寄存器间接寻址

        给出寄存器编号,寄存器中是操作数的有效地址

6.变址寻址

        用于对线性表之类的访问,有效地址为(形式地址+变址寄存器)

7.相对寻址

8.基址寻址

9.其他寻址方式

-操作类型

1.算术与逻辑运算

2.移位指令

3.传送指令(mov、load、store等)

4.串指令

5.顺序控制指令(jmp、skip、call、ret等)

6.CPU控制指令(停机、开中断、关中断等)

7.输入输出指令

-标志信息的生成与使用

        指令执行后,会根据运算结果产生相应的标志并在寄存器中。

-指令系统设计风格

按操作数位置,常用的有:

        1.通用寄存器型指令系统

                使用通用寄存器存放临时数据,操作数和指令可以为多种类型。

        2.Load/Store型指令系统(RISC风格采用此类型)

                使用通用寄存器存放临时数据,但只有使用Load、Store指令时才可以访问寄存器。

4.2 RISC-V架构及程序的机器级表示

        核心是基础的32位整数指令集RV32I,在其之上可以运行一个完整的软件栈。

-RISC-V采用32位定长指令字格式

        共有6种指令格式:R型(寄存器操作数指令)、I型(短立即数操作或装入指令)、S型(存储指令)、B型(条件跳转指令)、U型(长立即数操作指令)、J型(无条件跳转指令)。

        低7位都是操作码字段:opcode

        rd、rs1、rs2都是5位:32位的RISC-V架构有32个32位通用寄存器,所以需要5位来编码

        func3、func7分别表示3位和7位的功能码,定义指令的操作功能

        imm位表示立即数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值