计算机程序的执行过程是怎样的?

计算机程序的执行过程是怎样的?,第1张

执行程序的过程:

开始执行程序时,必须先给迟塌程序计数器PC赋以第一条指令的首地址00H,然后就进入第一条指令的取令的取指令阶段。

第一条指令的执行过蚂埋程:

取指令阶段:

①将程序计数器PC的内容(00H)送至地址寄存器AR,记为PCAR。

②程序计数器PC的内容自动加1变为01H,为取下一个指令字节作准备,记码物圆为PC+1PC。

③地址寄存器AR将00H通过地址总线送至存储器,经地址译码器译码,选中00号单元,记为ARM。

④CPU发出"读"命令。

⑤所选中的00号单元的内容B0H读至数据总线DB,记为(00H)DB。

⑥经数据总线DB,将读出的B0H送至数据寄存器,记为DBDR。

⑦数据寄存器DR将其内容送至指令寄存器IR,经过译码,控制逻辑发出招待该条指令的一系列控制信号,记为DRIR,IRID、PLA。经过译码,CPU"识别"出这个 *** 作码就是MOVA,03指令,于是,它"通知"控制器发出执行这条指令的各种控制命令。

一个源程序到一个可执行程序的过程:预编译、编译、汇编、链接。其中,编译是主要部分,其中又分为六个部分:词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化。

预编译:主要处理源代码文件中的以“#”开头的预编译指令。处理规则如下:

1、删除所有的#define,展开所有的宏定义。

2、处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。

3、处理“#include”预编译指令,将文件内容替换到它的位置,这个过程是递归进行的,文件中包含其他文件。

4、删除所有的注释,“//”和“/**/”。

5、保留所有的#pragma 编译器指令,编译器需要用到他们,如:#pragma once 是为了防止有文件被重复引用。

6、添加行号和文件标识,便于编译时编译器产生调试用的行号信息,和编译时产生编译错误或警告是能够显示行号。

扩展资料:

编译过程中语法分析器只是完成了对表达式语法层面的分析,语义分析器则对表达式是否有意义绝派进行判断,其分析的语义是静态语义——在编译期能分期的语义,相对应的动态语义是在运行期才能确定的语义。

其中,静态语义通常包括:声明和类敏瞎型的匹配,类型的转换,那么语义分析就会对这些方面进并拿贺行检查,例如将一个int型赋值给int*型时,语义分析程序会发现这个类型不匹配,编译器就会报错。

取指令、分析指令、执行指令、取下一条指令。

1、首先是取指令和分析指令。按照程序规定的次序,从内存储器取出当前执行的指令。

2、送到控制器的指令寄存器中,对所取的指令进行分析,即根据指令中的 *** 作码确定计算机应进行什么 *** 作。

3、根据指令分析结果,由控制器发出完成 *** 作所需的一系列控制电位,以便指挥计算机有关部件完成这一 *** 作。

4、为下一条取指令作好准备。

控制器靠指令指挥机器工作,人们用指令表达自己的意图,并交给控制器执行掘丛州。一台计算机所能执行的各种不同指令的全判蔽体,叫做计算机的指令系统,每一台计算机均有自己的特定的指令系统,其指令内容和格式有所不同。

扩展资料:

在计算机中, *** 作要求和 *** 作数地址都由二进制数码表示,分别称作 *** 作码和地址码,整条指令以二进制编码的形式存放在存储器中。

指令的种类和多少与具体的机型有关,在此不详述,请参见具郑芹体的机器资料手册。

指令的顺序执行,将完成程序的执行,因而有必要了解指令的执行过程。首先是取指令和分析指令。按照程序规定的次序,从内存储器取出当前执行的指令,并送到控制器的指令寄存器中,对所取的指令进行分析,即根据指令中的 *** 作码确定计算机应进行什么 *** 作。

其次是执行指令。根据指令分析结果,由控制器发出完成 *** 作所需的一系列控制电位,以便指挥计算机有关部件完成这一 *** 作,同时,还为取下一条指令作好准备。

参考资料来源:百度百科--计算机指令


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12487068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存