我正在尝试使用dynasm。我已经在网上找到了几个教程,但是它们都需要使用我的编译器(MSVC)拒绝的奇怪的代码行,例如|.arch x64
。提到了脱机Lua解析器和.dasc
文件,但这些教程都没有提到应该如何设置这些文件。
如何在项目中设置dynasm?
答案 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的另一个很好的介绍是: