计算机的工作过程分为以下三个步骤:
1) 把程序和数据装入主存储器。
2) 将源程序转换成可执行文件。
3) 从可执行文件的首地址开始逐条执行指令。
3.在计算机系统结构中,什么是编译?什么是解释?
翻译的方式有两种,一个是编译,一个是解释。
编译型语言写的程序在执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,
比如exe文件,如果源程序不变以后要运行的话就不用重新翻译。
解释则不同,解释性语言的程序不需要编译,在运行程序的时候才翻译,翻译一句执行一句,不
生成目标程序,这样解释性语言每执行一次就要翻译一次,效率比较低。
.java文件->编译->.class文件,编译成.class字节码,.class需要jvm解释,然后解释执行。Java很特
殊,Java程序需要编译但是没有直接编译成机器语言,即二进制语言,而是编译成字节码
(.class)再用解释方式执行。java程序编译以后的class属于中间代码,并不是可执行程序exe,
不是二进制文件,所以在执行的时候需要一个中介来解释中间代码,这就是所谓的java虚拟机
(JVM)。
C语言编译过程分成四个步骤:
1, 由.c文件到.i文件,这个过程叫预处理,将#include包含的头文件直接拷贝到hello.c当中;将
#define定义的宏进行替换,同时将代码中没用的注释部分删除等
2, 由.i文件到.s文件,这个过程叫编译
3, 由.s文件到.o文件,这个过程叫汇编
4, 由.o文件到可执行文件,这个过程叫链接,将翻译成的二进制与需要用到库绑定在一块
4.描述一下指令执行过程?
程序中第一条指令的地址置于PC 中,根据PC 取出第一条指令,经过译码、执行步骤等,控制计
算机各功能部件协同运行,完成这条指令的功能,并计算下一条指令的地址。用新得到的指令地
址继续读出第二条指令并执行,直到程序结束为止。下面以取数指令(即将指令地址码指示的存
储单元中的操作数取出后送至运算器的ACC 中)为例进行说明,其信息流程如下:
1) 取指令: PC 一>MAR—>M—>MDR—>IR
根据PC 取指令到IR, 将PC 的内容送MAR, MAR 中的内容直接送地址线,同时控制器将读信号送读
/写信号线,主存根据地址线上的地址和读信号,从指定存储单元读出指令,送到数据线上,
MDR 从数据线接收指令信息,并传送到IR 中。
2) 分析指令: OP(IR)—>CU
指令译码并送出控制信号。控制器根据IR 中指令的操作码,生成相应的控制信号,送到不同的执
行部件。在本例中, IR 中是取数指令,因此读控制信号被送到总线的控制线上。
3) 执行指令: Ad(IR)—>MAR—>M—>MDR—>ACC
取数操作。将IR 中指令的地址码送MAR, MAR 中的内容送地址线,同时控制器将读信号送读/写
信号线从主存指定存储单元读出操作数,并通过数据线送至MDR, 再传送到ACC 中。
评论5