电脑cpu指令 | 计算机cpu发出的指令

电脑cpu指令 | 计算机cpu发出的指令

1. 计算机cpu发出的指令

CPU的主要功能有四个,分别是顺序控制操作控制、时间控制、数据加工。

1、顺序控制:这是指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机工作正确性。

2、操作控制:一条指令的功能往往是由计算机中的部件执行一系列的操作来实现的。CPU要根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。

3、时间控制:时间控制就是对各种操作实施时间上的定时。在一条指令的执行过程中,在什么时间做什么操作均应受到严格的控制。只有这样,计算机才能有条不紊地自动工作。

4、数据加工:即对数据进行算术运算和逻辑运算,或进行其他的信息处理

2. CPU的指令

cpu的指令又称机器语言

3. cpu所执行的指令和处理器的数据

一个cpu所能执行的全部指令称为指令集。

指令集是存储在CPU内部,对CPU运算进行指导和优化的硬程序。拥有这些指令集,CPU就可以更高效地运行。Intel主要有x86,EM64T,MMX,SSE,SSE2,SSE3,SSSE3(Super SSE3),SSE4A,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX等指令集。AMD主要是x86,x86-64,3D-Now!指令集。

4. 计算机cpu发出的指令是什么

cpu有x86系列和arm系列。x86系列指令集和arm系列指令集。如下:

CPU内部用来指导运算和优化的硬程序我们称之为“指令集”,它是CPU能够直接识别的最底层指令,分为复杂指令集和精简指令集两种。复杂指令集是通过设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统实现,以此来提高计算机的执行速度,英特尔著名的X86架构就是典型的复杂指令集产物。在计算机刚诞生,部件昂贵、主频低、运行速度慢的年代,这能极大提升处理效率,但随着复杂指令集的日趋庞杂,这种结构越来越庞大,通用性、运行速度开始变差,于是另一种思路驱动的精简指令集就诞生了。

精简指令集的思路是通过简化计算机指令功能,使指令的平均执行周期减少,把较复杂的功能用一段子程序来实现,从而提高计算机的工作主频,同时大量使用通用寄存器来提高子程序执行的速度,ARM公司(中文名称:安谋)ARM架构和Imagination Technologies公司的MIPS架构都属于这一体系。

目前流行的移动处理器中,几乎全部采用的都是ARM架构,这种精简指令集架构带来了四大优势:一是体积小、功耗低、成本低、性能强;二是大量使用寄存器且大多数数据操作都在寄存器中完成,指令执行速度更快;三是寻址方式灵活简单,执行效率高;四是指令长度固定,可通过多流水线方式提高处理效率。

ARM架构也分ARMv6、ARMv7、ARMv8等多代。基于ARMv6指令集设计出来的内核是ARM11,它被广泛用于早年的智能机上,尤其在诺基亚的塞班系统手机中特别常见。ARMv7则是新智能机时代使用最多的架构,我们熟知的Cortex-A7/A8/A9/A15内核都是这一架构的产物。ARMv8指令集发布于2011年11月,它在ARM历史上第一次支持了64位指令集,构成了苹果2013年能首发64位处理器A9的核心基础。而如今我们常见的手机自主/非自主处理器架构都基于arm指令集(除了少数的Intel核心手机为X86指令集)。

5. cpu执行计算机指令时使用

CPU具有以下4个方面的基本功能:

  1. 指令顺序控制

  这是指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机系统工作的正确性。

  2. 操作控制

  一条指令的功能往往是由计算机中的部件执行一序列的操作来实现的。CPU要根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。

  3. 时间控制

  时间控制就是对各种操作实施时间上的定时。在一条指令的执行过程中,在什么时间做什么操作均应受到严格的控制。只有这样,计算机才能有条不紊地工作。

  4. 数据加工

  即对数据进行算术运算和逻辑运算,或进行其他的信息处理。

6. 计算机cpu发出的指令都采用了

寻址方式一般有如下七种:

1.立即寻址

立即(Immediate)寻址,就是在指令中使用的操作数是常数,这个常数就包含在指令中。以下几条指令都是立即寻址的例子:

MOV AL,0

MOV AX,190

MOV EAX,-1

MOV EAX,0FFFFFFFFH

这些指令码中,都包含了立即数,如0,190,-1,0FFFFFFFFH。

2.寄存器寻址

寄存器(Register)寻址方式的操作数在CPU内部的寄存器中。使用寄存器寻址,CPU不用访问内存就可以取得或修改操作数。

MOV BL,80 //目标操作数BL是寄存器寻址

MOV EAX,EBX //源操作数EBX和目标操作数EAX都是寄存器寻址

3.直接寻址(CPU寻找内存中的操作数)

除了立即寻址和寄存器寻址方式外,其他的几种寻址方式的操作数都在内存单元中,寻址方式要说明的是CPU如何确定内存操 作数的地址,然后CPU再对该内存单元中的操作数进行处理。

直接寻址(Direct)寻址就是指令中直接给出了操作数的地址。指令中使用变量时,就是直接寻址。

MOV EAX,dVal

MOV dVal,EBX

