指令是CPU定义的还是程序定义的?
来源:未知 作者:yyzntdcaiwu 发布时间: 阅读人数: 手机端
一、指令是CPU定义的还是程序定义的?
#计算机组成原理#
指令集是在芯片开发的时候就写入CPU,并集成为硬件的一部分。
而程序是由多条指令组成的,并没有定义指令的权限,只有使用指令的权限。在我们实际运行的时候要通过编译器把程序翻译成指令才能真正在计算机中运行。
所以我们这里就引入了当代计算平台最麻烦的问题之一,移植性问题。
例如常看机圈的朋友都知道有骁龙888,还要intel芯片。不同种类的芯片里面包含了指令集不同,导致了如果你直接把电脑端的exe软件包安装到手机端将无法运行。
当然这里面还包含了操作系统的原因,很多程序在编写的时候应用到了操作系统的库函数,随着操作系统的升级或者改变,使得原来的库函数将无法被执行。我们在不考虑操作系统的情况下,硬件本身就存在着难以移植的问题。
所以相同的程序在不同的芯片端都需要经过不同的编译软件进行编译。
二、哪位知道CPU的指令是如何实现的?
CUP如何执行
首先,在程序执行之前,我们的程序需要被装进内存,你可以把内存看成是一个快递柜,比如当你需要寄件的时候,你可以打开快递柜中的第100 号单元格,并存放你的物品,有时候你会收到快递,提示你在快递柜的 105 号单元格中,你就可以打开 105 号单元格取出的你的快递。
这里有三个重要的内容,分别是快递柜、快递柜中的每个单元格的编号、操作快递柜的人,你可以把它们对比成点算机中的内存、内存地址和CPU。
可以把通用寄存器比喻成是你身上的口袋,内存就是你的背包,而硬盘则是你的行李箱
CPU执行过程
- 二进制代码装载进内存,系统会将第一条指令的地址写入到 PC 寄存器中。
- 读取指令:根据pc寄存器中地址,读取到第一条指令,并将pc寄存器中内容更新成下一条指令地址。
- 分析指令:分析并识别出不同的类型的指令,以及各种获取操作方法。
- 执行指令:由于cpu访问内存花费时间较长,因此cpu内部提供了通用寄存器,用来存放数据或者内存中某块数据的地址
堆栈如何影响内存布局
为什么使用栈结构来管理函数调用?
栈
通常函数有两个主要的特性:
i. 第一个特点是函数可以被调用,你可以在一个函数中调用另外一个函数,当函数调用发生时,执行代码的控制权将从父函数转移到子函数,子函数执行结束之后,又会将代码执行控制权返还给父函数; ii. 第二个特点是函数具有作用域机制,所谓作用域机制,是指函数在执行的时候可以将定义在函数内部的变量和外部环境隔离,在函数内部定义的变量我们也称为临时变量,临时变量只能在该函数中被访问,外部函数通常无权访问,当函数执行结束之后,存放在内存中的临时变量也随之被销毁。
函数调用者的生命周期总是长于被调用者(后进),并且被调用者的生命周期总是先于调用者的生命周期结束 (先出)。
它们都符合后进先出 (LIFO)的策略,而栈结构正好满足这种后进先出 (LIFO) 的需求,所以我们选择栈来管理函数调用关系是一种很自然的选择。
堆
因为栈空间是有限的,这就导致我们在编写程序的时候,经常一不小心就会导致栈溢出,比如函数循环嵌套层次太多,或者在栈上分配的数据过大,都会导致栈溢出,基于栈不方便存放大的数据,因此我们使用了另外一种数据结构用来保存一些大数据,这就是堆。
从堆上分配内存块没有固定模式的,你可以在任何时候分配和释放它
总结
因为现代语言都是基于函数的,每个函数在执行过程中,都有自己的生命周期和作用域,当函数执行结束时,其作用域也会被销毁,因此,我们会使用栈这种数据结构来管理函数的调用过程,我们也把管理函数调用过程的栈结构称之为调用栈。
因为栈在内存中连续的数据结构,所以在通常情况下,栈都有最大容量限制的,这也就意味着,函数的嵌套调用次数过多,就会超出栈的最大使用范围,从而导致栈溢出。
new int、new Point 这种语句,当执行这些语句时,表示要在堆中分配一块数据,然后返回指针,通常返回的指针会被保存到栈中,所以请记住:指针存放到栈中,对象实例存放到堆中
三、CPU怎样读取指令?
指令都有固定格式,一般先读第一个字节判断是否是前缀,然后读第2字节并查表看是否是机器码,若不是则读第3个字节查表,找到指令后继续读ModR/M、SIB等参数确定后面还有几个操作数。
如读取指令mov eax,dword ptr ss:[ebx ecx*4]先读第一个字节,查表得到前缀SS,读第2字节,发现是mov r,r/m,于是读第3字节(ModR/M)得到r=eax,r/m=disp32[--],因此需要读第4字节(SIB),得到r/m=[ebx ecx*4]具体可以看Intel Architecture Software Developer’s Manual Volume??2: Instruction Set Reference四、专利和版权的区别?
专利是针对技术类,版权是针对文化类,如图书丶唱片丶编剧…
五、专利商标版权哪个更难?
专利会比其他两个难一点,因为需要专业些
六、版权和专利哪个好?
从法律意义上来说都一样,从应用来说各有侧重。
版权也称著作权,版权是针对书籍出版、文学作品等,著作权中的发表权保护期限为自然人作者终生及其死亡后五十年,法人或者非法人组织作者其发表权的保护期为五十年。
而专利主要考虑的是应用和推广即专利技术成果转化。发明专利受法律保护的期限是20年,实用新型和外观设计专利受法律保护的期限是10年。
七、cpu负责执行指令吗?
cpu的主要任务是取出指令、解释指令和执行指令,对。cpu是电子计算机的主要设备之一,它是电脑中的核心配件。cpu是计算机中负责读取指令,对指令译码并执行指令的核心部件。
CPU的主要任务是取出指令,解释指令和执行指令,对。
相关解释:
中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。
主要功能:
cpu的功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。
组成:
中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。
八、CPU的指令术语含义?
MMX是“多媒体指令扩展”SSE是英特尔在奔三CPU中集成的指令集扩展,以增强CPU的多媒体处理能力,全称是:StreamingSIMDExtensions。
FSB不是CPU指令集,是系统前端总线的缩写,是CPU与主板芯片组之前的连接总线。
CACHE也不是指令集,这是高速缓存的意思,用来缓冲数据,提高CPU和其它子系统的数据传输效率的一种方式。
九、cpu的指令运行过程?
CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。
它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身。十、cpu指令和语句区别?
分两个方面说:
1可执行文件的角度:可执行文件分为许多段,一般.text存放代码,.data段存放数据,不同段是有不同属性的,例如.text段的属性是可执行的。这样就区别了代码和数据。
2.CPU指令有一个格式,一个指令包括了操作码(对应你的指令)和操作数(对应你的数据),而指令本身相对格式是固定的(可能变长)。所以CPU是很容易知道前几个二进制是什么指令,而根据这个指令又可以知道后面多少位是第一个数据,后面多少位是第二个数据。然后下一个指令的起始地址是直接存在IP寄存器里的。
如果您想了解更多有关于西安公司变更的问题,可以浏览 西安公司变更频道
本文地址: https://www.tdcaiwu.com/zlbq/19331.html
版权所有:非特殊声明均为本站原创文章,转载请注明出处: 淘丁企服