机组 指令系统

机器指令

机器指令:每一条机器语言的语句

指令系统:全部机器指令的集合

指令的一般格式

指令由操作码和地址码两部分组成

操作码

作用:指明该指令要完成的操作

位数:反映机器的操作种类,即机器允许的指令条数

长度:可以是固定的,可以是变化的

  • 固定长度:操作码集中放在指令字的一个字段内,便于硬件设计,指令译码时间短,广泛用于字长较长的、大中型计算机和超级小型计算机以及 RISC
  • 不固定长度:操作码分散在指令字的不同字段,有效地压缩操作码地平均长度,在字长较短地微型计算机中被广泛使用

n 地址指令的操作码的高位不可以复用 n+1 地址指令的操作码

尽量安排指令使用频度高的指令占用短的操作码,对使用频度低的指令可占用较长的操作码,以缩短经常使用的指令的译码时间

地址码

作用:指出该指令的源操作数的地址(一个或两个)、结果的地址以及下一个指令的地址【地址:主存的地址、寄存器的地址、I/O 设备的地址】

四地址指令

(A1)OP(A2)--->(A3)

若地址字段均指示主存的地址,完成一条四地址指令,需访存四次,取指令一次,取操作数两次,存放结果一次

三地址指令

(A1)OP(A2)--->(A3)

后续指令的地址隐含在程序计数器 PC 中

若地址字段均指示主存的地址,完成一条四地址指令 四次访存

二地址指令

(A1)OP(A2)--->(A1) A1 字段既代表源操作数的地址,又代表存放本次运算结果的地址 四次访存

(A1)OP(A2)--->(A2) A2 字段既代表源操作数的地址,又代表中间结果的存放地址 四次访存

(A1)OP(A2)--->ACC 中间结果暂存于累加器 ACC 中 三次访存(取指、取操作数、取操作数 )

一地址指令

(ACC)OP(A1)--->ACC ACC 既存放参与运算的操作数,又存放运算的中间结果 两次访存(取指、取操作数)

零地址指令

零地址指令在指令中无地址码

空操作 NOP、停机 HLT ......这类指令只有操作码

子程序返回 RET、中断返回 IRET ......这类指令没有地址码,其操作数的地址隐含在堆栈指针 SP 中

注意

硬件资源(PC、ACC......)承担指令字中需指明的地址码,在不改变指令字长的前提下,扩大指令操作数的直接寻址范围,缩短指令字长,减少访存次数

地址字段可用来表示寄存器。当 CPU 中含有多个通用寄存器时,对每个寄存器赋予一个编号,便可指明源操作数和结果存放在的寄存器,地址字段表示寄存器也有三地址、二地址、一地址之分,其共同点是,在指令的执行阶段都不必访问存储器,直接访问寄存器,提高机器运行速度 一次访存(取指)

指令字长

决定因素:操作码的长度、操作数地址的长度和操作数地址的个数

不同机器的指令字长不同

操作

操作数类型

操作类型

寻址方式

定义:指确定本条指令的数据地址以及下一条将要执行的指令地址的方法

与硬件结构紧密相关,直接影响指令格式和指令功能

分类:指令寻址、数据寻址

指令寻址

分类:顺序寻址、跳跃寻址

顺序寻址:通过程序计数器 PC +1,自动形成下一条指令的地址

跳跃寻址:通过转移类指令实现

数据寻址

数据寻址方式种类多,在指令字中必须设一字段指明属于哪一种寻址方式

形式地址 A:指令的地址码字段,通常不表示操作数的真实地址

有效地址 EA:操作数的真实地址,由寻址方式和形式地址共同确定

立即寻址

特点:操作数本身设在指令字内,形式地址 A 不是操作数的地址,而是操作数本身,称为立即数,数据采用补码形式存放

"#"表示立即寻址特征标记

优点:只要取出指令,便可立即获得操作数,指令执行阶段不必再访问存储器

缺点:A 的位数限制了这类指令所表述的立即数的范围

访存:一条指令的执行,不考虑存结果,访存一次(取指令)

直接寻址

特点:指令字中的形式地址 A 是操作数的真实地址 EA,即 EA=A

优点:寻找操作数比较简单,不需要专门计算操作数的地址,在指令执行阶段对主存只访问一次

缺点:A 的位数限制了操作数的寻址范围,必须修改 A 的值,才能修改操作数的地址

访存:一条指令的执行,不考虑存结果,访存两次(取指令,取操作数)

隐含地址

特点:指令字中不明显地给出操作数的地址,其操作数的地址隐含再操作码或某个寄存器中

优点:有利于缩短指令字长

间接寻址

特点:有效地址由形式地址间接提供 EA=(A)

多次间接寻址时,可用存储字的首位标志间接寻址是否结束,当存储字首位为"1"时,标明还需继续访存寻址;当存储字首位为"0"时,标明该存储字即为 EA,存储字的首位不能作为 EA 的组成部分

优点:扩大了操作数的寻址范围【因为 A 的位数通常小于指令字长,存储字长可以与指令字长相等】,便于编制程序

缺点:指令的执行阶段需要访存两次(一次间接寻址)或多次(多次间接寻址),使指令执行时间延长

寄存器寻址

特点:地址码字段直接指出寄存器的编号 EA=Ri ,操作数在由 Ri 所指的寄存器内

