快捷搜索:  汽车  科技

程序怎么在计算机中执行:程序是如何被计算机所执行的

程序怎么在计算机中执行:程序是如何被计算机所执行的运行中的程序存储在什么位置? 机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义。程序由什么组成? 程序由数据和指令组成。什么是机器语言?

一、计算机程序

要明白程序是如何被计算机所执行的,首先要明白什么是程序?先看看一下几个问题:

程序怎么在计算机中执行:程序是如何被计算机所执行的(1)

程序的概念?

程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令。一般分为系统程序和应用程序两大类。

程序由什么组成?

程序由数据和指令组成。

什么是机器语言?

机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义。

运行中的程序存储在什么位置?

程序加载时首先到寄存器中,寄存器会将程序复制到内存中从而进行存储,当程序运行时,CPU会把主从的程序的数据和指令调用到寄存器特定的位置,从而执行。

什么是内存地址?

内存地址指系统 RAM 中的特定位置,通常以十六进制的数字表示,如同计算机内部特定位置的编号。

程序的解释和运行的计算机部件叫什么?

CPU的控制器是计算机的指挥中心,负责决定执行程序的顺序 给出执行指令时机器各部件需要的操作控制命令.,程序的解释和运行也是由CPU的控制器来完成。

程序=指令 数据

二、程序执行的过程

当我们输入以下程序,编译运行,计算机从屏幕输出hello world!。整个过程计算机都怎么运作的呢?

程序怎么在计算机中执行:程序是如何被计算机所执行的(2)

计算机内部存储的是0和1,计算机通过位信息以及上下文来解读这些0、1信息的。

hellow world是由0和1组成的序列,将这些程序代码转换成相应的文本字符,每8位表示一个字节,用来存储一个字符。

hellow world的ASCII码表示

程序怎么在计算机中执行:程序是如何被计算机所执行的(3)

因为我们输入的hellow world是人可以阅读和编写的,但是机器并不能直接识别他们,我们需要把这些文字翻译成机器可执行的二进制文件,这一部分的工作是由编译系统完成的。编译系统由预处理器、编译器、汇编器、连接器四部分组成。以hello world程序为例,各部分共同完成将源文件编译成二进制可执行文件。各个部分完成的具体工作如下:

程序怎么在计算机中执行:程序是如何被计算机所执行的(4)

预处理器:根据以#开头的命令 将包含的头文件加载进入源程序源程序。预处理器读取系统头文件stdio.h中的内容,代替此行内容。源程序经过预处理后,得到另一个c程序,此程序通常以.i为后缀保存。

编译器:将预处理后的.i文件转换成汇编程序。编译器将不同的高级语言(如c语言,C 语言)转换成严格一致的汇编语言格式进行输出。汇编语言以标准的文本格式确切的描述每机器语言指令。编译器得到的文件通常以.s为后缀保存。

汇编器:将汇编语言(.s文件)翻译成机器语言指令,并将这些指令打包成一种可定位目标程序格式。汇编后得到的文件即为二进制文件,通常以.o为后缀。

链接器:hello world程序中调用过printf函数,它是一个c标准库里的函数。Printf函数存放在一个名为printf.o的单独预编译的文件中。而这个文件必须以适当的方式并入到我们的程序中,这个工作由链接器完成。将外部的.o文件并入后,得到一个完整的hello world可执行文件。可执行文件加载到存储器后,由系统复制执行

程序加载进入CPU的过程

程序怎么在计算机中执行:程序是如何被计算机所执行的(5)

猜您喜欢: