程序在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