分类: LINUX
2013-05-16 18:16:26
点击(此处)折叠或打开
gcc –E test.c –o test.i
扩展源代码,插入所有用#include命令的指定的文件,并扩展多有用#define声明指定的宏。
test.i的内容如下:点击(此处)折叠或打开
gcc –S test.i –o test.s 或 gcc –S test.c –o test.s
编译过程就是把预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件。
将test.i翻译成test.s,它包含一个汇编语言程序,汇编语言程序中的每条语句都以一种标准的文本格式确切地描述了一条低级机器语言指令。
test.s的内容如下:
点击(此处)折叠或打开
as test.s –o test.o 或 gcc –c test.s –o test.o 或gcc –c test.c –o test.o
汇编器将test.s翻译成机器语言指令(字节编码),打包成可重定位的目标文件test.o,它是一个二进制目标文件。
4. 链接最后生成四个文件:test.i test.s test.o test
1、单任务计算机是如何工作的
单任务计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存贮器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去,直至遇到停止指令。
程序与数据一样存贮,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是单任务计算机最基本的工作原理。
2、多任务计算机是如何工作的
多任务处理是指计算机同时运行多个程序的能力。多任务的一般方法是运行第一个程序的一段代码,保存工作环境;再运行第二个程序的一段代码,保存环境;……恢复第一个程序的工作环境,执行第一个程序的下一段代码……现代的多任务,每个程序的时间分配相对平均。
多任务,简单说,就是同一时间给多个程序运行处理数据。Unix是实时的、分布式系统,采用时间片方式,轮流给多个提交CPU处理请求的进程分配资源,支持多用户、多任务处理。Windows多任务处理采用的是虚拟机技术,在内存中创建逻辑微机(也是通过时间片轮流占用CPU),由它来运行处理程序。所谓多任务处理,就是指同时运行多个程序并且程序之间可以随意切换。