assembly 如何安装Bootstrap?[已关闭]

jdg4fx2g  于 2023-10-19  发布在  Bootstrap
关注(0)|答案(1)|浏览(149)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

10天前关闭。
Improve this question
我用Python编写了自己的高级ASM语言。
可以引导我的ASM语言吗?如果是,是否有任何有用的文档描述如何一步一步地做到这一点?
这是一个循环的片段:

# comment

_data:
  set x0 0
end

_main:
  prt 'Start'
  jmp asd
  prt 'Middle'
  lbl asd
  prt 'End'
  jmp loop
  ext
end

# loop 0..9
loop:
  jmp loop_init
  lbl loop_start
  prt x0
  inc x0
  lbl loop_init
  ieq x0 10
  jmt loop_end
  jmf loop_start
  lbl loop_end
  ext
end
u7up0aaq

u7up0aaq1#

要进行引导,请使用新语言编写一个实现。
典型步骤/阶段见en.wikipedia.org/wiki/Bootstrapping_(compilers)。另见“为新编程语言开发编译器,首先在现有语言中开发,然后用新语言重写并自行编译,是 Bootstrap 概念的另一个例子。
拥有一个可用的Python版本可以作为需要实现的指南-将Python的每一行翻译成您的语言。
任何现有语言(从汇编到Python到C#)的工作实现对于通过阶段1也非常有帮助。例如,在第一阶段,您可以通过Python版本运行新的语言源代码实现,然后生成一个可执行文件(大概),您可以使用它进行自编译。
在第一阶段的版本上工作时,通过避免使用新语言中的复杂功能,事情可以更快地进行。对于汇编程序来说,这可能意味着不使用宏或模板,记录/结构,或者不依赖于更复杂的错误检测/消息传递,如果支持函数签名等功能,您可能会有。
你基本上是在用汇编语言写汇编程序。你需要像解析器,助记符查找/翻译,符号表,机器代码生成,修正(或两遍)这样的功能-类似于你在Python中已经拥有的功能,但Python使字典和其他数据结构易于使用。
通常,引导是朝着新的方向进行的,比现有的语言更高级,例如,当他们用C++编写编译器时,C#最终将其翻译为C#。你走的是另一个方向,不过这应该是一个很好的学习练习。

相关问题