计组学习第六章指令系统

本文详细探讨了机器指令的构成、地址码的不同形式,以及操作数类型和操作种类。重点介绍了RISC和CISC架构的区别,强调了寻址方式对指令效率的影响。
摘要由CSDN通过智能技术生成

第六章指令系统

一、机器指令

  • 指令字长取决于机器码的长度、操作数地址的长度和操作数地址的个数。

1.1指令的一般格式

  • 指令一般由操作码和地址码组成

image-20230831145137636

1.操作码:反映机器做什么操作。操作码不仅要指出要做的操作,还有一部分指出对什么样的数据进行操作。

——操作码可以是长度固定的:用于指令字长较长的情况,RISC。如IBM370,操作码定长8位。

——操作码可以是长度可变的:操作码分散在指令字的不同字段中。

扩展操作码技术

  • 指令的位数不变,如果操作码的位数要增加,则地址码的位数要随之减少。
  • 扩展操作码安排示意图:基本操作码OP有4位;另有3个4位长的地址字段为A1、A2、A3。

image-20230831160739793

在扩展操作码时,短操作码一定不能为长操作码的前缀,则当从4为操作码扩展为8位操作码时,前4位要进行相应处理。

指令字长为16位。4位基本操作码若全部用于三地址指令,则有16条。

若采用扩展操作码技术,如图中:

①当操作码取4位时,三地址指令最多为15条,1111留作扩展操作码用。

②当操作码取8位时,二地址指令最多为15条,1111 1111留作扩展操作码用。

③当操作码取12位时,一地址指令最多为15条,1111 1111 1111留作扩展操作码用。

④当操作码取16位时,零地址指令位16条。

综共①+②+③+④=61条指令。

2.地址码

(1)四地址

image-20230831162655070

  • 这种方式至少需要4次访存:取指令、取操作数A1、取操作数A2、将结果A3保存到内存中。

  • 设指令字长为32位,操作码固定位8位,剩下平均分给地址部分,则每个地址码为6位。即寻址范围为2^6 = 64。

(2)三地址

  • 在现代计算机中,我们采用PC来保存下一条指令要访问的地址。若用PC代替A4,则为三地址指令。

image-20230831163152996

  • 这种方式也需要4次访存:取指令、取操作数A1、取操作数A2、将结果A3保存到内存中。

  • 设指令字长为32位,操作码固定位8位,剩下平均分给地址部分,由于地址码减少,则每个地址码为8位。即寻址范围为2^8 = 256。

(3)二地址

  • 若A3用A1或A2代替,也就是说结果保存到参加运算的原操作数中的一个。则为两地址指令。

image-20230831163524254

  • 这种方式也需要4次访存:取指令、取操作数A1、取操作数A2、将结果保存到内存中。

  • 若结果存于ACC,则只需要3次访存。

  • 设指令字长为32位,操作码固定位8位,由于地址码减少,则每个地址码为12位。即寻址范围为2^12 = 4K。

(4)一地址

  • 若ACC代替A1(或A2),则为一地址指令。

image-20230831163750859

  • 这种方式需要2次访存:取指令、取操作数A1。
  • 设指令字长为32位,操作码固定位8位,由于地址码减少,则每个地址码为24位。即寻址范围为2^24 = 16M。

(5)零地址

  • 这种方式没有显式地址,只给出操作码OP。
  • 例如:空操作、停机这类指令。或者采用堆栈计算机中,通常参加两个操作数隐含在栈顶和次栈弹出,运算后压入堆栈。

1.2指令字长

  • 指令字长取决于:操作码长度、操作数地址的长度、操作数地址的个数

①若指令字长固定:指令字长=存储字长

②若指令字长可变:按字节倍数变化

1.3小结

当用一些硬件资源代替指令字中的地址码字段后:

  • 可扩大指令寻址范围
  • 可缩短指令字长
  • 可减少访存字数

当指令的地址码字段为寄存器时:

  • 可缩短指令字长:三地址、二地址、一地址
  • 指令执行阶段甚至可以不访存。

二、操作数类型和操作种类

1.操作数类型:

①地址:地址可以被认为一个无符号的整数

②数字:定点数、浮点数、十进制

③字符:ASCII

④逻辑数:逻辑运算

2.数据在存储器中存放方式

  • 例:12345678H的存放方式

①大端存储方式:12 34 56 78H

②小端存储方式:78 56 34 12H

  • 若按照字节编址,数据在存储器中的存放方式(存储字长64位,机器字长32位)

注:存储字长64位,即CPU在访存中最多可以拿到一个64位数据。又机器字长为32位,则64位数据为双字。

①从任意位置开始

image-20230831165744171

优点:不浪费存储资源。

缺点:除了第一个字节外,访问其他任何类型数据可能要花费两个存储周期。且读写控制复杂。

②从存储字其实位置开始

image-20230831165911278

优点:无论访问任何一个类型的数据,在一个周期即可完成。读写控制简单。

缺点:浪费存储资源。

③边界对准方式——从地址的整数被位置开始访问。

image-20230831170032319

  • 数据存放的起始地址是数据长度的整数倍。
  • 即保证了访问数据在一个周期内,也减少了存储资源的浪费。

3.操作类型

①数据传送:通常有寄存器之间的传送(MOV)、从内存单元读取数据到CPU寄存器(LOAD)、从CPU寄存器谢数据到内存单元(STORE)等。

②算术逻辑操作:加、减、乘、除、与、或、非……

