如何设置dynasm?

时间:2017-06-09 03:30:26

标签: c++ compilation jit luajit

我正在尝试使用dynasm。我已经在网上找到了几个教程,但是它们都需要使用我的编译器(MSVC)拒绝的奇怪的代码行,例如|.arch x64。提到了脱机Lua解析器和.dasc文件,但这些教程都没有提到应该如何设置这些文件。

如何在项目中设置dynasm?

1 个答案:

答案 0 :(得分:0)

DynASM允许您通过混合C代码和ASM代码来更轻松地记下汇编。必须预处理DynASM文件。编译DynASM文件(.dasc)的输出是一个C文件(.c),您可以稍后将其集成到项目中。

要预处理DynASM文件,您应该使用LuaJIT源代码(dynasm/dynasm.lua))附带的dynasm程序。您提到的“奇怪”行是由DynASM处理的ASM代码.asm代码存储为字节值到生成的C程序中的一个名为actions的数组中。

Josh Haberman在DynASM上发表了一篇精彩的文章:Hello, JIT World: The Joy of Simple JITs。本教程包含示例代码。该代码以GitHub repository的形式提供。获取它并开始使用它(注意:当前master分支没有构建,我只是发送了一个pull-request来修复它。)

DynASM的另一个很好的介绍是: