首页 > 解决方案 > 使用存储单元创建表

问题描述

我正在编写自己的编译器(用 python 编写,输出是伪汇编),我遇到了一个我无法解决的问题。

我想创建一个只使用内存单元而不使用寄存器的表结构。我可以根据声明分配足够的空间,但我不知道如何引用tab(x)地点。

我有STOREN n命令,它存储主内存(它是y_{0}to y_{y_{n}})并且LOADN n它确实反转,所以:y_{0}<- y_{y_{n}}

除此之外,我还有

我已经创建了在内存单元中设置自定义值和管理 for 循环的函数。假设我将迭代器存储在 y_1 上,fromVal 存储在 y_2 上,toVal 存储在 y_3 上,并为表 tab(1:100) 分配了从 4 到 104 的内存单元。现在给出这个输入......

let tab(1:100)
let x = 1
for i = 1 to 100:
  tab(i) = x 

...我如何编写一个 python 代码来打印出正确的指令以在这个伪汇编代码中完成上述代码?我真的没有希望了,也不知道如何编写一个合适的表管理函数,它可以像上面的示例代码那样完成任务。

标签: pythonassemblycompiler-construction

解决方案


推荐阅读