本文主要是介绍【计算机组成原理】-指令系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
🎵1.指令的发展
🌈1.1基础概念
- 计算机的程序是由一系列的机器指令组成的。指令就是要计算机执行某种操作的命令。
- 从计算机的层次结构来说,有微指令,机器指令和宏指令之分。微程序中用到微指令,属于硬件,而宏指令是若干条机器指令组成的软件指令,属于软件。机器指令介于二者间,通常简称指令。
- 每一条指令可完成一独立的算术运算和逻辑运算操作。
1.2🌈CISC到RISC
CISC叫做复杂指令集系统计算机,因为当时的计算机指令系统多达几百条,如此庞大的指令系统不但使计算机的研制周期变长,而且采用了大量使用频率很低而且复杂指令而造成硬件资源浪费。后来又设计了精简指令系统计算机RISC。
- 出现从CISC(Complex Instruction Set Computer,复杂指令集计算机)到RISC(Reduced Instruction Set Computer,精简指令集计算机)的转变(课本问题)主要是为了提高计算机的性能和效率,并简化计算机体系结构的设计和实现。
以下是一些主要原因和动机:
简化指令集:CISC体系结构中的指令集非常复杂,涵盖了大量的指令和复杂的地址模式。这样的复杂性导致了设计、实现和调试的困难,同时也增加了指令的执行时间和资源消耗。相比之下,RISC体系结构采用了更加简化和统一的指令集,减少了指令的种类和复杂性,使得指令的解码和执行更加高效。
提高指令执行速度:CISC体系结构中的指令通常具有不同的执行时间,导致部分指令执行较慢,影响了整体的性能。而RISC体系结构的指令执行时间相对均匀,使得指令的执行更加预测性和高效,从而提高了计算机的性能。
硬件优化:CISC体系结构中的复杂指令需要更多的硬件资源和逻辑电路来实现,增加了设计和制造的成本。相比之下,RISC体系结构采用了简化的指令集,可以更好地利用硬件资源,提供更高的性能和效率。
🎵2.指令格式
当控制器从主存储器中获取指令后,它会解析指令的信息字段(操作码和操作数字段),并生成相应的控制信号。这些控制信号会被发送给运算器和其他功能部件,以指示它们执行特定的操作。
那控制器是如何解析指令的?或者它是怎么知道指令的那一部分代表什么含义?所以就需要规定一下指令的格式。
- 机器指令是机器字来表示的。表示一条指令的机器字,叫做指令字,简称指令。
🌈 2.1操作码
设计计算机时,对指令系统的每一条指令都要规定一个操作码。指令的操作码表示该指令进行什么性质的操作:加法,乘法等。
不同的指令用操作码字段的不同编码表示,每一种编码表示一种指令。
CPU中有专门的电路来解释每一个操作码,因此机器就能执行操作码表示的操作。
对于一个机器的指令系统,在指令字中操作码字段和地址码字段长度通常是固定的。
🌈2.2地址码
地址码(Addressing Mode)是指令集架构中用于指定操作数地址或操作数本身的编码方式。它决定了计算机在执行指令时如何获取操作数的位置或值。
🍄地址指令
根据一条指令中有几个操作数地址可以将改指令称为几地址指令。一般包括(零地址,一地址,二地址,三地址指令)
一定注意:地址码A1中存放的是操作数的地址不是操作数本身,这里的操作数可不是操作码,这个一会我介绍一下二者。
🍄操作数和操作码的区别
- 名字不一样
定义和作用:操作码是指令中的一部分,用于表示指令的操作类型或功能。它指定了计算机执行的具体操作,例如算术运算、逻辑运算、数据传输等。操作码决定了计算机在执行指令时要执行的操作类型。操作数则是用于进行操作的数据或值,它是指令操作的输入或输出。
功能:操作码决定了指令的操作类型,而操作数则提供了操作所需的数据或值。操作码告诉计算机要执行的操作,操作数提供了操作所需的具体数据。例如,一个加法指令的操作码表示加法操作,而操作数可以是要相加的两个数。
就是说操作码告诉设备你该干什么操作:加减乘除哪一种,而操作数就例如加数,被除数啊这类的。
🌈2.3扩展操作码
(了解一下,我们考试考,书上没有)
- 在传统的固定长度操作码中,每个指令都有固定的位数分配给操作码,例如8位或16位。但是,在某些指令集架构中,为了提供更灵活的指令编码和更多的操作命令,可以采用变长操作码的方式。
- 在变长操作码中,不同指令的操作码字段可以具有不同的位数。这样可以根据实际需求动态地分配更多或更少的位数给不同的指令。
学过计算机网络没,IP地址不是由网络号+主机号吗?一般扩展网络号就是把主机号的一部分地方给网络号,这个跟他相似。
注意,机器字长固定,而操作码数不固定,不要搞错。
🐠对比
🐠总结:
🎵3.指令和数据数据的寻址方式
寻址包括指令寻址和数据寻址两大类。
- 指令寻址:确定下一条要执行指令地址。
- 数据寻址:确定本条指令的操作数地址。
🌈3.1指令寻址
- 指令寻址是确定下一条要执行指令的地址。
- 在计算机中,指令寻址是通过指令指针(Instruction Pointer)或程序计数器(Program Counter,PC)来实现的。指令指针或程序计数器是一个特殊的寄存器,它存储着下一条要执行的指令的地址。
- 包括:顺序寻址和跳跃寻址。
顺序寻址:顺序寻址是指按照连续的地址顺序依次执行指令的寻址方式。在顺序寻址中,每条指令的地址是前一条指令的地址加上固定的偏移量(通常是指令的长度)。
顺序寻址适用于按顺序执行的程序,其中每条指令的地址都可以通过前一条指令的地址计算得到。
跳跃寻址:跳跃寻址是指通过跳转指令或分支指令在程序中非顺序地跳转到指定的目标地址的寻址方式。跳跃寻址用于改变程序的执行流程,使程序可以根据条件或需要跳转到其他位置执行。
指令寻址比较简单,这里就重点介绍数据数据寻址了。
🌈3.2数据寻址
数据寻址是为了确定本条指令的执行地址。
🐠1隐含寻址:
🐠2立即寻址
🐠3直接寻址
🐠4间接寻址
🐠5寄存器寻址
🐠6寄存器间接寻址
🐠7偏移寻址
(图没搞到兄弟们,抱歉!)
🐠8相对寻址
🎵4.总结
🌈4.1小结
🌈4.2本章总结
- 一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且影响到系统软件。
- 指令格式是指令字用二进制代码表示的结构形式。通常由操作码字段和地址码字段构成。操作码字段表征指令的操作特性与功能,地址码字段知识操作数的地址。目前多用零地址,单地址,二地址混合表示的指令格式。
- 形成指令地址的方式,称为指令寻址方式。有顺序寻址和跳跃寻址两种。由指令计数器跟踪。
- 形成操作数地址的方式,称为数据寻址方式。操作数可放在专用寄存器,通用寄存器,内存和指令中。按操作数的物理位置不同,有RR,RS两种类型。前者比后者执行的速度快。
这篇关于【计算机组成原理】-指令系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!