③移位操作:算术移位、逻辑移位、循环移位

④转移:无条件转移JMP,条件转移(如结果为零转JZ,结果溢出转JO……),调用和返回,陷阱与陷阱指令(意外事故的中断)。

⑤输入输出

三、寻址方式

  • 寻址方式:确定本条指令的操作数的地址,或者下一条要执行指令的地址。

  • 指令寻址划分为:指令寻址和数据寻址。

3.1指令寻址

①顺序寻址:顺序寻址按照程序计数器PC加1,自动形成下一条指令的地址。

②跳跃寻址:由转移指令指出下一条指令。

3.2数据寻址

image-20230831171743092

形式地址:指令字中的地址,记作A。

有效地址:操作数真实地址,记作EA。

约定:指令字长=存储字长=机器字长

3.2.1立即寻址

立即寻址:形式地址A就是操作数,立即寻址特征采用“ # ”标识

image-20230831171929826

  • 指令执行阶段不访存。且显然A位数限制了这类指令所能表述的立即数的范围。

3.2.2直接寻址

直接寻址:有效地址EA=形式地址A,即有效地址由形式地址直接给出。

image-20230831172228323

  • 执行阶段需要访问一次存储器。A位数决定指令操作数的寻址范围。操作数的地址不易修改。

3.2.3隐含寻址

隐含寻址:操作数地址隐含在操作码中。

image-20230831172509793

3.2.4间接寻址

间接寻址:EA=(A),即形式地址保存有效地址的地址。

①一次间址:执行指令阶段需要进行2次访存,可以扩大寻址范围,便于编制程序

image-20230831172850161

②二次间址:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.2.5寄存器(直接)寻址

寄存器寻址:EA=Ri,即有效地址为寄存器编号

image-20230831173333516

  • 在执行阶段不访存,只访问寄存器,执行速度快。
  • 寄存器个数有限,可缩短指令字长。

3.2.6寄存器间接寻址

寄存器间接寻址:EA=(Ri),有效地址在寄存器中。

image-20230831173517423

  • 有效地址在寄存器中,操作数在存储器中,执行阶段访问1次内存。
  • 便于循环程序的编制。

3.2.7基址寻址

(1)采用专用寄存器作为基址寄存器

EA=(BR) +A,BR为基址寄存器。

image-20230831173813395

  • 可扩大寻址范围,有利于多道程序
  • BR内容由操作数系统或管理程序确定
  • 在程序的执行过程中BR内容不变,形式地址A可变

(2)采用通用寄存器作为基址寄存器

image-20230831174021129

  • 由用户指定哪个通用寄存器作为基址寄存器。
  • 基址寄存器的内容由操作系统决定
  • 在执行过程中R0内容不变,形式地址A可变

3.2.8变址寻址

变址寻址:EA=(IX)+A,其中IX为变址寄存器(专用),通用寄存器也可以作为变址寄存器。

image-20230831174248900

  • 可扩大寻址范围
  • IX的内容由用户给定,IX内容可变,形式地址A不变。
  • 便于处理数组问题。

3.2.9相对寻址

相对寻址:EA=(PC)+A,A时相对于当前指令的位移量。

image-20230831174505093

  • A的位数决定操作数的寻址范围
  • 程序浮动,广泛用于转移指令。

3.2.10堆栈寻址

堆栈分为:硬堆栈、软堆栈。

①硬堆栈:多个寄存器

②软堆栈:指定存储空间

  • 按照先进后出(LIFO)管理存储区,栈顶地址由SP指出。

①进栈 (SP) - 1 → SP

②出栈 (SP) + 1 → SP

四、RISC和CISC

4.1复杂指令系统CISC

CISC主要特点:

①指令系统复杂庞大,各种指令使用频度相差较大

②指令长度不固定、指令格式多、寻址方式多

③放存指令不受限制

④大多数执行指令需要多个时钟周期

⑤采用微程序控制器,CPU中设有专用寄存器

4.2精简指令系统RISC

RISC主要特点:

①选用使用频度较高的一些简单指令,复杂指令功能由简单指令来组合

②指令长度固定、指令格式少、寻址方式少

③只有LOAD/STORE指令访存

④采用流水线技术,大部分指令在一个周期内完成。

⑤以硬布线(组合逻辑)控制为主,CPU中有多个寄存器。

4.3RISC和CISC比较

①RISC更能充分利用VLSI芯片面积,因为RISC采用组合逻辑控制。

②RISC更能提高计算机运算速度。采用组合逻辑便于实现指令流水。

③RISC便于设计,可降低成本,提高可靠性。

④RISC不易实现系统兼容,但有利于编译程序代码优化。

CPU中设有专用寄存器

4.2精简指令系统RISC

RISC主要特点:

①选用使用频度较高的一些简单指令,复杂指令功能由简单指令来组合

②指令长度固定、指令格式少、寻址方式少

③只有LOAD/STORE指令访存

④采用流水线技术,大部分指令在一个周期内完成。

⑤以硬布线(组合逻辑)控制为主,CPU中有多个寄存器。

4.3RISC和CISC比较

①RISC更能充分利用VLSI芯片面积,因为RISC采用组合逻辑控制。

②RISC更能提高计算机运算速度。采用组合逻辑便于实现指令流水。

③RISC便于设计,可降低成本,提高可靠性。

④RISC不易实现系统兼容,但有利于编译程序代码优化。

计算机组成原理——刘宏伟
参考文献:计算机组成原理第2版—唐朔飞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值