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

文章详细介绍了计算机指令系统的发展,从CISC的复杂指令集到RISC的精简指令集,强调了指令系统对硬件结构和软件性能的影响。重点讨论了指令格式,包括操作码、地址码和指令字长度,并列举了各种寻址方式。此外,还提到了ARM架构的汇编语言,强调了指令系统在现代计算机体系结构中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录

  • 第一章 计算系统概论
  • 第二章 运算方法和运算器
  • 第三章 多层次的存储器
  • 第四章 指令系统
  • 第五章 中央处理器
  • 第六章 总线系统
  • 第七章 外围设备
  • 第八章 输入输出系统


前言

第四章 指令系统


【 第四章 指令系统 】

4.1 指令系统的发展与性能要求

4.1.1 指令系统的发展

指令系统基本概念

  • 指令:就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令是微程序级的命令,它属于硬件;
  • 宏指令:由若干条机器指令组成的软件指令,它属于软件;
  • 机器指令:介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。

本章所讨论的指令,是机器指令。

  • 一台计算机中所有机器指令的集合,称为这台计算机的指令系统。
  • 指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围

发展情况

  • 复杂指令系统计算机,简称CISC。但是如此庞大的指令系统不但使计算机的研制周期变长,难以保证正确性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令而造成硬件资源浪费。例P48运算器
  • 精简指令系统计算机:简称RISC,人们又提出了便于VLSI技术实现的精简指令系统计算机。

4.1.2 对指令系统性能的要求

  • 完备性:
    • 完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。
    • 完备性要求指令系统丰富、功能齐全、使用方便。
    • 一台计算机中最基本、必不可少的指令是不多的。
    • 许多指令可用最基本的指令编程来实现。
    • 例如,乘除运算指令、浮点运算指令可直接用硬件来实现,也可用基本指令编写的程序来实现。
    • 采用硬件指令的目的是提高程序执行速度,便于用户编写程序。
  • 有效性:
    • 有效性是指利用该指令系统所编写的程序能够高效率地运行。
    • 高效率主要表现在程序占据存储空间小、执行速度快。
    • 一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。
  • 规整性:
    • 规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。
    • 对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;
    • 匀齐性是指:一种操作性质的指令可以支持各种数据类型。如算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等
    • 指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。例如指令长度和数据长度通常是字节长度的整数倍
  • 兼容性:
    • 系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。
    • 但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。

4.1.3 低级语言与硬件结构的关系

在这里插入图片描述

4.2 指令格式

4.2.1 操作码

  • 设计计算机时,对指令系统的每一条指令都要规定一个操作码。指令的操作码OP表示该指令应进行什么性质的操作,如进行加法、减法、乘法、除法、取数、存数等等。不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。
  • 组成操作码字段的位数一般取决于计算机指令系统的规模。较大的指令系统就需要更多的位数来表示每条特定的指令。
    • 等长(指令规整,译码简单)
    • 例如IBM 370机,该机字长32位,16个通用寄存器R0~R15,共有183条指令;指令的长度可以分为16位、32位和48位等几种,所有指令的操作码都是8位固定长度。
    • 固定长度编码的主要缺点是:信息的冗余极大,使程序的总长度增加。

4.2.2 地址码

  • 根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。三地址指令、二地址指令、单地址指令、零地址指令
    在这里插入图片描述
  • 三地址指令
    • 指令格式:| 操作码op | 第一操作数A1 | 第二操作数A2 | 结果A3 |
    • 功能描述:
      • (A1) op(A2)→A3
      • (PC) +1→PC(程序计数器)
    • 这种格式指令长度比较长,所以只在字长较长的大、中型机中使用,而小型、微型机中很少使用。
  • 二地址指令
    • 指令格式:| 操作码op | 第一操作数A1 | 第二操作数A2 |
    • 功能描述:
      • (A1) op(A2)→A1
      • (PC)+1→PC
    • 二地址指令在计算机中得到了广泛的应用,但是在使用时必须注意:指令执行之后,A1中原存的内容已经被新的运算结果替换了。
    • 二地址地址根据操作数的物理位置分为:(快→慢)
      • SS 存储器-存储器类型
      • RS 寄存器-存储器类型
      • RR 寄存器-寄存器类型
  • 一地址指令
    • 指令格式:| 操作码op | 第一操作数A1 |
    • 功能描述:
      • (AC) op(A1) →A1
      • (PC)+1→PC
    • 单操作数运算指令,如“+1”、“-1”、“求反”
    • 指令中给出一个源操作数的地址
  • 零地址指令
    • 指令格式:| 操作码op |
    • “停机”、“空操作”、“清除”等控制类指令。

