【计算机组成原理】指令系统

🎄欢迎来到@边境矢梦°的csdn博文🎄
🎄本文主要梳理计算机组成原理中 指令系统的知识点和值得注意的地方 🎄
🌈我是边境矢梦°,一个正在为秋招和算法竞赛做准备的学生🌈
🎆喜欢的朋友可以关注一下🫰🫰🫰,下次更新不迷路🎆

目录

🍁指令系统的概念及指令格式

🌳寻址方式及指令寻址方式

🌻操作数寻址方式

🌸指令格式设计

🏵️MIPS指令概述

🪴MIPS指令详解


🍁指令系统的概念及指令格式

  • 指令概念
  1. 指令
    1. 计算机能直接识别、执行的操作命令(机器指令);
    2. 冯诺依曼结构计算机“程序控制”原理实现的载体.
  2. 指令系统(指令集)
    1. 一台计算机中所有机器指令的集合
    2. 系列机:同一公司不同时期生产,基本系统结构和指令系统相同的计算机。如IBM,PDP-11,VAX-11,Intel-x86
    3. 兼容机:不同公司生产,基本系统结构和指令系统相同的计算机如IBM兼容机
  3. 指令字长
    1. 指令中包含的二进制位数
    2. 与机器字长相比: 单字长、双字长、半字长等长度指令
    3. 多字长指令
      1. 解决寻址较大存储空间的问题
      2. 取指多次访内,影响速度,占用空间大
    4. 等长指令 : 指令字长度固定 (简化)
    5. 变长指令 : 指令字长度根据需要可变 (复杂)
  • 指令的分类
    • 根据计算机层次结构分类
    • 根据指令中地址码字段的个数分类
    • 根据指令中操作数的物理位置分类
    • 根据指令的功能分类
  • 指令格式
    • 用二进制代码表示指令的结构形式
  • 二说指令系统

 

🌳寻址方式及指令寻址方式

  1.  指令的顺序寻址
    1. 程序的指令序列在主存顺序存放。执行时从第一条指令开始(!),逐条取出并逐条执行,这种程序的顺序执行过程,称为顺序寻址方式 .
    2. CPU中设置程序计数器(PC)对指的顺序号进行计数。PC开始时存放程序的首地址,每执行一条指令,PC 加”1”,指出下条指令的地址直到程序结束。
  2. 指令的跳跃寻址

🌻操作数寻址方式

  1. 立即数寻址
  2. 寄存器寻址
  3. 直接寻址
  4. 间接寻址
  5. 寄存器间接寻址
  6. 相对寻址
  7. 基址寻址
  8. 变址寻址
  9. 总结

🌸指令格式设计

  1. 指令格式设计的主要内容
  2. 举例

🏵️MIPS指令概述

MIPS指令是一种精简指令集计算机(RISC)指令集,属于80年代初期由斯坦福大学Hennessy教授领导的研究小组研制成功的。MIPS指令集有多个版本,如MIPS I、MIPS II、MIPS III、MIPS IV、MIPS V、MIPS32和MIPS64。

MIPS指令集有以下特点:

  1. 简单的Load/Store结构:MIPS指令集采用简单的Load/Store结构,即指令主要涉及加载数据到寄存器(Load)和从寄存器中存储数据(Store)。这种结构简化了指令集的设计,并使得编译器更容易生成高效的代码。
  2. 易于流水线CPU设计:MIPS指令集的另一个特点是易于流水线CPU设计。流水线设计是一种提高CPU性能的技术,它将指令执行过程划分为多个阶段,每个阶段由不同的硬件单元处理。这种设计可以使得CPU在执行指令时具有更高的吞吐量和更快的执行速度。
  3. 易于编译器开发:MIPS指令集的设计使得编译器更容易生成高效的代码。由于MIPS指令集结构简单,编译器可以更轻松地分析代码并生成相应的指令序列。这有助于提高编译器的性能和生成代码的质量。
  4. MIPS指令的寻址方式非常简单:MIPS指令的寻址方式相对简单,每条指令的操作也非常简单。这使得指令集更易于理解和实现,同时也有助于提高CPU的执行效率。
  5. MIPS指令集广泛应用于嵌入式系统:在早期,MIPS指令集主要应用于嵌入式系统,如Windows CE的设备、路由器、家用网关和视频游戏机等。现在,MIPS指令集已经在PC机、服务器中得到广泛应用。

🪴MIPS指令详解

MIPS指令集包括R型、I型和J型指令,这些指令在计算机程序中有着不同的用途和功能。以下是对这些指令的详细解释:

  1. R型指令(寄存器型指令):
    R型指令是指操作数和保存结果均通过寄存器进行的指令。这些指令通常涉及对寄存器中的数据进行算术或逻辑操作,并将结果存储回原始寄存器或另一个寄存器中。R型指令包括加法、减法、乘法、除法等算术操作,以及与寄存器中的数据进行比较、位移等逻辑操作。

R型指令的格式通常为:opcode Rs Rd shamt funct。其中,opcode是操作码,Rs是源寄存器1,Rd是目标寄存器,shamt是移位量(当涉及到移位操作时),funct是具体的操作类型。

具体R型指令包括:

  • 带有3个寄存器的指令:这些指令通常涉及对两个源寄存器中的数据进行算术或逻辑操作,并将结果存储到目标寄存器中。例如,ADD R1, R2, R3将把R2和R3中的内容相加,并将结果存储到R1中。
  • 带有2个寄存器的指令:这些指令通常涉及对一个源寄存器中的数据进行算术或逻辑操作,并将结果存储到另一个寄存器中。例如,SUB R1, R2, R3将把R2和R3中的内容相减,并将结果存储到R1中。
  • 带有1个寄存器的指令:这些指令通常只对一个寄存器中的数据进行操作,例如,MOV R1, #10将把常量值10加载到R1中。
  1. I型指令(立即数型指令):
    I型指令是指面向立即数的指令。立即数是指直接在指令中指定的常数值,而不是从内存或寄存器中获取的值。I型指令通常用于对常量和某些特定的寄存器进行算术或逻辑操作。

I型指令的格式通常为:opcode Rs Rd imm。其中,opcode是操作码,Rs是源寄存器(如果有),Rd是目标寄存器,imm是立即数。

具体I型指令包括:

  • 面向运算的I型指令:这些指令通常涉及对两个立即数进行算术或逻辑操作,并将结果存储到目标寄存器中。例如,ADD I1, I2, I3将把I2和I3的值相加,并将结果存储到I1中。
  • 面向访存的I型指令:这些指令通常涉及对一个立即数和内存地址进行算术或逻辑操作,并将结果存储到目标寄存器中。例如,LW R1, I2(mem)将从内存地址为I2的值加载到R1中。
  • 面向数位设置的I型指令:这些指令通常涉及对一个立即数的特定位进行设置或清除操作。例如,BSET bit, I1将把I1中特定位的值设置为1。
  • 面向条件转移(分支)的I型指令:这些指令通常用于根据条件进行跳转或分支操作。例如,BEQ I1, I2, label将比较I1和I2的值是否相等,如果相等则跳转到标签指定的位置。
  1. J型指令(转移型指令):
    J型指令是指向转移的指令。这些指令通常用于控制程序的执行流程,包括跳转、分支和子程序调用等操作。J型指令通常包含一个目标地址,程序将直接跳转到该地址执行相应的指令。

J型指令的格式通常为:opcode rs rd。其中,opcode是操作码,rs是源寄存器(如果有),rd是目标地址寄存器。

  • 50
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 87
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 87
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值