
程序是实际上就是一个指令集合,通过一个 *** 作触发来执行指令
要知道,计算机是不认识我们的文字的,计算机能执行的都是机器码
指令的执行:取指,然后执行
取指(Fetch)――从主存储器中取出指令代码进入CPU。
8086CPU中,指令在存储器中的地址由代码段寄存器CS和指令指针寄存器IP共同提供,再由地址加法器得到20位存储器地址。总线接口单元BIU负责从存储器取出这个指令代码,送入指令队列。
执行(Execution)――是将指令代码翻译成它代表的功能(被称为译码)、并发出有关控制信号实现这个功能。
8086CPU中,执行单元EU从指令队列中获得预先取出的指令代码,在EU控制电路中进行译码,然后发出控制信号由算术逻辑单元进行数据运算、数据传送等 *** 作。指令执行过程需要的 *** 作数据有些来自CPU内部的寄存器、有些来自指令队列、还有些来自存储器和外设。如果需要来自外部存储器或外设的数据,则控制单元EU控制总线接口单元BIU从外部获取。
计算机执行一条指令的步骤如下:
① 把指令指针IP中的指令地址送存储器,从该地址取出指令送指令寄存器IR;
② 地址计算部件,根据IR中的地址码形成 *** 作数地址送存储器,从该地址取出数据,送到运算器中的寄存器(或寄存器组);
③ 将IR中的 *** 作码OP送指令译码器进行译码;
④ 在控制器发出的 *** 作信号的控制下,计算机各有关部件执行 *** 作码OP规定的 *** 作;
⑤ 指令指针IP加1,形成下一条指令地址。如遇到转移指令,则按转移指令对状态标志寄存器测试的结果,决定是否将转移指令中指出的指令地址送指令指针IP。
扩展资料:
计算机程序是由指令组成的。指令是机器所能识别的一组编制成特定格式的代码串,它要求机器在一个规定的时间段(指令周期)内,完成一组特定的 *** 作。指令的基本格式可归结为 *** 作码OP和 *** 作数地址AD两部分,具体内容是:
⑴ 指出计算机应完成的一组 *** 作内容,如传送(MOV)、加法(ADD)、减法(SUB)、输出、停机(HLT)、条件转移(JZ)等。这部分称为指令的 *** 作码部分。
⑵ 两个 *** 作数的地址和存放结果的地址及寻址方式。
⑶ 为保证程序执行的连续性,在执行当前指令时,还需指出下一条指令的地址。由于指令在存储器中一般是顺序存放的,所以只要设置一个指令指针(IP),每执行一条指令,IP自动加1,便自动指出下一条指令的地址,而不必在指令中专门指出下一条指令的地址 。只有在转移指令中才指出下一条指令的地址。此时,IP的内容将随转移指令所指示的内容改变。
开发一个C语言程序需要经过的四个步骤:编辑、编译、连接、运行。
C语言程序可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。
1、编辑:输入源程序并保存(。C文件)。
2、编译:将源程序翻译成目标文件(。OBJ文件)。
3、连接:将目标文件转换成可执行文件。EXE文件)。
4、运行:执行。EXE文件,得到运行结果。
扩展资料:
C代码变成程序的阶段:
1、首先,源代码文件test。c和相关的头文件,如stdio。h,由预处理程序CPP预处理为一个。我的文件。这是预编译。I文件不包含任何宏定义,因为所有宏都已展开,所包含的文件都已插入其中。我的文件。
2、编译过程就是对预处理后的文件进行一系列的词法分析、语法分析、语义分析和优化,从而产生相应的汇编代码文件。这个过程通常是整个程序构造的核心部分,也是最复杂的部分之一。
3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成一个可以运行的可执行程序。为了得到最终的可执行文件“A.out”,需要将一大堆文件链接在一起。
4、在链接过程中,调用其他目标文件中定义的函数的指令需要重新校准,使用其他目标文件中定义的变量的指令也需要重新校准。
参考资料来源:百度百科-c语言
计算机执行一条指令的步骤如下:
① 把指令指针IP中的指令地址送存储器,从该地址取出指令送指令寄存器IR;
② 地址计算部件,根据IR中的地址码形成 *** 作数地址送存储器,从该地址取出数据,送到运算器中的寄存器(或寄存器组);
③ 将IR中的 *** 作码OP送指令译码器进行译码;
④ 在控制器发出的 *** 作信号的控制下,计算机各有关部件执行 *** 作码OP规定的 *** 作;
⑤ 指令指针IP加1,形成下一条指令地址。如遇到转移指令,则按转移指令对状态标志寄存器测试的结果,决定是否将转移指令中指出的指令地址送指令指针IP。
扩展资料:
计算机程序是由指令组成的。指令是机器所能识别的一组编制成特定格式的代码串,它要求机器在一个规定的时间段(指令周期)内,完成一组特定的 *** 作。指令的基本格式可归结为 *** 作码OP和 *** 作数地址AD两部分,具体内容是:
⑴ 指出计算机应完成的一组 *** 作内容,如传送(MOV)、加法(ADD)、减法(SUB)、输出、停机(HLT)、条件转移(JZ)等。这部分称为指令的 *** 作码部分。
⑵ 两个 *** 作数的地址和存放结果的地址及寻址方式。
⑶ 为保证程序执行的连续性,在执行当前指令时,还需指出下一条指令的地址。由于指令在存储器中一般是顺序存放的,所以只要设置一个指令指针(IP),每执行一条指令,IP自动加1,便自动指出下一条指令的地址,而不必在指令中专门指出下一条指令的地址 。只有在转移指令中才指出下一条指令的地址。此时,IP的内容将随转移指令所指示的内容改变。
计算机能直接识别、执行的语言是“机器语言”。
机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译,每一 *** 作码在计算机内部都有相应的电路来完成它,或指不经翻译即可为机器直接理解和接受的程序语言或指令代码。机器语言使用绝对地址和绝对 *** 作码。不同的计算机都有各自的机器语言,即指令系统。
从使用的角度看,机器语言是最低级的语言。
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如, *** 作码字段和地址码字段,其中 *** 作码指明了指令的 *** 作性质及功能,地址码则给出了 *** 作数或 *** 作数的地址。
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。
手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
以上就是关于指令和程序有什么区别简述计算机执行指令的过程全部的内容,包括:指令和程序有什么区别简述计算机执行指令的过程、计算机执行指令的步骤是什么、在计算机上运行一个C语言编写的程序,要经过怎样的处理过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)