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

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

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

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

  1. # comment
  2. _data:
  3. set x0 0
  4. end
  5. _main:
  6. prt 'Start'
  7. jmp asd
  8. prt 'Middle'
  9. lbl asd
  10. prt 'End'
  11. jmp loop
  12. ext
  13. end
  14. # loop 0..9
  15. loop:
  16. jmp loop_init
  17. lbl loop_start
  18. prt x0
  19. inc x0
  20. lbl loop_init
  21. ieq x0 10
  22. jmt loop_end
  23. jmf loop_start
  24. lbl loop_end
  25. ext
  26. end
u7up0aaq

u7up0aaq1#

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

相关问题