jmp指令流程图怎么写_应用程序里的指令可以分成向操作系统请求特定的服务和什么?-常见问题...

news/2024/7/2 20:55:09 标签: jmp指令流程图怎么写

理论上说,应用程序里的指令可以分成用于向操作系统请求特定的服务和中央处理器(CPU)的指令集。CPU操作指令的处理流程大概分为:取指、译码、执行、访存、写回等几步;每条指令需要1~6个字节不等,这取决于需要哪些字段。

f59fb7215792bea35d697d6571f2f114.png

理论上说,应用程序里的指令可以分成中央处理器(CPU)的指令集以及用于向操作系统请求特定的服务这两类。

中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

CPU操作指令的处理流程大概分为:取指、译码、执行、访存、写回等几步。每条指令需要1~6个字节不等,这取决于需要哪些字段。每条指令的第一个字节表明指令的类型:高4位是代码部分(例:6为整数类操作指令),低4位是功能部分(例:1为整数类中的减法指令) 61合起来即为sub指令。

处理指令流程

指令集的一个重要性质就是字节编码必须有唯一的解释。任意一个字节序列要么是一个唯一的指令序列的编码,要么就不是一个合法的字节序列。因为每条指令的第一个字节有唯一的代码和功能组合,给定这个字节,我们就可以决定所有其他附加字节的长度和含义。

每条指令需要1~6个字节不等,这取决于需要哪些字段。每条指令的第一个字节表明指令的类型:高4位是代码部分(例:6为整数类操作指令),低4位是功能部分(例:1为整数类中的减法指令) 61合起来即为sub指令。

下面是处理每条指令的流程图:

5f1292780d7a3f80de2f71b494456187.png

取指(fetch)

取值阶段从存储器读取指令字节,放到指令存储器(CPU中)中,地址为程序计数器(PC)的值。它按顺序的方式计算当前指令的下一条指令的地址(即PC的值加上已取出指令的长度)。

译码(decode)

ALU从寄存器文件(通用寄存器的集合)读入最多两个操作数。(即一次最多读取两个寄存器中的内容)

执行(execute)

在执行阶段会根据指令的类型,将算数/逻辑单元(ALU)用于不同的目的。对其他指令,它会作为一个加法器来计算增加或减少栈指针,或者计算有效地址,或者只是简单地加0,将一个输入传递到输出。

条件码寄存器(CC)有三个条件位。ALU负责计算条件码新值。当执行一条跳转指令时,会根据条件码和跳转类型来计算分支信号cnd。

访存(memory)

访存阶段,数据存储器(CPU中)读出或写入一个存储器字。指令和数据存储器访问的是相同的存储器位置,但是用于不同的目的。

写回(write back)

写回阶段最多可以写两个结果到寄存器文件。寄存器文件有两个写端口。端口E用来写ALU计算出来的值,而端口M用来写从数据存储器中读出的值。

更新PC(PC update)

根据指令代码和分支标志,从前几步得出的信号值中,选出下一个PC的值。


http://www.niftyadmin.cn/n/927204.html

相关文章

java项目_2018年阿里巴巴关于java重要开源项目汇总

来源地址:segmentfault.com/a/1190000017346799作者:阿里云云栖社区 (1.分布式应用服务开发的一站式解决方案 Spring Cloud AlibabaSpring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开…

.net core+ado.net如何架构项目_新增LED设备从上层到底层理解安卓架构之JNI篇

点击上方「蓝字」关注我们往期推荐新增LED设备--从上层到底层理解安卓架构之HAL篇新增LED设备--从上层到底层理解安卓架构之内核篇安卓系统开发之源码架构简介 在上一篇中,我们已经完成了HAL层的开发,那么framework层要如何调用它呢?答案…

增加索引会锁表吗_你知道网站索引下降的原因吗?

在搜索引擎优化的过程中,我们很清楚没有索引的页面是不能参与排名的。指数建立后,指数还会继续流失,对排名也非常不利。当你的网站开始失去索引时,我们需要考虑更多,并提供恢复索引的解决方案。您的页面索引为何下降&a…

php仓储管理系统 eku_螺母ERP管理系统,支持各语言ERP系统

螺母ERP管理系统鼎立软件所有销货单选择仓库必须只能为客户成品仓、返修仓;其它仓库不得出入库,只能作为调拨、借入借出、报废、销毁仓库使用。此外,它还和应收帐、应付帐、总账等模块集成,自动产生凭证,过入总账。 螺母ERP管理系…

模块降额设计_电源模块选型比较纠结的几个问题

电源模块的出现,将嵌入式工程师从繁重的电源设计工作中解脱出来。但电源模块的种类繁多,我们在日常电路设计中该如何考虑选型呢?在日趋激烈的市场竞争中,产品的快速设计与开发无疑已经成为领先致胜、快速占领商机的必要条件。在项…

python语句正确的是-下列Python语句正确的是()_学小易找答案

【单选题】下列程序的运行结果是: c 2 ** 3 print(c) c 20 // 7 print(c) 【单选题】下列选项中,布尔值不是False的是( ) 【单选题】下列选项中,幂运算的符号是()。 【其它】如果一个 n 位正整数等于其各位数字的 n 次方之和 , 则称该数为阿姆斯特朗数,编写一个函数f(n),完成…

我的世界手机版javaui材质包_45woool传奇世界网手机版下载-45woool传奇世界手游全部版本合集...

45woool传奇世界网手机版等级:7.12020-11-10166.8MB简体中文下载推荐理由:45woool传奇世界网手机版,是一款支持三端互通的玩法的高人气传奇手游,也是一款更适合平民玩家的长期打金游戏,这款游戏中没有充值入口,所有装备全靠自己打…