在哪里可以找到有关汇编程序的文档?

发布于 2024-09-02 03:03:32 字数 357 浏览 11 评论 0原文

我编写了一个非常短的程序,它使用 python 解析“程序”并将其转换为汇编程序,从而允许我将我的小编程语言编译为可执行文件。

您可以在此处阅读我的博客以获取更多信息 http://spiceycurry .blogspot.com/2010/05/simple-compilable-programming-language.html

我的问题是...在哪里可以找到更多内核命令,以便我可以进一步扩展上述博客中的脚本?

I wrote a very short program that parses a "program" using python and converts it to assembler, allowing me to compile my little proramming language to an executable.

You can read my blog for more information here http://spiceycurry.blogspot.com/2010/05/simple-compilable-programming-language.html

my question is... Where can I find more kernel commands so that I can further expand on my script in the above blog?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忆悲凉 2024-09-09 03:03:33

我宁愿推荐使用 LLVM

  • 它允许您不必担心寄存器分配等低级细节(您提供仅 SSA 形式)
  • 它会为您进行优化。正如 GHC 中的 LLVM 管道所示,它比手写且优化良好的编译器更快(一开始 - 在进行大量优化之前,它的性能与成熟的本机代码生成器相同或更好)。
  • 它是跨平台的 - 你不必将自己限制在例如 x86 上,

我不太确定你所说的“内核”命令是什么意思。如果您指的是操作码:

  • Intel 手册
  • 有一个 Wikipedia 页面,其中包含所有记录的记忆法(但不是操作码,也不总是描述)
  • NASM 手册

然而,ARM 或 PowerPC 具有完全不同的操作码。

如果您指的是操作系统 syscall(系统调用),那么:

  • 您可以只使用 C 库。它存在于每个操作系统中并且是跨平台的。
  • 您可以直接使用系统调用。然而它们更难使用,可能更慢(libc 可能使用额外的缓冲)并且不是跨平台的(x86 上的 Linux 系统调用 - 可能不是最新的)。

I'd rather recomment using LLVM:

  • It allows you not to bother with low-level details like register allocations (you provide only SSA form)
  • It does optimizations for you. It can be faster then the hand-written and well-optimized compiler as the LLVM pipeline in GHC is showing (at the beginning - before much optimalization it had equal or better performance than mature native code generator).
  • It is cross-platform - you don't tight yourself to for example x86

I'n not quite sure what you mean by 'kernel' commands. If you mean opcodes:

  • There are Intel manuals
  • There is Wikipedia page containing all of the documented memnonics (however not the opcodes and not always description)
  • There is NASM manual

However the ARM or PowerPC have totally different opcodes.

If you mean the operating systen syscalls (system calls) then:

  • You can just use C library. It is in every operating system and is cross platform.
  • You can use directly syscalls. However they are harder to use, may be slower (libc may use additional buffering) and are not cross platform (Linux syscalls on x86 - may be not up-to-date).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文