MOV EAX,[4000H] //直接给出内存所在地址

翻译成机器指令后,变量是用它的地址而不是它的名字来表示的。地址外面加一对方括号,表示取这个地址中的内容。

00401010 A1 11 40 40 00 MOV EAX,[00404011]

00401015 89 1D 11 40 40 00 MOV [00404011],EBX

CPU在执行指令的时候,可以直接从指令码中取出地址,而不必经过计算或其他操作,所以叫做直接寻址。

4.寄存器间接寻址

采用寄存器间接(Indirect)寻址方式的操作数的地址放在寄存器中。

MOV ESI,00404011H //将内存地址保存到寄存器中

MOV EAX,[ESI]

注意,MOV EAX,ESI和MOV EAX,[ESI]的区别

在8086/8088/80286等16位的CPU中,只有4个寄存器能用做寄

7. 计算机cpu发出的指令,硬盘上存储的数据都采用了

首先,CPU命令从硬盘读取数据,但不可能一下子就处理那么多的数据,于是就让内存先存放着,然后CPU读取,而且因为硬盘的储存数率远远比不上内存,所以必须通过内存读取数据,然后CPU处理之后,再给显卡显示主板作用只是通过其主线,传输这一系列信号~

8. 计算机cpu发出的指令有哪些

cpu通过执行“指令”来完成基本运算。在CPU中,一条指令的运行包括取指、分析和执行3个步骤,因此执行一条指令,就会完成一步基本运算或判断。

9. 计算机cpu发出的指令是

计算机中CPU每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。

取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。

分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。

计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。

10. cpu系统指令和机器指令

操作系统我是没写过的,但是我用C语言和汇编语言给C51、AVR、STM32等写了很多的程序, 谈点自己的看法。

使用何种语言写操作系统,很大一部分原因是受到目标平台硬件的影响,或者更准确地说,是CPU的影响,可以谨慎地讲,语言的本质是指令集,而指令集是物理电路的抽象。因此,一个特定的CPU肯定对应了一套特定的指令集,当然考虑到兼容性等因素,也有很多不同类型的CPU支持同样的指令集,例如Intel和AMD的x86-64,ARM中用到的Thumb-2等,我们可以把这套指令集叫做机器语言,就是一些个0和1的组合,如果不考虑开发难易程度和效率,最适合写操作系统的应该是机器语言。

在有了机器语言之后,因为太复杂而又晦涩难懂,就出现了汇编语言,汇编语言相当于是把指令集给起了一个名字,通过特定的编译器,可以把汇编语言转化为对应的机器语言,也就是CPU能够识别并执行的指令集,因此,汇编语言也是可以用来写操作系统的。汇编语言其实和机器语言之间几乎可以画上等号了,所有指令(不包括伪指令)都与CPU的指令集对应(所以一般情况下,相对于开发其他高级语言的编译器,开发汇编语言的编译器是“比较简单”的工作)。

后来,又出现了Fortran、Pascal、C等语言。而C语言应该是最接近汇编的语言,可能没有之一,学过汇编之后再去学习C,会发现很多C的数据类型和结构等,例如数组,指针等,都能够在汇编中找到对应的寻址方法,C语言中的下标从0开始,个人觉得这也是受到汇编的影响。另外,C语言比较容易书写,例如一个循环或者过程,你在汇编中要留意使用到了哪些寄存器、堆栈、甚至PSW等,要保护现场,之后还要恢复现场,保持堆栈平衡等等,稍不留神就会带来问题,然后就是坑爹的调试。但是用C语言一个for循环,或者一个函数,能省去汇编中很多枯燥麻烦而又容易出错的工作。如果有兴趣,可以试着反编译一下现代C编译器(例如gcc)产生的目标文件,会发现其生成的代码和手工写汇编的代码具有相当的指令条数和指令周期,在打开某些高级选项时,还能利用CPU较新的指令,例如条件传递(cmov)等,提升程序的执行效率,因此用C语言开发一个操作系统是很自然的事情。

因此,写操作系统可以用机器语言,也可以用汇编和C。

虽然说用汇编和C开发操作系统是顺其自然的事情,但是说只能用C语言和汇编开发操作系统肯定是不正确的,窃以为,所有能够生成对应硬件平台的CPU指令集的语言,都是可以用来开发操作系统的,但是还是会涉及到行业生态环境、兼容性、难易程度等多方面的问题,而且目前的几个操作系统,如UNIX,Windows、Linux等都是用C语言开发的,所以自然而然地这个就成了业界“潜规则”了,而且在抛开算法和数据结构的差异下,C语言的速度几乎是最快的了,在某种程度上,通过进行构造的语句和编译器优化,在某种程度上甚至和汇编已经不相上下,虽然C的语法容易带来quick & dirty的效果,但是对于精通C语言的人来说,这正是C的美妙之处。假设,我们现在有C#语言,其实这种支持.NET的语言会被编译为中间语言(IL),假如我们开发出一款能将中间语言作为其汇编语言,甚至是指令集的CPU的话,那么.NET程序的开发和执行会更加迅速。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部