玩转计算机组成原理--指令系统

news2024/11/29 1:41:21

目录

一、机器指令

 1.1指令的一般格式

1.操作码:

2.地址码

 1.2指令字长

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

2.1操作数类型

2.2操作类型

三、寻址方式(重要)

3.1指令寻址

1.顺序寻址

2.跳跃寻址

3.2数据寻址

1.立即寻址

2.直接寻址

3.隐含寻址

4.间接寻址

5.寄存器寻址

6.寄存器间接寻址

7.基址寻址

8.变址寻址

9.相对寻址

四、指令举例


一、机器指令

  1. 机器语言是由一条条语句构成的,每一条语句又能准确表达某种语义。
  2. 人们习惯把每一条机器语言的语句称为机器指令,而又将全部机器指令的集合称为机器的指令系统。
  3. 指令的一般格式

 1.1指令的一般格式

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

1.操作码:

操作码用来指明该指令所要完成的操作,如加法、减法、转送、转移、移位等。

操作码的长度可以是固定的也可以是变化的

-固定长度的操作码:所有指令长度均相同。特点是控制简单,速度
快,适用于指令条数不多的场合。

可变长度的操作码:频繁使用的指令用位数较少的操作码,不常使
用的指令可利用操作码扩展技术进行扩展。

指令助记符:

2.地址码

地址码用来指出该指令的源操作数的地址(一个或两个)、结果的地址以及下一条指令的地址

(1)四地址指令

 (A1)OP(A2)——>A3,A4是下一条指令的地址

其中,OP为操作码;A1为第一操作数地址;A2为第二操作数地址;A3为结果地址;A4为下一条指令的地址。

完成一条四地址指令,共需访问4次存储器(取指令一次、去操作数两次、存放结果一次)

(2)三地址指令

(A1)OP(A2)——>A3

完成一条三地址指令也需访问4次存储器

(3)二地址指令

 A1是目的操作数,保存运算结果。
(A1)OP(A2)——>A1或者(A1)OP(A2)——>A2均需访问4次存储器

(A1)OP(A2)——>ACC,它完成一条指令只需3次访存

A1字段即代表源操作数的地址,又代表存放本次运算结果的地址。

(4)一地址指令

 适用情况:
①单操作数指令,OP(A1)——>A1。(完成一条指令需访存3次)
②(ACC)OP(A1)--->ACC。(完成一条二地址指令只需两次访存)

ACC即存放参与运算的操作数,又存放运算的中间结果。

(5)零地址指令

零地址指令在指令字中无地址码,例如:空操作(NOP).停机(HLT)等

汇总

 

 1.2指令字长

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

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

2.1操作数类型

  • 地址:可认为是一个无符号的整数
  • 数字:定点数、浮点数和十进制数
  • 字符:普遍使用ASCII码
  • 逻辑数据:例如n个0和1的组合不是被看作算术数字,而是被看做逻辑数

2.2操作类型

(1)数据传送:包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的传送
(2)算数逻辑操作:实现算术运算(加、减、乘、除)与逻辑运算(与、或、非)
(3)移位:可分为算术移位、逻辑移位和循环移位三种。
(4)转移:
①. 无条件转移:不受任何条件约束(JMP跳转指令)
② 有条件转移:根据当前指令的执行结果来决定是否需要转移(零标志位、溢出标志位、负标志位等等)
③ 调用与返回:将具有特定功能的程序段重复使用(CALL与RETURN)
④ 陷阱与陷阱指令:是一种意外事故的中断

三、寻址方式(重要)

寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而且直接影响指令格式和指令功能。

3.1指令寻址

1.顺序寻址

顺序寻址是使程序计数器PC+1自动形成下一条指令的地址;

2.跳跃寻址

跳跃寻址则通过转移类指令实现,由本条指令给出下一条指令的地址的计算方式,得到地址偏移量/相对地址或绝对地址。

 

3.2数据寻址

数据寻址:寻找操作数的地址。由寻址特征指出寻址方式,结合形式地址A,得出操作数有效地址。

1.立即寻址

 地址字段A指出的不是操作数的地址,而是操作数本身,又称立即数

共访存1次(取指令访存1次,执行指令访存0次)

优点:指令在执行阶段不访问主存,指令执行时间最短。
缺点:A的位数限制了立即数的范围

2.直接寻址

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

共访存2次(取指令访存1次,执行指令访存1次)

优点:简单,指令在执行阶段仅访问一次主存,不需要专门计算操作数的地址。
缺点:A的位数决定了该指令操作数的寻址范围,操作数的地址不易修改

