一个小型的c语言编译器
- 可以定义多个变量,并且能初始化。
- 可以支持基本的加减乘除运算。
- 可以支持带括号的多个变量的四则混合运算。
- 可以支持单行注释和多行注释。
- 可以输出%c格式的字符和%d格式的整数。
- 可以定义int 类型和 char类型。
- 可以输出字符串
- 可以输出2位整数
- 可以支持简单的if{}else{}语句。(大于和小于比较条件)
- 以上支持的语法可以混合在同一个源程序中。
- 部分错误语法可以报错。
- 编辑器:记事本、VC++6.0
- 汇编环境:dosbox、emu8086
- 汇编器、链接器:MASM、LINK
- 汇编语言:8086汇编
- 源代码:C++,用VC++6.0 / gcc编译
目录中的a.out文件是在Linux下编译完成的可执行文件,可以直接运行。
该程序源代码中并未使用 C++11 标准,所以无论是在windows下还是在Linux平台下,只需要按照编译普通C++程序的方法即可。
假设已经编译完成,生成可执行文件名:compiler
假设待编译的c程序为test1.c
直接双击可执行文件运行,根据提示输入待编译的c程序文件test1.c的路径,编译后在该路径下生成相同文件名的test1.asm文件。
默认生成相同文件名的.asm汇编文件
- compiler test1.c
可以指定编译生成的文件名和存放位置
- compiler test1.c T.asm
可以使用目录中的测试代码测试结果。
扫源代码 --> 词法分析 --> 语法分析 -->目标代码 --> 汇编代码