- 打卡等级:以坛为家I
- 打卡总天数:227
- 最近打卡:2025-10-04 06:38:13
荣誉版主
- 积分
- 3071
|
【已更第二棒(真)】 齐天编译器第二棒(真) 九三阅兵 (串口,字符方阵) - SDCC, IAR C++ for 51, GCC, VSCode,Linux, MacOS 国芯人工智能技术交流网站 - AI32位8051交流社区
【已更第二棒(伪)】 详情请看9楼
【手搓编译器】齐天编译器 第一棒 梯云八纵(8颗流水灯)
https://www.bilibili.com/video/BV1jHtozkEFk
目测要写3~5篇文章来解释第一棒的代码
1. 词法分析 齐天编译器第一棒 原理&代码讲解之 词法分析:编译器的第一道关卡 - SDCC, IAR C++ for 51, GCC, VSCode,Linux, MacOS 国芯人工智能技术交流网站 - AI32位8051交流社区
2. 语法分析 齐天编译器第一棒 原理&代码讲解之 从乒乓球到语法分析 - SDCC, IAR C++ for 51, GCC, VSCode,Linux, MacOS 国芯人工智能技术交流网站 - AI32位8051交流社区
3.中间代码生成
4.机器码与hex生成
* 说明文档
* 项目名称:QITIAN_MCS251_Compiler_V1.0
* 作者:gentleman_齐天大圣
* 用途:兼容 MCS251 指令集的编译器
* 开源协议:GPLV3
* 测试环境:AI8051U 实验箱V1.2 跑马灯程序
* 简介:当前版本,
* 编译器执行文件位置:bin\Debug\net9.0\QITIAN_MCS251_Compiler.exe
* 会编译工程目录下 test\test.c
* 到build\test.hex 下
*
* 首个版本,主要是为了跑通 整个工具链
* 实现 源码 - tonken - ast - ir - 机器码 - hex
* 所以仅支持5条c指令 (可用于点灯,闪灯,跑马灯等程序)
*
* 支持的指令列表
* C 语法 IR 指令 8051/C251 机器码 说明
* sfr P1 = 0x90; 符号登记 (无机器码) — 声明特殊功能寄存器
* void main(void){} 仅生成入口标签 (无机器码) — 主函数入口(后续扩展)
* P1 = 0xFF; MOV_DIR_IMM 0x90, 0xFF 75 90 FF 立即数写端口
* while(1); SJMP_REL -2 80 FE 无限循环
* delay(N); 3×DJNZ_DIR_REL (三次嵌套DJNZ) 软件延时(特色语法糖)
*
*
*
* 下版本预告:
* 实现 串口通讯 相关源码的编译
|
2
喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
-
+2
楼主威武~
-
+1
楼主威武~
|