理论上说应用程序里的指令可以分为什么(理论上说应用程序里的指令可以分成)
您好,今天张张来为大家解答以上的问题。理论上说应用程序里的指令可以分为什么,理论上说应用程序里的指令可以分成相信很多小伙伴还不知道,现在让我们一起来看看吧!
1、理论上说,应用程序里的指令可以分成中央处理器(CPU)的指令集以及用于向操作系统请求特定的服务这两类。
2、中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。
3、它的功能主要是解释计算机指令以及处理计算机软件中的数据。
4、中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。
5、它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。
6、CPU操作指令的处理流程大概分为:取指、译码、执行、访存、写回等几步。
7、每条指令需要1~6个字节不等,这取决于需要哪些字段。
8、每条指令的第一个字节表明指令的类型:高4位是代码部分(例:6为整数类操作指令),低4位是功能部分(例:1为整数类中的减法指令) 61合起来即为sub指令。
9、处理指令流程指令集的一个重要性质就是字节编码必须有唯一的解释。
10、任意一个字节序列要么是一个唯一的指令序列的编码,要么就不是一个合法的字节序列。
11、因为每条指令的第一个字节有唯一的代码和功能组合,给定这个字节,我们就可以决定所有其他附加字节的长度和含义。
12、每条指令需要1~6个字节不等,这取决于需要哪些字段。
13、每条指令的第一个字节表明指令的类型:高4位是代码部分(例:6为整数类操作指令),低4位是功能部分(例:1为整数类中的减法指令) 61合起来即为sub指令。
14、下面是处理每条指令的流程图:取指(fetch)取值阶段从存储器读取指令字节,放到指令存储器(CPU中)中,地址为程序计数器(PC)的值。
15、它按顺序的方式计算当前指令的下一条指令的地址(即PC的值加上已取出指令的长度)。
16、译码(decode)ALU从寄存器文件(通用寄存器的集合)读入最多两个操作数。
17、(即一次最多读取两个寄存器中的内容)执行(execute)在执行阶段会根据指令的类型,将算数/逻辑单元(ALU)用于不同的目的。
18、对其他指令,它会作为一个加法器来计算增加或减少栈指针,或者计算有效地址,或者只是简单地加0,将一个输入传递到输出。
19、条件码寄存器(CC)有三个条件位。
20、ALU负责计算条件码新值。
21、当执行一条跳转指令时,会根据条件码和跳转类型来计算分支信号cnd。
22、访存(memory)访存阶段,数据存储器(CPU中)读出或写入一个存储器字。
23、指令和数据存储器访问的是相同的存储器位置,但是用于不同的目的。
24、写回(write back)写回阶段最多可以写两个结果到寄存器文件。
25、寄存器文件有两个写端口。
26、端口E用来写ALU计算出来的值,而端口M用来写从数据存储器中读出的值。
27、更新PC(PC update)根据指令代码和分支标志,从前几步得出的信号值中,选出下一个PC的值。
本文就为大家分享到这里,希望小伙伴们会喜欢。
版权声明:本文由用户上传,如有侵权请联系删除!