课题5:RISC-V汇编代码美化器

难度:低

概述:开发独立工具,读取编译器生成的.s汇编文件,输出格式整洁、带注释、对齐良好的版本。

详细任务: 1. 解析汇编行,识别标签、指令、操作数、注释。 2. 对齐字段:标签左对齐,指令助记符占固定宽度(如8字符),操作数左对齐。 3. 为每条指令自动添加注释:如addi x1, x0, 5 # x1 = x0 + 5。提供指令注释模板库。 4. 添加段注释:.text、.data、函数入口前插入分隔线和描述。 5. 支持命令行参数:输入文件、输出文件、是否添加注释、是否对齐。 6. 输出美化后的汇编文件。

交付产物: - Python脚本asm_beautifier.py - 示例输入输出文件 - 文档:使用方法、自定义注释模板

12周每周目标: - W1:学习RISC-V基础指令集,阅读项目生成的.s文件样例,分析格式问题。 - W2:编写正则表达式,从一行汇编中提取标签、指令、操作数(逗号分割)、注释。 - W3:实现字段对齐:设定指令助记符宽度8,操作数宽度20,左对齐或右对齐。 - W4:输出对齐后的汇编行,保留空行和纯注释。生成第一版美化脚本。 - W5:构建指令注释字典,为常见指令(add, sub, lw, sw, beq, jal)撰写人类可读解释模板。 - W6:实现自动注释生成:根据指令操作数填充模板中的寄存器名(如x1→ra可选)。 - W7:在代码段前添加段注释:.text前加# ===== CODE SECTION =====,.data前加类似标记。 - W8:处理伪指令(li, mv)的特殊注释,确保注释不会过长。 - W9:添加命令行参数(argparse):输入文件、输出文件、--no-comments、--no-align。 - W10:美化错误处理:遇到无法解析的行原样输出并警告,支持批量处理多个文件。 - W11:测试至少10个不同的汇编文件(包括错误格式),对比美化前后可读性,编写测试脚本。 - W12:撰写文档(安装依赖、使用示例、正则表达式规则),准备演示。