Skip to content

A Tiny Compiler for C-Style Language - UESTC CS 一个针对类C语言的小型编译器-电子科技大学编译原理

Notifications You must be signed in to change notification settings

ZhangYW18/compiler_C-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

一个针对类C语言的小型编译器

A Tiny Compiler for C-Like Language

1. 预装软件

首先安装必要的软件:flex, bison, nasm flex即词法分析器,bison即语法分析器,nasm即汇编编译器

sudo apt-get install flex
sudo apt-get install bison

nasm可以在官网下载安装包,之后将其解压至任意位置,在终端切换到解压目录,并运行以下命令:

./configure
make
make install
make rdf_install

2. 编译源文件

在test.c下将该文件改为你自己的源文件,并在项目目录下输入make:

make

即可得到中间代码。中间代码存储在backend文件夹下的my.asm文件。 切换到backend目录再次make,可以得到可执行文件my和汇编源文件my_final.asm。

cd ./backend
make

3. 运行目标程序并查看结果

利用gdb可以对可执行文件进行调试。

在backend文件夹下利用gdb调试:

gdb ./my

在gdb下,可以用b 12在第12行建立断点,r运行,c继续运行,info registers查看当前寄存器的值,l 12列出12行附近的代码。

赋值语句执行之后,结果保存在EAX寄存器当中。

特别感谢: https://pandolia.net/tinyc/index.html

About

A Tiny Compiler for C-Style Language - UESTC CS 一个针对类C语言的小型编译器-电子科技大学编译原理

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published