汇编语言综合研究试验1--搭建一个精简的C语言开发环境
试验1不难,我们只要根据书中的指示一步一步做,就能完成。
首先,我们需要有tc2.0编译器,然后,在试验过程中,挑选出我们需要的文件
一.实验过程
1.在d盘建立一个文件夹tc2.0,将tc2.0的所有文件都拷贝在d:\tc2.0文件中
2.在c盘建立一个目录minic
3.把tc.exe拷贝到c:\minic下
4.运行tc.exe,并对tc的工作路径进行设置,将所有路径都清空,即都设置为当前路径
5.在tc.exe环境中编辑程序simple.c,保存到c:\minic下
6.按书上要求做,编译完成后,无错误信息,simple.obj可生成。继续连接时,出现提示信息:“Unable to open input file‘c0s.obj’”
发现缺少c0s.obj文件,去d:\tc2.0目录以及子目录下找到此文件,并将其拷贝到c:\minic下
再次连接,它还会报错
7.同样的方法,在d:\tc2.0目录以及子目录下,反复寻找连接生成.exe文件所需的文件,拷贝到c:\minic,直至没有报错,依次添加,emu.lib,maths.lib,graphics.lib,cs.lib
8.再次对simple.c文件编译,连接,即可生成simple.exe文件
二.总结思考
实验中,发现,缺少 .obj:目标文件和 .lib:库文件
相应文件所起作用如下(来自百度):
TC.EXE 集成开发环境
C0S.OBJ 不同模式启动代码
CS.LIB 不同模式运行库
GRAPHICS.LIB 图形库
EMU.LIB 8087仿真库
MATHS.LIB 数学函数库
几点解释:
(1)一般我们常使用的是TC.exe,实际上,Turbo C包有两种编译器,集成开发环境下的叫做TC.exe和命令行方式下的图形界面运行环境叫做TCC.exe(需要额外的graphics.lib文件提供支持)
(2)此程序中调用了printf函数,大家都知道调用C语言的库函数需要添加头文件,这里却不添加也可以,因为在cs.lib中已经添加了printf函数的具体实现。
三.研究体会
编写简单C语言程序,在经过编译、连接过程中发现,可以正常编译为.obj文件,但是在连接为.exe文件过程中需要一些其他的程序或文件,通过错误信息将所需的文件拷入,之后再一步一步的运行,很清晰的看到了要成功连接一个文件所需要的文件或程序,对程序的编译、连接过程有了更清晰的了解。我们看到的TC2.0编译环境,精简之后可以只剩有限的几个文件就可以实现基本功能。而其他的include文件等都可以省略。所以,我们看到的不一定是必须的。从另一个方面说,系统基本功能实现后,为了简单化和保证稳定性等或者其他方面考虑,我们应该要添加更多的内容进入系统。这样的系统才是完整的,稳定的,高效的。另外,文件与内存相似点在于,数据和控制信息或者可执行代码,本质都是二进制信息没有任何区别。区分他们在于CPU和程序编写者的使用方法。
注意:
当连接simple.obj文件报错时,我们可以用tc环境中的Options菜单项下的相关功能设置相关文件所在的目录的方法,解决找不到.obj文件和.lib文件的问题,但是,为了使我们能够对此时需要哪些文件,以及这些文件在什么目录下,如何找到这些文件等问题有清晰的感性的认识,这里选择一步一步添加的方法
综合研究阶段所需要的tc2.0我已经上传网盘,免费分享给大家,关注我的公众号,菜单栏–>技术相关–>免费资源即可领取,还有网课查答案,包括学习通、智慧树、mooc,内容涵盖计算机、政治等等,还有其他免费资源(简历模板、电子版书籍和考试资料等等),说不准大家会有用(分享干货)!
扫码加关注吧!