程序在CPU中运行的机制
来源:互联网 发布:mac版魔兽世界大脚插件 编辑:程序博客网 时间:2024/05/18 00:26
程序在没有运行之前是保存在外存中的。程序被执行后,加载到内存中为机器语言程序,由CPU进行解析和运行,进而计算机系统整体的控制和数据运算也开始运行。
程序与CPU
程序是指令和数据的组合体。例如C语言“printf("hello");“,这个简单的程序,printf是指令,"hello"是数据。我们使用C语言等高级语言编写的程序需要转化为机器语言,CPU所负责的就是解释和运行最终转换成机器语言的程序内容。
CPU和内存是由许多晶体管组成的电子部件,通常称为IC(集成电路)。从功能方面看,CPU的内部由寄存器、控制器、运算器和时钟四个部分构,各部分之间的电流信号相互连通。
寄存器暂存指令、数据等处理对象;
控制器负责把内存上的指令、数据等读入寄存器,并且根据指令的执行结果来控制整个计算机;
运算器负责运算从内存读入寄存器的数据;
时钟负责发出CPU开始计时的时钟信号。
程序启动后,根据时钟信号,控制器会从内存中读取指令和数据。通过对这些指令加以解释与运行,运算器会对数据进行运算,控制器根据运行结果来控制计算机。
因为机器语言级别的程序是通过寄存器来处理的,所以对于程序员来说,只需要知道”CPU是各种寄存器的集合体“。程序是把寄存器作为对象来描述的。
函数的调用机制
函数调用使用的是call指令,而不是跳转指令。在将函数的入口地址设定到程序计数器之前,call指令会把调用函数后要执行的指令地址存储在名为栈的主存内。函数处理完毕后,在通过函数的出口来执行return命令。return命令的功能是把保存在栈中的地址设定在程序计数器中。
0 0
- 程序在CPU中运行的机制
- 在windows中设置程序运行的cpu
- cpu运行时程序是在flash中还是在RAM,各自的区别?
- 编写在Android的Linux系统中直接运行的可执行程序 - 检测CPU能力
- 多线程的程序在多核CPU与单核CPU运行效率有何不同
- cpu运行时程序是在flash中还是在RAM呢?
- cpu运行时程序是在flash中还是在RAM呢?
- cpu运行时程序是在flash中还是在RAM呢?【转】
- 在程序运行中中止当前方法的运行
- Kivy A to Z -- 通过绑定进程运行CPU提高Python程序在多核CPU平台上的性能
- Windows程序运行的机制
- 一个程序来比较cuda/c在GPU/CPU的运行效率
- 在Java程序中获取当前运行程序的路径
- 在Java程序中获取当前运行程序的路径
- vc++ 在程序中运行另一个程序的方法
- 在VB中如何让线程或进程在指定的CPU上运行
- 让进程运行在指定的CPU
- 在“运行”中启动程序
- oracle 数据类型
- GTK+重拾--06 布局管理器学习
- 虚函数与多态
- Mybatis 多对一查询
- End-To-End Memory Networks
- 程序在CPU中运行的机制
- jsp低级错误,记下来专贴
- Java并发编程:Thread类的使用(1)
- volley JSON请求数据
- jQuery $.each用法
- filter学习心得(二)
- 学习PHP三周之心态分享
- Xcode高级调试技巧3
- jquery easyui tab加载内容的几种方法