4.2.3 指令字长度

  • 概念
    • 指令字:一条指令的机器字,简称指令
    • 指令字长度(一个指令字包含二进制代码的位数)
    • 机器字长:计算机能直接处理的二进制数据的位数。
    • 单字长指令、半字长指令、双字长指令
    • 多字长指令、等长指令、非等长指令
  • 多字长指令的优缺点
    • 优点提供足够的地址位来解决访问内存任何单元的寻址问题 ;
    • 缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的运算速度,又占用了更多的存储空间。
  • 指令系统中指令采用等长指令的优点:各种指令字长度是相等的,指令字结构简单,且指令字长度是不变的 ;
  • 采用非等长指令的的优点:各种指令字长度随指令功能而异,结构灵活,能充分利用指令长度,但指令的控制较复杂 。

4.2.4 指令助记符

  • 由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。
  • 为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符
    • 用3~4个英文字母来表示操作码,一般为英文缩写
    • 不同的计算机系统,规定不一样
    • 必须用汇编语言翻译成二进制代码

4.2.5 指令格式举例

指令格式包括两个方面:操作码字段 地址码字段

4.3 操作数类型

4.3.1 一般的数据类型

  • 地址数据:地址实际上也是一种形式的数据。
  • 数值数据:计算机中普遍使用的三种类型的数值数据。
    • ①定点整数或定点小数;
    • ②浮点数;
    • ③压缩十进制数,BCD码。
  • 字符数据:文本数据或字符串,目前广泛使用ASCII码。
  • 逻辑数据:一个单元中有几位二进制bit项组成,每个bit的值可以是1或0。当数据以这种方式看待时,称为逻辑性数据。

4.3.2 Pentium数据类型

常规、整数、序数、未压缩的BCD、压缩的BCD、近指针、位串、字符串、浮点数

4.3.3 Power PC数据类型

无符号字节、无符号半字、有符号半字、无符号字、有符号字、无符号双字、字节串、浮点数

4.4 指令和数据的寻址方式

4.4.1 指令的寻址方式

  • 顺序方式
    • PC:执行完一条指令,pc+1
  • 跳跃方式
    在这里插入图片描述

4.4.2 操作数基本寻址方式

  • 形成操作数有效地址的方法,称为寻址方式。例如,一种单地址指令的结构如下:操作码OP、变址X、间址I、形式地址A
  • 变址和间址称为寻址方式特征位。
    在这里插入图片描述
  1. 隐含寻址
  • 指令中隐含着操作数的地址
  • 如某些运算,隐含了累加器AC作为源和目的寄存器
    • add al, bl;
    • daa; 将al中的内容转成BCD码
  1. 立即寻址
  • 立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,就取出了可以立即使用的操作数,因此,这样的操作数被称为立即数。
  • 指令格式:操作码OP 操作数Amov AH, 80H;
  1. 直接寻址
  • 指令中地址码字段给出的地址A就是操作数的有效地址EA(Effective Address),即EA=A。mov AH, [80H];
    在这里插入图片描述
  1. 间接寻址
  • 间接寻址意味着指令的地址码部分给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。
  • 操作数的有效地址的计算公式为:EA=(A)mov AH, @[80H];
    在这里插入图片描述
  1. 寄存器寻址
  • 在指令的地址码部分给出CPU内某一通用寄存器的编号,指令的操作数存放在相应的寄存器中,即EA=Ri
  • 优点:
    • 由于寄存器在CPU的内部,指令在执行时从寄存器中取操作数比访问主存要快得多;
    • 由于寄存器的数量较少,因此寄存器编号所占位数也较少,从而可以有效减少指令的地址码字段的长度。
      在这里插入图片描述
  1. 寄存器间接寻址
  • 为了克服间接寻址中多次访存的缺点,可采用寄存器间接寻址,即将操作数放在主存储器中,而操作数的地址放在某一通用寄存器中,然后在指令的地址码部分给出该通用寄存器的编号
  • 计算公式:EA=(Ri) Mov AX, @R0;
  • 这种寻址方式的指令较短,并且在取指后只需一次访存便可得到操作数,因此指令执行速度较前述的间接寻址方式要快,也是目前在计算机中使用较为广泛的一种寻址方式。
    在这里插入图片描述
  1. 偏移寻址
  • 相对寻址:由程序计数器PC提供基准地址,而指令的地址码部分给出相对的位移量D,两者相加后作为操作数的有效地址,即:EA=(PC)+D。
    在这里插入图片描述
  • 基址寻址
    • 基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。
      在这里插入图片描述
  • 变址寻址
    • 变址寻址就是将指令的地址码部分给出的基准地址A与CPU内某特定的变址寄存器Rx中的内容相加,以形成操作数的有效地址
      在这里插入图片描述
  1. 段寻址方式
  • 存储空间划分为多段 | 4 | 16 |,| 2 | 2 | (p132)
    在这里插入图片描述

