diff --git a/docs/step1/arch.md b/docs/step1/arch.md index fc3736b9..cb27ea88 100644 --- a/docs/step1/arch.md +++ b/docs/step1/arch.md @@ -127,7 +127,7 @@ TAC 程序是**无类型**的,或者说它仅支持一种类型:32位(4字 ## 目标平台汇编代码生成 -> 目标平台汇编代码生成在 `backend/asm.py | backend/asmemitter.py | backend/subroutineemitter.py | subroutineinfo.py` 以及 `backend/riscv/` 中。 +> 目标平台汇编代码生成在 `backend/asm.py | subroutineinfo.py` 以及 `backend/riscv/` 中。 通常我们认为的目标代码生成步骤包含寄存器分配、指令选择。**寄存器分配**是指为中间代码中的虚拟寄存器分配实际的物理寄存器,涉及物理寄存器的调度分配。**指令选择**是指选用合适的汇编指令来翻译中间代码指令,如中间代码生成章节提供的例子中,使用 addi 汇编指令来翻译 ADD 中间代码指令。需要特别提出的是,RISC-V 指令集的设计思路是尽可能简洁,因此有些指令并没有直接提供,需要用多条简单指令代替,如相等、大于等于、逻辑与、逻辑或等等。同学们实现时需要特别注意。