优点:因为操作数不在主存中,所以寄存器寻址在指令执行阶段无须访存,减少了执行时间;由于地址字段只需指明寄存器编号,故指令字较短,节省了存储空间

访存:指令执行阶段不需要访存

寄存器间接寻址

特点:Ri 中的内容不是操作数,而是操作数所在主存单元的地址号,即有效地址 EA=(Ri)

访存:比间接寻址少访存一次,指令的执行阶段需要访存

基址寻址

特点:设基址寄存器 BR,其操作数的有效地址 EA 等于指令字中的形式地址与基址寄存器中内容相加,即 EA=A+(BR)

分类:隐式、显式

  • 隐式:在计算机内专门设有一个基址寄存器 BR,使用时用户不必明显指出该基址寄存器,只需由指令的寻址特征位反映出基址寻址即可
  • 显式:在一组通用寄存器里,由用户明确指出哪个寄存器作为基址寄存器,存放基地址

优点:扩大操作数的寻址范围(基址寄存器的位数可以大于形式地址 A 的位数)

基址寻址在多道程序中极为有用,操作系统或管理程序根据主存的使用状况,赋予基址寄存器内一个初始值(基地址),便可将用户程序的逻辑地址转换为主存的物理地址(实际地址),把用户程序安置于主存的某一空间区域

在程序执行过程中,用户不知道自己的程序在主存的哪个空间,用户不可修改基址寄存器的内容,以确保系统安全可靠地运行

变址寻址

特点:有效地址 EA 等于指令字中的形式地址 A 与变址寄存器 IX 的内容相加之和,即 EA=A+(IX)

变址寻址和基址寻址的区别:

  • 基址寻址:主要用于为程序或数据分配存储空间,基址寄存器中的内容通常由操作系统或管理程序确定,在程序的执行过程中其值不可变,而指令字中的 A 是可变的
  • 变址寻址:变址寄存器的内容由用户设定,在程序执行过程中其值可变,而指令字中的 A 是不可变的。变址寻址主要用于处理数组问题,在数组处理过程中,可设定 A 为数组的首地址,不断改变变址寄存器 IX 的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序

变址寻址与其他寻址方式结合:

  • 变址寻址与基址寻址合用:EA=A+(IX)+(BR)
  • 变址寻址与间接寻址合用:形成变址后间址或先间址再变址

相对寻址

特点:有效地址是将程序计数器 PC 的内容(即当前指令的地址)与指令字中的形式地址 A 相加而成,即

EA=(PC)+A

相对寻址常被用于转移类指令,转移后的目标地址与当前指令有一段距离,称为相对位移量,由指令字的形式地址 A 给出,A 称为位移量【A可正可负,通常用补码表示】

若位移量为 8 位,则指令的寻址范围为 (PC)+127~(PC)-128

最大特点:转移地址不固定,可随 PC 值的变化而变

相对寻址可与间接寻址配合使用

堆栈寻址

堆栈寻址要求计算机中设有堆栈

堆栈既可用寄存器组(硬堆栈)实现,也可利用主存的一部分空间作堆栈(软堆栈)

堆栈的运行方式为先进后出和先进先出两种

RISC 技术

RISC 精简指令系统计算机

CISC 复杂指令系统计算机

RISC 主要特点

  1. 选取使用频度较高的一些简单指令以及一些很有用但不复杂的指令,让辅助指令的功能由频度高的简单指令的组合实现 指令系统复杂庞大,各种指令使用频度相差很大
  2. 指令长度固定,指令格式种类少,寻址方式种类少 指令字长不固定,指令格式多,寻址方式多
  3. 只有取数/存数(LOAD/STORE)指令访问存储器,其余指令的操作都在寄存器内完成 可以访存的指令不受限制
  4. CPU 中有多个通用寄存器 CPU中设有专用寄存器
  5. 采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期 绝大多数指令需要多个时钟周期方可执行完毕
  6. 控制器采用组合逻辑控制,不用微程序控制 采用微程序控制器
  7. 采用优化的编译程序 难以用优化编译生成高效的目标代码

紫色是 CISC 的特点

相关推荐
YuCaiH13 天前
【计算机组成原理】计算机的性能指标
笔记·计算机组成原理
墨染青竹梦悠然1 个月前
《计算机组成原理》(第3版)第10章 控制单元的设计 复习笔记
笔记·计算机组成原理
命运之光1 个月前
【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确
指令·计算机组成原理·微机原理
墨染青竹梦悠然1 个月前
《计算机组成原理》(第3版)考研真题
笔记·考研·计算机组成原理
墨染青竹梦悠然1 个月前
《计算机组成原理》(第3版)第7章 指令系统 复习笔记
笔记·计算机组成原理
约束1121 个月前
数字电路速通学习笔记(绝对精品!)
笔记·学习·嵌入式·数字电路·计算机组成原理·硬件
给国家添砖java1 个月前
计算机组成原理——第二章(16)
考研·计算机组成原理
码明1 个月前
计算机的性能指标
计算机组成原理
天堂的恶魔9461 个月前
计算机组成原理 —— 指令流水线影响因素分类
计算机组成原理
James Shangguan1 个月前
繁简之争:为什么手机芯片都是 ARM
arm开发·arm·计算机组成原理