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

2024-01-12 05:44

本文主要是介绍【计算机组成原理】-指令系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🎵1.指令的发展

🌈1.1基础概念

  • 计算机的程序是由一系列的机器指令组成的指令就是要计算机执行某种操作的命令
  • 从计算机的层次结构来说,有微指令,机器指令和宏指令之分。微程序中用到微指令,属于硬件,而宏指令是若干条机器指令组成的软件指令,属于软件。机器指令介于二者间,通常简称指令。
  • 每一条指令可完成一独立的算术运算和逻辑运算操作。

1.2🌈CISC到RISC

CISC叫做复杂指令集系统计算机,因为当时的计算机指令系统多达几百条,如此庞大的指令系统不但使计算机的研制周期变长,而且采用了大量使用频率很低而且复杂指令而造成硬件资源浪费。后来又设计了精简指令系统计算机RISC。

  • 出现从CISC(Complex Instruction Set Computer,复杂指令集计算机)到RISC(Reduced Instruction Set Computer,精简指令集计算机)的转变(课本问题主要是为了提高计算机的性能和效率,并简化计算机体系结构的设计和实现。

以下是一些主要原因和动机:

  1. 简化指令集:CISC体系结构中的指令集非常复杂,涵盖了大量的指令和复杂的地址模式。这样的复杂性导致了设计、实现和调试的困难,同时也增加了指令的执行时间和资源消耗。相比之下,RISC体系结构采用了更加简化和统一的指令集,减少了指令的种类和复杂性,使得指令的解码和执行更加高效。

  2. 提高指令执行速度:CISC体系结构中的指令通常具有不同的执行时间,导致部分指令执行较慢,影响了整体的性能。而RISC体系结构的指令执行时间相对均匀,使得指令的执行更加预测性和高效,从而提高了计算机的性能。

  3. 硬件优化:CISC体系结构中的复杂指令需要更多的硬件资源和逻辑电路来实现,增加了设计和制造的成本。相比之下,RISC体系结构采用了简化的指令集,可以更好地利用硬件资源,提供更高的性能和效率。

 🎵2.指令格式

当控制器从主存储器中获取指令后,它会解析指令的信息字段(操作码和操作数字段),并生成相应的控制信号。这些控制信号会被发送给运算器和其他功能部件,以指示它们执行特定的操作。

那控制器是如何解析指令的?或者它是怎么知道指令的那一部分代表什么含义?所以就需要规定一下指令的格式。

  • 机器指令是机器字来表示的。表示一条指令的机器字,叫做指令字,简称指令。

🌈 2.1操作码

 设计计算机时,对指令系统的每一条指令都要规定一个操作码。指令的操作码表示该指令进行什么性质的操作:加法,乘法等。

不同的指令用操作码字段的不同编码表示,每一种编码表示一种指令。

CPU中有专门的电路来解释每一个操作码,因此机器就能执行操作码表示的操作。

对于一个机器的指令系统,在指令字中操作码字段和地址码字段长度通常是固定的。

 

 🌈2.2地址码

地址码(Addressing Mode)是指令集架构中用于指定操作数地址或操作数本身的编码方式。它决定了计算机在执行指令时如何获取操作数的位置或值。

🍄地址指令 

根据一条指令中有几个操作数地址可以将改指令称为几地址指令。一般包括(零地址,一地址,二地址,三地址指令)

 一定注意:地址码A1中存放的是操作数的地址不是操作数本身,这里的操作数可不是操作码,这个一会我介绍一下二者。

 

🍄操作数和操作码的区别

  1. 名字不一样 
  2. 定义和作用:操作码是指令中的一部分,用于表示指令的操作类型或功能。它指定了计算机执行的具体操作,例如算术运算、逻辑运算、数据传输等。操作码决定了计算机在执行指令时要执行的操作类型。操作数则是用于进行操作的数据或值,它是指令操作的输入或输出。

  3. 功能:操作码决定了指令的操作类型,而操作数则提供了操作所需的数据或值。操作码告诉计算机要执行的操作,操作数提供了操作所需的具体数据。例如,一个加法指令的操作码表示加法操作,而操作数可以是要相加的两个数。

就是说操作码告诉设备你该干什么操作:加减乘除哪一种,而操作数就例如加数,被除数啊这类的。

 🌈2.3扩展操作码

(了解一下,我们考试考,书上没有)

  1. 在传统的固定长度操作码中,每个指令都有固定的位数分配给操作码,例如8位或16位。但是,在某些指令集架构中,为了提供更灵活的指令编码和更多的操作命令,可以采用变长操作码的方式。
  2. 在变长操作码中,不同指令的操作码字段可以具有不同的位数。这样可以根据实际需求动态地分配更多或更少的位数给不同的指令。

 学过计算机网络没,IP地址不是由网络号+主机号吗?一般扩展网络号就是把主机号的一部分地方给网络号,这个跟他相似。

注意,机器字长固定,而操作码数不固定,不要搞错。 

 

 

 

🐠对比 

 🐠总结:

 

 🎵3.指令和数据数据的寻址方式

寻址包括指令寻址数据寻址两大类。

  • 指令寻址:确定下一条要执行指令地址。
  • 数据寻址:确定本条指令的操作数地址。

🌈3.1指令寻址

  •  指令寻址是确定下一条要执行指令的地址。
  • 在计算机中,指令寻址是通过指令指针(Instruction Pointer)或程序计数器(Program Counter,PC)来实现的。指令指针或程序计数器是一个特殊的寄存器,它存储着下一条要执行的指令的地址。
  • 包括:顺序寻址和跳跃寻址。
  1. 顺序寻址:顺序寻址是指按照连续的地址顺序依次执行指令的寻址方式。在顺序寻址中,每条指令的地址是前一条指令的地址加上固定的偏移量(通常是指令的长度)。

    顺序寻址适用于按顺序执行的程序,其中每条指令的地址都可以通过前一条指令的地址计算得到。

  2. 跳跃寻址:跳跃寻址是指通过跳转指令或分支指令在程序中非顺序地跳转到指定的目标地址的寻址方式。跳跃寻址用于改变程序的执行流程,使程序可以根据条件或需要跳转到其他位置执行。

指令寻址比较简单,这里就重点介绍数据数据寻址了。

🌈3.2数据寻址

数据寻址是为了确定本条指令的执行地址。

 🐠1隐含寻址:

🐠2立即寻址

🐠3直接寻址

🐠4间接寻址

🐠5寄存器寻址

🐠6寄存器间接寻址

🐠7偏移寻址

(图没搞到兄弟们,抱歉!) 

🐠8相对寻址

 

🎵4.总结 

🌈4.1小结

🌈4.2本章总结 

 

  1.  一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且影响到系统软件。
  2. 指令格式是指令字用二进制代码表示的结构形式。通常由操作码字段和地址码字段构成。操作码字段表征指令的操作特性与功能,地址码字段知识操作数的地址。目前多用零地址,单地址,二地址混合表示的指令格式。
  3. 形成指令地址的方式,称为指令寻址方式。有顺序寻址跳跃寻址两种。由指令计数器跟踪。
  4. 形成操作数地址的方式,称为数据寻址方式。操作数可放在专用寄存器,通用寄存器,内存和指令中。按操作数的物理位置不同,有RR,RS两种类型。前者比后者执行的速度快。

 

这篇关于【计算机组成原理】-指令系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/596979

相关文章

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意