通过搭建一个精简的C语言开发环境了解一个C程序的执行过程
一、如何搭建一个精简的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函数编程”
通过搭建一个精简的C语言开发环境了解一个C程序的执行过程的更多相关文章
- 研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)
综合研究: 在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想).同时使我们: (1)认识到汇编语言对于深入理解其他领域知识的 ...
- R 语言开发环境搭建
R 语言在统计计算和画图方面有着显著的优势,因此在大数据领域也有其一席之地. 本文将演示怎样搭建R 语言开发环境. 搭建R 语言开发环境,主要有两个步骤: - 安装 R 到操作系统 - 安装支持 R ...
- 【Apache Pulsar】Apache Pulsar单机环境及Go语言开发环境搭建
0x01 简介 Apache Pulsar是一个开源的分布式发布-订阅消息系统,与Kafka类似,但比后者更加强大.Pulsar最初由Yahoo开发并维护,目前已经成为Apache软件组织的一个孵化子 ...
- 从零开始搭建Go语言开发环境
一步一步,从零搭建Go语言开发环境. 安装Go语言及搭建Go语言开发环境 下载 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://gol ...
- AbelSu教你搭建go语言开发环境
go语言官网:https://golang.org/ windows:官网下载go1.6.windows-amd64.msi安装文件,安装位置选择默认C:\Go\安装结束后配置环境变量Path: C: ...
- SublimeText3搭建go语言开发环境(windows)
SublimeText3搭建go语言开发环境(windows) 下载并解压: Sublime Text Build 3021.zip注册: 尽量不要去破解 安装Package C ...
- 「C语言」在Windows平台搭建C语言开发环境的多种方式
新接触C语言,如何在Windows下进行C语言开发环境的搭建值得思考并整理. 以下多种开发方式择一即可(DEV C++无须环境准备). 注:本文知识来源于 Windows 平台搭建C语言集成开发环境 ...
- 安装Go语言及搭建Go语言开发环境
一步一步,从零搭建Go语言开发环境. 安装Go语言及搭建Go语言开发环境 下载 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://gol ...
- Win7下搭建Go语言开发环境
Win7下搭建Go语言开发环境 1 下载适合window版本的Go安装包,下载地址http://code.google.com/p/go/downloads/list 2 下载适合window本本的L ...
随机推荐
- EXCEL VBA 选择文件对话框
Sub XXX() Dim arr() arr = Application.GetOpenFilename("所有支付文件 (*.xls;*.xlsx;*.csv),*.xls;*.xlsx ...
- 【转】jQuery列表拖动排列-jquery list dragsort插件参数和使用方法
转自:http://www.itokit.com/2014/0820/75058.html 我们在编辑页面元素排序的时候,我推荐使用jquery插件:dragsort. dragsort官网地址:ht ...
- c#基础语言编程-文件流操作
引言 在System.IO 命名空间下提供了一系列的类,我们可以通过相应的类进行文件.目录.数据流的操作. 1.File类:提供用于创建.复制.删除.移动和打开文件的静态方法.File类 2.File ...
- eCos系统CPU负载测量
原文:http://ecos.sourceware.org/docs-latest/ref/services-cpuload.html 译文:http://blog.csdn.net/zoomdy/a ...
- 听听Matt Rogish说怎么面试程序员
Google的人力运营高级副总裁Laszlo Bock在一次采访中说Google发现在面试程序员时问智力题完全是浪费时间,Matt Rogish在他的这篇博客How to Interview Prog ...
- Ubuntu开机出现:Fontconfig warning:"/etc/fonts/conf.d/65-droid-sans-fonts.conf"的解决办法
Ubuntu升级后可能会出现以下问题: Fontconfig warning: "/etc/fonts/conf.d/65-droid-sans-fonts.conf", line ...
- clock_gettime测代码运行时间
//函数原型: // long clock_gettime (clockid_t which_clock, struct timespec *tp); //参数列表: // CLOCK_REALTIM ...
- ssh登录很慢解决方法
使用ssh客户端(如:putty)连接Linux服务器,可能会等待10-30秒才有提示输入密码.严重影响工作效率.登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因: 1. DNS反向解析问题 ...
- ASP.NET MVC 第三回 Controller与View
这节我们让ASP.NET MVC真正的跑起来 一.新建Controller 首先我们自己新建一个新的Controller在Controllers上点右键,添加,Controller选项 之后出现一 ...
- javascript动画效果
之前工作项目中,运用了缓动动画的效果,在网上看到其他大牛写的相关公式,结合工作需要,进行了整理,拿出来跟大家分享下,js代码中,只运用了一个小功能进行了测试 <!DOCTYPE html> ...