Compiler construction 将MIPS程序集转换为RISCV程序集
我正在致力于将为QTSPIM模拟器编写的简单MIPS汇编程序翻译成用于教学范围的RISCV汇编程序。我的想法是修改开源项目QTSPIM提供的lexer和parser yacc 这应该是流程:Compiler construction 将MIPS程序集转换为RISCV程序集,compiler-construction,mips,interpreter,yacc,riscv,Compiler Construction,Mips,Interpreter,Yacc,Riscv,我正在致力于将为QTSPIM模拟器编写的简单MIPS汇编程序翻译成用于教学范围的RISCV汇编程序。我的想法是修改开源项目QTSPIM提供的lexer和parser yacc 这应该是流程: lexer分析输入MIPS程序集并创建令牌(例如,添加、加载、存储..) QTSPIM解析器yacc的修改版本读取令牌并生成相关的RISCV程序集作为输出 这个想法正确吗?还是用另一种方法来解决这个问题更好?我认为这应该行得通 以下是一些其他想法: 使用脚本(如sed、awk或其他) 我使用公式和查找表在
这个想法正确吗?还是用另一种方法来解决这个问题更好?我认为这应该行得通 以下是一些其他想法:
- 使用脚本(如sed、awk或其他)
- 我使用公式和查找表在Excel中编写了一个简单的汇编/反汇编程序
- MIPS有10个临时变量,而RISC V只有7个
- MIPS有4个参数寄存器,而RISC V有8个
- MIPS使用单独的返回值和参数寄存器,而RISC V使用共享的返回和参数寄存器
- MIPS有8个保存的寄存器,而RISC V有12个
如果有参数传递,可能需要更多的返工,特别是如果您想遵循RISC V调用约定。谢谢您的评论!我更喜欢修改解析器,主要是因为您强调了MIPS和RISCV之间的差异。。。