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

理论上说,应用程序里的指令可以分成中央处理器(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指令。

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

取指(fetch)

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

译码(decode)

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

执行(execute)

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

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

访存(memory)

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

写回(write back)

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

更新PC(PC update)

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

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

  1. jmp指令流程图怎么写_策划新人分享——如何写策划案

    一.写作工具 策划案作为阅读文本的一种,自然需要一个可阅读可编写的载体. 第一个,Excel,针对文本的编写,这里推荐的是Excel,之所以推荐Excel而不是大家平常都会用到的Word,是因为无论是 ...

  2. jmp指令流程图怎么写_流程图模板

    今天师弟看到我的文章,问我流程图怎么画的.emm......我一般用Word或者PPT做,赶脚还挺方便的,没用啥高端的作图软件. 但是我忽然想起,我5月听院长课的时候,他提到流程图和文章都不能瞎画瞎写 ...

  3. jmp指令流程图怎么写_还在用Visio画流程图吗?今天我们来说说流程的表达方式...

    说到流程的表达方式,所有人都会在脑海里立刻浮现出那种图形的模样,就是流程图.它是一种语言,为我们讲述事情是怎么发生的. 它表述了四个问题,我们可以用四个"W"来表示:When,Wh ...

  4. 程序员工作交接文档怎么写_离职程序员交接工作被怒怼:每一行代码都必须讲清楚,不然投诉...

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都会有分享,都是免费订阅,请您放心关注.注:本文转载自网络,不代表 ...

  5. dev里timeedit控件如何赋值_抽奖程序里的字节跳动模式和时长控制,让抽奖更有仪式感!...

    用excel的随机函数配合index函数可以很方便的实现从一组数据中随机抽取单个数据,常用于抽奖小程序.但若想让抽奖时数据跳动一段时间再出现最终的结果,就好像真正的抽奖一样,只用函数就不好实现了.今天 ...

  6. 第0课第2节_刚接触开发板之烧写裸板程序

    第0课第2节_刚接触开发板之烧写裸板程序 tftp用法 q //退出菜单 help tftp print //显示IP set ipaddr 192.168.31.203 //设置开发板IP set ...

  7. python写小猪佩奇_这个程序员用 Python 20 秒画完小猪佩奇“社会人”!

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 作者 | 丁彦军 责编 | 唐小引 每天写代码的程序员,你们知道今年社交平台上最火的带货女王 ...

  8. python画完图 程序暂停运行_[Python实战]你也能写的计时器程序

    文章地址:[Python实战]你也能写的计时器程序 上次,公众号介绍了如何使用 Pyqt5 制作猜数游戏界面,并介绍了如何在 Pycharm 中使用 Qt Designer 生成 UI 文件.这次,我 ...

  9. python实验报告代写价格_代写OS python程序作业、代写代写OS作业、代写OS实验报告...

    代写OS python程序作业.代写代写OS作业.代写OS实验报告 日期:2018-06-11 03:21 CSE 304 - Operating Systems DUE: June 11. Subm ...

最新文章

  1. 双线性插值(Bilinear Interpolation)
  2. LeetCode 613. Shortest Distance in a Line --SQL
  3. 不变违规:_registerComponent(...):目标容器不是DOM元素
  4. 关于ABST2的若干问题
  5. mysql按某一字段分组取最大(小)值所在行的数据
  6. [USACO1.4]母亲的牛奶 Mother's Milk
  7. 8.初探python之集合
  8. 使用CountDownLatch来模拟马拉松比赛
  9. 三个数互质 java_LeetCode 5198. 丑数 III(Java)容斥原理和二分查找
  10. inline函数_inline内联函数
  11. 值类型和引用类型的区别?
  12. WiFi共享大师 去广告
  13. 跟我学AngularJs:Directive指令用法解读(上)
  14. mybatis_mysql使用 学习笔记
  15. 局域网内ping不通另外一台电脑_疫情期间宅家一台电脑如何做计算机网络实验...
  16. 毕业了,异地恋只能分手吗?
  17. 服务器就是一台性能好的电脑吗,科普:什么是服务器? 服务器与普通电脑有何区别?...
  18. [转]通过研究视线轨迹改良设计
  19. win10的bat文件或者cmd文件关联了文本编辑器导致无法运行
  20. Power Apps 免费社区版

热门文章

  1. Cannot locate the chosen ObjectFactory implementation: spring - [unknown locati
  2. 2022年国内运营商最全号段,联通、移动、电信、广电四大运营商
  3. DOSBox使用debug
  4. 让我们唠一唠:微信有哪些功能越来越不行了呢?
  5. BAT 大企内部面试题泄密
  6. 安装SQLSERVER2000时出现以前的某个程序安装已在安装计算机上创建挂起的文件操作
  7. 数学外行朋友值得一读的5本经典数学书
  8. 多旅行商问题——公式和求解过程概述
  9. java .gml格式_GML格式错误
  10. mysql squid_Linux 实现 squid+mysql认证