简说计算机程序是如何执行的

程序源代码都是以人类语言写成的。需要将人类语言翻译为计算机语言。

计算机能听懂的语言,就叫做机器语言,简称机器码。

计算机处理器提供了一套它能够支持的运算操作的集合,称为“指令集”。指令集限定了该处理器能够进行的所有运算。而且这些运算通常都是关于数字的运算。所以,如果想解决一个问题,那么首先要把这个问题转换为一个数字问题,再把数字问题的解答过程,用指令集当中的指令求解。

将其它问题转换为数学问题的一种方法就是编码。处理器的指令集同样是经过编码的。所以才能用二进制数字流来表示指令。

在计算机中,一般用若干个二进制位表示一个数或一条指令,把它们作为一个整体来处理、存储和传送。这种作为一个整体来处理的二进制位串,称为计算机字。表示数据的字称为数据字,表示指令的字称为指令字。

指令集中的每一个指令都可以这样编码。每一条指令都定义了一系列的操作。如此,只要按照顺序从存储器读入指令代号和数据,就可以让程序执行下去。

处理器为了能顺序的取指并执行,需要知道当前指令的下一条指令在哪里。为了记录当前指令的下一条指令的位置,处理器内部设置了一个存放这种地址的电子装置,实际上这种装置是一系列门电路组成的锁存器,叫做 IP 寄存器(也有叫做 PC 的,这里统称为 IP)。IP 的值可以在运行时被修改。那么只要提供了能够修改 IP 值的指令,就能改变程序的执行流程。可以返回到之前的某个位置,也可以一次前进到之后的某个位置。这个过程叫做“跳转”。所谓循环和判断,本质上都是判断并跳转。

当程序整个装入内存以后,IP将被(另外的某个程序,可能来自操作系统,或者其它软件)设置为 1,意思是:下一条要读取的指令在 1 的位置。然后处理器就开始读入指令。为什么处理器会读入指令呢?它是收到某个信号才会读指令吗?简单的讲,处理器从上电到掉电的整个过程当中只做三件事情,那就是:1、从内存读取一条指令和指令携带的操作数,同时 IP + 1。2、解码并执行指令。3、回到 1。所以不需要什么信号。在上一条指令将 IP 的值修改为 1 之后,处理器就已经完成跳转,找到程序入口了。

处理器将指令送入解码器,解码结果告诉处理器应当执行某项操作,然后继续取出下一条指令。直到断电。

所以,计算机程序的执行过程简单来说就是:输入能被指令集执行的高级语言——>编译器编码成计算机能懂的二进制机器码——>处理器解码执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值