3.隐含寻址

访存0次

优点:有利于缩短指令字长,简化地址结构
缺点:需增加存储操作数或隐含地址的硬件

4.间接寻址

 指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,也就是操作数地址的地址,即EA=(A)

共访存3次(取指令访存1次,执行指令访存2次)

优点:可扩大寻址范围(有效地址 EA的位数大于形式地址A的位数),便于编制程序(用间接寻址可方便地完成子程序返回)。
缺点:指令在执行阶段要多次访存,速度过慢,一般问到扩大寻址范围时,通常指的是这种方式

5.寄存器寻址

 寄存器寻址是指在指令字中直接给出操作数所在的寄存器编号,即 EA=Ri,其操作数在由Ri所指的寄存器内。

优点:指令在执行阶段不访问主存,只访问寄存器,因寄存器数量较少,对应地址码长度较小(可有效缩短指令中某个地址段的位数),使得指令字短且因不用访存,所以执行速度快。
缺点:寄存器价格昂贵,计算机中的寄存器个数有限。

6.寄存器间接寻址

 寄存器间接寻址是指在寄存器 Ri中给出的不是一个操作数,而是操作数所在主存单元的地址,即EA=(Ri)。

特点:与一般间接寻址相比速度更快

7.基址寻址

基址寻址是指将CPU中基址寄存器的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(BR)+A。其中基址寄存器既可采用专用寄存器,又可采用通用寄存器。

优点:可扩大寻址范围(基址寄存器的位数大于形式地址A的位数),有利于多道程序设计,并可用于编制浮动程序,但偏移量(形式地址A)的位数较短

8.变址寻址

 

变址寻址是指有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容之和,即 EA=(IX)+A,其中IX为变址寄存器(专用),也可用通用寄存器作为变址寄存器。

优点:可扩大寻址范围;有利于数组处理,特别适合编制循环程序

9.相对寻址

 

把程序计数器的内容加上指令格式中的形式地址A而形成操作数的有效地址,EA=(PC)+A。

优点:操作数的地址不是固定的,它随PC值的变化而变化,且与指令地址之间总是相差一个固定值,因此便于程序浮动。相对寻址广泛应用于转移指令。对于多道程序设计来说最重要

四、指令举例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/524127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创作星-创意大爆发!AI文案生成器让创作轻松快捷,轻松撰写出热门标题。

一、创作星-创意大爆发!AI文案生成器让创作轻松快捷,轻松撰写出热门标题。 ✨使用“创作星”,让AI帮你生成惊艳的文案! ✨创意大爆发!AI文案生成器让创作轻松快捷,轻松撰写出热门标题。 ✨AI文案神器&…

【Linux指令④】Linux查看日历、时间、打包压缩文件、Linux中的计算器,常用热键 关机指令

Linux指令 ❀date❀cal❀findwhichwhereis ❀grep❀zip/unzip❀tar❀bc❀常用的热键❀关机🍀小结🍀 🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专…

kubectl常用命令|pod生命周期|金丝雀发布|超详细

kubectl常用命令|pod生命周期|金丝雀发布|超详细 一 kubectl常用命令1.1 查看版本信息1.2查看资源对象简写1.3查看集群信息1.4 配置kubectl自动补全1.5node节点查看日志 二 k8s基本信息查看2.1 查看 master 节点状态2.2 查看命令空间2.3 创建和删除命名空间2.4 在命名空间kube-…

python读写json文件方法详解

在我们日常使用 Python时,经常会使用到 json文件。那么在平时写一些小程序时,如何使用 json文件呢?今天我将介绍如何读取和写入 Json文件。 json是一种数据结构,它是将字符串转换成数据的一种技术。使用 json可以非常方便的将一组…

在CentOS上安装Docker的步骤

在CentOS上安装Docker的步骤如下: 更新系统: sudo yum update 添加Docker官方存储库: sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum-config-manag…

FL 3D segment

HarmoFL:在异构医学图像联邦学习中协调本地和全局漂移 多个医疗机构联合使用联邦学习(FL)训练模型已成为最大化数据驱动模型潜力的有前途的解决方案,但医学图像中的非独立和非同分布(non-iid)数据仍然是实…

支付系统设计三:渠道网关设计03-参数验证

文章目录 前言一、参数校验1. MessageDescription内容2. 参数验证执行器3. 字段验证处理器4. 验证器工厂5. style校验器6. 验证器接口7. 长度校验器8. 枚举类型校验器9. yml配置9.1 deduct.yml9.2 style.yml 二、幂等校验总结 前言 在《支付系统设计三:渠道网关设计…

