第二阶段 第一章

实验一

在上一阶段中用到tc2.0文件夹中,找到了所需要的

寻找其必须需要的文件的过程:

需要tcc命令,所以tcc.exe是必须的,当用该命令,直接编译一个空的main函数文件时候,提示缺少tLink.exe,便找到tLink.exe,再次使用tcc命令,则发现,还需要tcc.exe,tlink.exe,c0s.obj,cs.lib,emu.lib,maths.lib文件,将这些文件拷贝到c:\c文件目录下,开始试验。

在该路径下,编写这个程序:

main() 

{

printf ("hello ,world\n");

}

保存该文件名为hello.c

执行tcc hello.c命令,可以得到如下提示:


从该提示信息可以看出,除了提示一些版权外,第四行提示使用了link命令,可以得知,tcc命令自动调用tlink.exe

在实验指导书的描述中,有这样一句话:按照这种方法生产的.exe文件中的程序可有两个最大为64k的段,一个段为代码段,栈段和数据段共用一个段。

对于这句话,我的解读是,先前的实验指导书中提到:tc2.0提供的编译程序生成的代码是运行于8086模式的代码,在一个段中,段地址是固定不变的,可以改变的只有偏移地址,偏移地址从0~FFFF就是64k大小。

在实验过程中,遇到了一个问题,起初,我将这个程序命名为helloworld.c,但是在用tcc helloworld.c时候,提示没有该文件。更改文件名为hello.c后,发现可以通过编译连接。可能跟文件名长度有关,最后发现,当文件名(不包括扩展名)长度超过8个字符后,只取前8个字符,在当前路径去寻找符合这前8个字符的文件,进行编译连接。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值