博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过搭建一个精简的C语言开发环境了解一个C程序的执行过程
阅读量:6187 次
发布时间:2019-06-21

本文共 1093 字,大约阅读时间需要 3 分钟。

一、如何搭建一个精简的C语言开发环境

准备:下载TC2.0,并解压,比如说“d:\tc2.0\tc”目录

1、在C盘建立一个目录minic

c:\ md minic

2、从解压的目录中将以下文件拷贝到c:\minic中

    其中TC.EXE是在d:\tc2.0\tc目录下,而COS.OBJ、EMU.LIB、MATHS.LIB、GRAPHICS.LIB、CS.LIB是在D:\tc2.0\tc\lib目录中的。

3、软件配置

  选择菜单项“Options”中的“Directories”选项,对TC的工作路径进行设置,将所有的路径都设置为“c:\minic”。然后用“Save options”选项保存设置。

  生成的配置文件

二、从中我们能学到什么

    尝试去搭建一个最简的C语言开发环境,并不是说就让我们去用这个环境(我不建议)。毕竟功能齐备的集成开发环境能让我们的学习更有效率。但是,做这样的工作的意义还是有的,我认为有以下两点。

(1)认识到C语言开发环境的必备部分

(2)尝试了解我们应用程序的构成和执行过程(从库文件来看)

(3)了解C语言开发环境的输入输出目录(从“步骤3、软件配置”中来看)

  对于意义(1),从步骤2中很容易明白。对于意义(3),它让我们知道c程序的头文件目录、库文件目录以及工程文件输出目录都是可以设置的。但是,这在VC6.0这样现代化的集成开发环境中却不曾发现。

  意义(2)是做这个工作最重要的部分,到底我们的C程序是如何和库文件(.obj、.lib)结合生成可执行程序呢?又是如何执行程序呢?

1、程序连接过程

  首先,编译器将我们写的C程序编译成.obj文件。然后,连接器将这个.obj文件和系统库文件(.obj)连接到一起生成一个可执行程序。不管是连接哪一个程序,COS.OBJ、EMU.LIB、MATHS.LIB、GRAPHICS.LIB、CS.LIB这些库是必须的。

2、程序的执行过程

①c0s.obj里的程序先运行,进行相关的初始化。如申请资源,设置ds,ss等相关寄存器

②c0s.obj里的程序调用main函数,从此用户程序开始运行

③用户程序运行结束从main程序返回到c0s.obj的程序中

④c0s.obj的程序接着运行,进行相关的资源释放,环境恢复的工作

⑤c0s.obj的程序调用DOS的int 21h例程的4ch号中断功能,程序返回

附:

  c0s调用main函数的地址:  011ah

  main函数的连接地址:  01fah

 

参考资料:

     《汇编语言》322页 “研究实验4 不用main函数编程”

 

转载地址:http://imada.baihongyu.com/

你可能感兴趣的文章
java读取excel
查看>>
JAVA学习总结(六)
查看>>
转 oracle数据库更新时间字段数据时的sql语句
查看>>
用 Flask 来写个轻博客 (9) — M(V)C_Jinja 语法基础快速概览
查看>>
4K - 找新朋友
查看>>
实际状态
查看>>
vue在钩子中引用方法不成功
查看>>
spring添加事物
查看>>
星外虚拟主机管理平台 开通数据库 出现Microsoft OLE DB Provider for SQL Server 错误 '8004' 从字符串向 datetime 转换失败...
查看>>
【SmartDental】小组第一次会议纪要
查看>>
对抗拖延症最直接有效的方法
查看>>
redis安装与配置
查看>>
单例模式的理解与应用
查看>>
html_之css
查看>>
读书技巧
查看>>
select有条件in要按照in中的数据排序
查看>>
spring相关
查看>>
a各种状态
查看>>
Boostrap常用组件英文名
查看>>
flask+redis实现抢购(秒杀)功能
查看>>