linux内核编译不通过问题的两种排查方法(非正式)

目录 一、前言 二、 问题现象 三、问题排查思路1:问题所在处向上排查 3.1 整体思路 3.2 排查过程 3.3 资料查询 3.4 尝试动作1:开启相应配置项 3.4.1 检查内核配置项 3.4.2 开启配置项 3.4.3 尝试编译 四、问题排查思路2:从上向下排…

讯飞星火大模型体验报告

近日,科大讯飞召开了星火认知大模型成果发布会,会上表示讯飞星火大模型将突破开放式问答,对标ChatGPT,在中文能力上超过ChatGPT,在英文能力上与ChatGPT相当。对此,你怎么看? 笔者准备给bing/ch…

数据结构第二天:File Transfer 【树的应用:集合】

原题是英文的:题目详情 - 05-树8 File Transfer (pintia.cn) 我用软件翻译了一下: 我们有一个计算机网络和一系列双向连接。这些连接中的每一个都允许文件从一台计算机传输到另一台计算机。有没有可能从网络上的任何一台计算机向其他计算机发送文件? Input Specif…

STM32 学习笔记_7 定时器中断:输出比较

输出比较 电机相关比较重要。 OC Output Compare(IC 是输入捕获,CC代指这两个单元),用于输出一定频率和占空比的PWM波形。 右下角四个就是CCR。只有通用计时器和高级计时器有,共用一个cnt计数器,高级计数…

(数字图像处理MATLAB+Python)第七章图像锐化-第四节:频域高通滤波与综合案例

文章目录 一:频域高通滤波(1)理想的高通滤波器(2)巴特沃斯高通滤波器(3)指数高通滤波器(4)梯形高通滤波器 二:综合案例——人像美化(1&#xff09…

C语言函数大全-- w 开头的函数(2)

C语言函数大全 本篇介绍C语言函数大全-- w 开头的函数 1. wcstok 1.1 函数说明 函数声明函数功能wchar_t *wcstok(wchar_t *wcs, const wchar_t *delim, wchar_t **ptr);用于将一个长字符串拆分成几个短字符串(标记),并返回第一个标记的地…

非煤矿山电子封条建设算法 yolov8

非煤矿山电子封条建设算法模型通过yolov8网络模型AI视频智能分析技术,算法模型对作业状态以及出井入井人员数量变化、人员睡岗离岗等情况实时监测分析,及时发现异常动态,自动推送生成的违规截图报警信息。现代目标检测器大部分都会在正负样本…

免费下载Sketch模板素材一文搞定!

对于设计师来说,UI 模板素材是提高设计效率和保证设计质量的重要工具。然而,很多设计师在使用 Sketch 时,会遇到 Sketch 模板素材不足、格式不兼容或使用成本高等问题。本文将为你介绍一款资源齐全、跨平台、无需下载、免费使用的 Sketch 模板…

Tips for Deep Learning

目录 Recipe of Deep Learning Good Results on Training Data? New activation function Adaptive learning rate Good Results on Testing Data? Early Stopping Regularization Dropout Recipe of Deep Learning 我们要做的第一件事是&#x…

http协议在万维网的一生

tcp与udp的区别 http协议位于应用程序层,必须经过传输层进行通信 tcp即传输控制协议,首先通过三次握手建立连接,然后传输数据,数据传输成功后 通过四次挥手关闭连接,如有数据丢失则会重试保证数据传输可靠性 是一个面向…

树的前中后序以及广度优先搜索和深度优先搜索

文章目录 基本概念定义一棵树前序遍历中序遍历后序遍历BFS广度优先遍历DFS深度优先遍历 基本概念 树是一个有n个有限节点组成一个具有层次关系的集合,每个节点有0个或者多个子节点,没有父节点的节点称为根节点,也就是说除了根节点以外每个节…

TS38.331中need -M/R/N/S 的含义

need M:这种字段需要UE在不存在时维护;need R:当RRC中此字段不存在时,UE需要释放;need N:当此字段不存在时,UE不需要采取任何行动(即UE不需要保持该字段的任何现有值)&am…

如何使用单片机点亮LED灯,并使用按键控制[51单片机]

首先先看一下我的板子,如果我们板子不相同,可能操作也不太相同 我们就不讲底层原理了,直接看,我们可以看到板子上有 8个LED灯 那这个8个LED用什么来控制呢,我们先看底层的线路图,所有的LEDD都连接到了P2带后…