⚠️ 自己写:整个生成器出报告

(每道题开头都有同一段:MNEMONIC 把运算符映射到助记符(+→ADD、-→SUB、*→MUL);select(t) 把一条 IR 选成几条汇编(二元运算 4 条、const/copy 各 2 条);gen(prog) 生成全部汇编行;

开始练习 →

真机上怎么算生成对了

在真实机上跑代码生成器,判定它「对了」看的是【0】。

开始练习 →

从现象认生成的问题

把四种现象和原因配对,打印四个字母:

开始练习 →

把生成器跑起来

场景:~/gen 下有一个代码生成器和一段 IR,说明写了怎么跑。 任务:把它跑起来,让它为那段 IR 生成汇编,然后运行 ~/check(它核对生成的指令数)。 范围:只在 ~/gen 下你自己的生成器与 IR 文件里操作;答案是运行后拿

开始练习 →

生成了几条指令

场景:~/gen 的生成器会为 ir.txt 里的 IR 生成汇编。对照表列了八个数。 任务:跑生成器,数出一共生成了几条汇编指令,到对照表里查那个数对应的标记。 范围:只在 ~/gen 下你自己的生成器与 IR 文件里操作;答案是运行后拿

开始练习 →

生成里有几条加法

场景:~/gen 生成的汇编里有若干条 ADD。对照表列了八个数。 任务:跑生成器,数出汇编里 ADD 出现几次,到对照表里查那个数对应的标记。 范围:只在 ~/gen 下你自己的生成器与 IR 文件里操作;答案是运行后拿到的一段标记。 提

开始练习 →

这段 IR 一共几条

场景:~/gen/ir.txt 是一段三地址码。对照表列了八个数。 任务:数出这段 IR 一共几条(不是生成后的汇编),到对照表里查那个数对应的标记。 范围:只在 ~/gen 下你自己的生成器与 IR 文件里操作;答案是运行后拿到的一段标记

开始练习 →

要溢出几个寄存器

场景:~/gen/说明.txt 写了这段 IR 用了几个临时值、机器有几个寄存器。对照表列了八个数。 任务:算出要溢出到内存几个(临时值减寄存器、最少 0),到对照表里查那个数对应的标记。 范围:只在 ~/gen 下你自己的生成器与 IR

开始练习 →

修好漏了 STORE 的生成器

场景:~/gen 的生成器有 bug——二元运算少发了最后那条 STORE,结果没存回,生成的指令数偏少。 任务:把生成器改对(补回 STORE),让它为已知 IR 生成正确条数的指令。改好运行 ~/check。 范围:只在 ~/gen 下

开始练习 →

修好选错助记符的生成器

场景:~/gen 的生成器把加法选成了错的助记符(比如 + 发成了 SUB),生成的汇编里该有的 ADD 一条都没有。 任务:把助记符映射改对,让加法生成 ADD。改好运行 ~/check(它核对 ADD 的条数)。 范围:只在 ~/gen

开始练习 →