计算机组成原理——第4章 指令系统

简介: 计算机组成原理——第4章 指令系统

【绪:内容】

  1. 指令格式
    指令的基本格式
    定长操作码指令格式
    扩展操作码指令格式
  2. 指令的寻址方式
    有效地址的概念
    数据寻址和指令寻址
    常见寻址方式
  3. CISC和RISC的基本概念

一、指令格式

指令(机器指令):是指示计算机执行某种操作的命令。

指令系统:也称指令集,一台计算机的所有指令的集合构成该机的。


1、指令基本格式

一条指令通常包括操作码字段和地址码字段两部分:image.png

  • 操作码字段
    指出该指令应该执行什么性质的操作以及具有何种功能。
  • 地址码字段
    给出被操作的信息(指令或数据)的地址,包括参加运算的一个或多个操作数所在的地址、运算结果的保存地址、程序的转移地址、被调用的子程序的入口地址等。

指令的长度是指一条指令中所包含的二进制代码的位数。指令字长取决于操作码的长度操作数地址码的长度和操作数地址的个数。

  1. 单字长指令
    指令长度等于机器字长的指令
  2. 半字长指令
    指令长度等于半个机器字长的指令
  1. 双字长指令
    指令长度等于两个机器字长的指令

注:指令字长会影响取指令所需时间

在一个指令系统中,若所有指令的长度都是相等的,则称为定长指令字结构。若各种指令的长度随指令功能而异,则称为变长指令字结构


① 零地址指令

image.png

只给出操作码 O P OPOP 1,没有显式地址。

  1. 不需要操作数的指令,如空操作指令、停机指令、关中断指令等。
  2. 零地址的运算类指令仅用在堆栈计算机中。通常参与运算的两个操作数隐含地从栈顶和次栈顶弹出,送到运算器进行运算,运算结果再隐含地压入堆栈。

② 一地址指令image.png

只有目的操作数的单操作数指令,按A地址读取操作数,进行OP操作后,结果存回原地址

指令含义:image.png

隐含约定目的地址的双操作数指令,按指令地址A可读取源操作数,指令可隐含约定另一个操作数由ACC (累加器)提供,运算结果也将存放在ACC 中。

image.png

若指令字长为32位,操作码占8位,1个地址码字段占24位,则指令操作数的直接寻址范围为 image.png


③ 二地址指令

image.png

image.png


④ 三地址指令

image.png


⑤ 四地址指令

image.png


image.png


2、定长操作码指令格式

  • 定长操作码指令
  • 在指令字的最高位部分分配固定的若干位(定长)表示操作码。一般 n nn 位康作码字段的指令系统最大能够表示2^n条指令。

3、扩展操作码指令格式

  • 可变长度操作码
    全部指令的操作码字段的位数不固定,且分散地放在指令字的不同位置上。
  • 扩展操作码

使操作码的长度随地址码的减少而增加,不同地址数的指令可具有不同长度的操作码。

设地址长度为n,上一层留出m种状态,则下一层可扩展出 m × 2^n种状态

  • 设计扩展操作码指令格式时,注意以下两点:
  • 不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同
  • 各指令的操作码一定不能重复

4、指令操作类型

  1. 数据传送传送指令image.png
  2. 算术和逻辑运算image.png
  3. 移位操作

算法移位、逻辑移位、循环移位等。

  1. 转移操作image.png

二、寻址方式

寻址方式是指寻找指令或操作数有效地址的方式,即确定本条指令的数据地址及下一条待执行指令的地址的方法。寻址方式分为指令寻址和数据寻址两大类。

指令中的地址码字段并不代表操作数的真实地址,这种地址称为形式地址(A)

形式地址结合寻址方式,可以计算出操作数在存储器中的真实地址,这种地址称为有效地址(EA)

image.png


1、指令寻址

  • 顺序寻址方式
  • 通过程序计数器(PC) 加1(1个指令字长),自动形成下一条指令的地址。
  • 跳跃寻址方式
  • 指下条指令的地址码不由程序计数器给出,而由本条指令给出下条指令地址的计算方式。注意,跳跃的结果是当前指令修改PC值,所以下一条指令仍然通过程序计数器(PC)给出。

2、数据寻址

数据寻址是指如何在指令中表示一个操作数的地址。

数据寻址的方式较多,通常在指令字中设一个字段(寻址特征),用来指明属于哪种寻址方式,由此可得指令的格式如下所示:

image.png


① 隐含寻址