堆栈寻址

  • 分寄存器堆栈、存储器堆栈:以先进后出原理存储数据

4.4.3 寻址方式举例

4.5 典型指令

4.5.1 指令的分类

  • 数据传送类指令
    • 一般传送指令: MOV AX,BX
    • 数据交换指令: XCHG
    • 堆栈操作指令: PUSH,POP
  • 运算类指令
    • 算术运算指令: 加、减、乘、除以及加1、减1、比较
    • 逻辑运算指令: and, or, nor, xor
    • 移位指令:RR, RL, RRC, RLC
  • 程序控制类指令
    • 程序控制类指令用于控制程序的执行方向,并使程序具有测试、分析与判断的能力。
  • 输入和输出指令、字符串处理指令、特权指令、其他指令

4.5.2 基本指令系统的操作

  • 20%和80%规律:CISC中大约有20%的指令使用频率高,占据了80%的处理机时间,而有80%的不常用指令只占用处理机的20%时间。
  • VLSI技术发展引起的问题
  • VLSI工艺要求规整性,而大量复杂指令控制逻辑极其不规整,给VLSI工艺造成了很大的困难。
  • 现在用微程序实现复杂指令与用简单指令组成的子程序相比,没有多大的区别。因为现在控制存储器和主存的速度差缩小。
  • CISC中,通过增强指令系统的功能,简化了软件,增加了硬件的复杂程度。然而指令复杂了,指令的执行时间必然加长,从而使整个系统的执行时间反而增加,因而在计算机体系结构设计中,软硬件的功能分配必须恰当

4.5.3 精简指令系统

  • 特点(采用流水线技术)
    • 简单而统一格式的指令译码
    • 大部分指令可以单周期执行
    • 只有LOAD/STORE可以访问存储器
    • 简单的寻址方式
    • 采用延迟转移技术
    • 采用LOAD延迟技术
    • 三地址指令格式
    • 较多的寄存器
    • 对称的指令格式

4.6 ARM汇编语言

  • 汇编语言是计算机机器语言(二进制指令代码)进行符号化的一种表示方法,每一个基本汇编语句对应一条机器指令。
  • 表4.11列出了嵌入式处理机ARM的汇编语言。其中操作数使用16个寄存器(r0 , r1~r12 , sp , Ir , pc),230个存储字(字节编址,连续的字的地址间相差4)。
  • 在进行汇编语言程序设计时,可直接使用英文单词或其缩写表示指令,使用标识表示数据或地址,从而有效地避免了记忆二进制的指令代码。
  • 不用由程序设计人员对指令和数据分配内存地址,直接调用操作系统的某些程序段完成输入输出。
  • 用编辑程序建立好的汇编语言源程序,需要经过系统软件中的“汇编器”翻译为机器语言程序之后,才能交付给计算机硬件系统去执行。

【 第四章 指令系统 】总结

  • 一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也影响到系统软件。指令格式是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。
  • 操作码字段表征指令的操作特性与功能,而地址码字段指示操作数的地址。目前多采用二地址、单地址、零地址混合方式的指令格式。指令字长度分为:单字长、半字长、双字长三种形式。高档微机采用32位长度的单字长形式。
  • 形成指令地址的方式,称为指令寻址方式。有顺序寻址和跳跃寻址两种,由指令计数器来跟踪。形成操作数地址的方式,称为数据寻址方式。操作数可放在专用寄存器、通用寄存器、内存和指令中。数据寻址方式有隐含寻址、立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、相对寻址、基值寻址、变址寻址、块寻址、段寻址等多种。按操作数的物理位置不同,有RR型和RS型。前者比后者执行的速度快。
  • 形成指令地址的方式,称为指令寻址方式。有顺序寻址和跳跃寻址两种,由指令计数器来跟踪。形成操作数地址的方式,称为数据寻址方式。操作数可放在专用寄存器、通用寄存器、内存和指令中。数据寻址方式有隐含寻址、立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、相对寻址、基值寻址、变址寻址、块寻址、段寻址等多种。按操作数的物理位置不同,有RR型和RS型。前者比后者执行的速度快。
  • 汇编语言与具体机器的依赖性很强。为了解该语言的特点,列出了目前流行的嵌入式处理机ARM的汇编语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值