欢迎来到天天文库
浏览记录
ID:56343234
大小:72.50 KB
页数:8页
时间:2020-06-12
《程序是怎么运行的.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、程序是如何运行的作为一个程序员,已不知编了多少行代码。但若问我程序是如何在计算机中运行的,我怕只有张口结舌。书中第一章就给了我们相关的答案。首先,看如下最简单的C语言Helloword的代码1#include 23int main()4{5 printf("hello, world");6}上面的代码我们保存在helloworld.c文件中。其本质实际上是由0、1的比特(位)序列构成的。8位为一个字节。每个字节对应某个文本字符。不少系统用ASCII来表示文本字符。实际是由一个唯一的同字节大小的整数值来表示每个字符。下面给出hellowo
2、rld.c的ASCII表示。# i n c l u d e < s t d i o .35 105 110 99 108 117 100 101 32 60 115 116 100 105 111 46h > i n t m a i n ( ) {104 62
3、 10 10 105 110 116 32 109 97 105 110 40 41 10 123 p r i n t f ( " h e l10 32 32 32 32 112 114 105 110 116 102 40 34 104 101 108l o , w o r l d
4、 n " ) ; }108111 44 32 119 111 114 108 100 92 110 34 41 59 10 125以此类推,在计算机系统中,任何介质中的数据都是比特序列。把他们区分成不同的数据对象,是通过数据对象的上下文来确定的。程序编译程序的编译过程如下图所示,分为预处理、编译、汇编、链接等几个阶段。预处理:预处理相当于根据预处理命令组装成新的C程序,不过常以i为扩展名。编译: 将得到的i文件翻译成汇编代码。s文件。汇编: 将汇编文件翻译成机器指
5、令,并打包成可重定位目标程序的O文件。该文件是二进制文件,字节编码是机器指令。链接: 将引用的其他O文件并入到我们程序所在的o文件中,处理得到最终的可执行文件。硬件组成:从下图中看出一个典型的系统由总线、Cpu、I/O设备、主存等构成。CPU:CentralProcessingUnit, ALU:Arithmetic/LogicUnit, PC:Programcounter, USB:UniversalSerialBus.程序执行我们已经讨论了可执行文件产生的过程。接下来讨论哈可执行文件执行的过程。从上面途中的彩色线条可以清晰的看到这个过程,我们简单的把它分
6、为6步。1.shell程序执行指令,等待用户输入,这里我们输入“hello”。2.shell程序将字符逐一读到寄存器中3.再从寄存器取出放到主存中4.当我们敲入回车时,shell程序得知输入结束,将hello目标文件的代码和数据拷贝到主存,从而加载hello文件数据包括最终被输出的字符串“hello,world”.利用了DMA访问技术,数据可不经CPU直接到主存5.执行主程序中的机器语言指令,将“hello,world”串的字节从主存拷贝到寄存器堆。6.从寄存器中把文件拷贝到显示设备。
此文档下载收益归作者所有