image.png

  • 指令中不明显地给出操作数的地址,而在指令中隐含操作数的地址。
  • 隐含寻址的优点是有利于缩短指令字长;缺点是需增加存储操作数或隐含地址的硬件。

② 立即(数)寻址

image.png

  • 指令中的地址字段指出的不是操作数的地址,而是操作数本身,又称立即数。数据采用补码形式存放。
  • 立即寻址的优点是指令在执行阶段不访问主存,指令执行时间最短;缺点是A的位数限制了立即数的范围。

③ 直接寻址

image.png

  • 指令字中的形式地址A是操作数的真实地址EA,即EA=A
  • 直接寻址的优点是简单,指令在执行阶段仅访问一次主存,不需要专门计算操作数的地址;缺点是A的位数决定了该指令操作数的寻址范围,操作数的地址不易修改。

④ 间接寻址

image.png

image.png


⑤ 寄存器寻址

image.png

image.png


⑥ 寄存器间接寻址

image.png

image.png


相对寻址

image.png

image.png


⑧ 基址寻址

image.png

image.png


⑨ 变址寻址image.png

image.png


⑩ 堆栈寻址

image.png


三、CISC和RISC

image.png

1、CISC

CISC的主要特点:

  1. 指令系统复杂庞大,指令数目一般为200条以上。
  2. 指令的长度不固定,指令格式多,寻址方式多。
  3. 可以访存的指令不受限制。
  4. 各种指令使用频度相差很大。
  5. 各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。
  6. 控制器大多数采用微程序控制。有些指令非常复杂,以至于无法采用硬连线控制。
  7. 难以用优化编译生成高效的目标代码程序。

1、RISC

RISC的主要特点:

  1. 选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现。
  2. 指令长度固定,指令格式种类少,寻址方式种类少。
  3. 只有LoadLoad /Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行。
  4. CPU中通用寄存器的数量相当多。
  5. RISC一定采用指令流水线技术,大部分指令在一个时钟周期内完成。
  6. 以硬布线控制为主,不用或少用微程序控制。
  7. 特别重视编译优化工作,以减少程序执行时间。


目录
相关文章
|
存储 芯片 内存技术
DRAM集中刷新,分散刷新,异步刷新的区别
DRAM集中刷新,分散刷新,异步刷新的区别
1461 0
|
存储 算法 Unix
文件系统基础 (二)——文件的物理结构
文件系统基础 (二)——文件的物理结构
728 1
|
10月前
|
人工智能 自然语言处理 安全
2024年中国CRM市场领导者:年度排行榜揭晓
在竞争激烈的商业环境中,CRM 系统对企业至关重要。本文介绍了十款知名 CRM 系统,包括销售易、金蝶云之家、神州云动、八骏科技、天衣云、红圈、简道云、悟空、八百客和销帮帮。这些系统各具特色,涵盖从大中型企业到中小企业的不同需求,帮助企业更好地管理客户信息、提高销售效率、优化客户服务。企业在选择时应根据自身规模、行业特点和预算等因素综合考虑,选择最适合自己的 CRM 系统。
|
存储 分布式计算 监控
hadoop格式化前的注意事项
【7月更文挑战第21天】
211 6
|
人工智能 IDE 前端开发
|
机器学习/深度学习 算法 算法框架/工具
e - 一个神奇的存在
本文介绍了数学常数e,即自然对数的底,约等于2.71828,由欧拉命名。e是一个无限不循环小数,可通过级数1 + 1/n!表示。e在数学、物理、工程和计算机科学等领域有广泛应用,尤其在微积分、复利、概率统计和算法分析中扮演关键角色。它是自然界和科学研究中的基本概念。
803 1
|
缓存 移动开发 网络协议
为什么会TCP粘包?读完这篇你就懂了
TCP粘包是网络编程中的问题,因TCP的Nagle算法和数据缓存机制导致。发送方发送的小数据包可能被合并,接收方如果读取速度慢也可能合并数据包。解决方法包括:发送定长包、包尾加特殊标记(如FTP的`\r\n`)或包头携带包体长度。理解原因并选择合适方案能确保数据正确解析。
398 4
|
网络安全 开发工具 数据安全/隐私保护
GitHub不再支持密码验证解决方案:SSH免密与Token登录配置
今天提交代码,push到GitHub上,突然出现这个问题。 remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: unable to acce
|
小程序 前端开发 JavaScript
【微信小程序】使用npm包
【微信小程序】使用npm包
564 0
|
机器学习/深度学习 算法 搜索推荐
抖音快手小视频推荐算法之--协同过滤算法剖析
抖音快手小视频推荐算法之--协同过滤算法剖析