简单的小c语言编译器源码分析和改进。
SMC 是命令行的小型16位命令行C语言编译器。本来想完善它,但是少了点函数。
这些少的函数在CLIB.LIB库中自带有,所以也不说了。
https://pan.baidu.com/s/1cVA_9QfGP1UvRqq1jNqEKw?pwd=1111
这个包是C语言可编译源码。
加了几个批处理。
SEDOS.BAT 这是启动DOSBOX模拟器的,在windows 下点击就可以了。
SC.BAT 这是编译和重组C语言的批处理。命令用法:
SC name.C ----> name 是任意C文件名
COMPILE.BAT 这是完成C 文件生成目标OBJ文件的一个批处理,原文档。
BUILDLIB.bat 这是建造 CLIB.LIB 库文件的批处理。加库的两种方法
BUILDSC.bat 这是扩展的文件编译批处理,原有的CLIB.LIB库中已有这些函数可用。
PS: 新生成的CLIB.LIB 没有一些函数。改动了以前的C文件的错误。可以用于所有系统。只是没有模式选择,纯16位系统。
CCC.txt 这是汇编语言的 LIST文件
CC86.exe 这是以前的可用的C语言编译器,这些C程序靠它完成编译。
CC86.exe 生成 *.mac 文件,看起来不可以用,只能说不能直接使用。
子目录中包含了两个汇编语言编译器。一个是masm5.0,一个是masm6。
所有的C文件重新整理过,这个CC86生成*.mac 有个缺点,也就是文件最后一个字符,不要挨着C文件的最后一个反刮号”}“。
dosbox.conf 是DOSBOX的设置文件,最后几行是和这个目录下的项目配对的。
[autoexec] # Lines in this section will be run at startup. mount c "C:\Users\ASUS\Desktop\SMC\SMCD\" path c:\masm\;
这上面的路径可以改成自己的项目路径。
我是文章作者,所以编译器这个难活还是业余点好。
基本上没什么问题了,具体一点可以看批处理,都已经做好了。
cc86 cc1.c
masm cc1.mac;
link cc1.obj
就这几行可以生成cc1程序。
CC11.C 是C语言主程序,其它的CC1.C~CC4.C,CC11.C~CC13.C,CC21.C~CC42.C 是C编译器的主包含程序。
CC.DEF 是全局C语言宏定义值。
其它的C文件是函数C文件。
有H包含文件,只有<stdio.h>是标准的。
这个C语言可以内嵌汇编语言,源编码可以换其它汇编助记符,十分好用且无毒无害。