我有我自己的链接器和机器代码转换器,我正在使用我自己的汇编指令,我的machine.This机器是一个软件处理器,它执行asm到十六进制转换器生成的机器代码。我想使用c语言而不是汇编,问题是如何使用now.My来实现这个目的。一种方法是:创建一个解析器,它将读取由LLVM生成的.s文件(类似于asm文件),并将这些指令映射到我的处理器特定的asm指令。
我不想再创建链接器和asm到机器码的转换器。
我的方法可以吗?
发布于 2017-04-28 05:43:16
你读到的*.s文件不仅仅是“一种汇编语言”,它实际上是已经传递了一些LLVM后端的汇编程序,如果你没有选择一个不同的目标,很可能是某种X86变体。
你真正想做的是让LLVM为你自己的机器发出汇编指令。这就是Writing an LLVM Backend和类似指南的内容。
这并不是很简单,但我希望尝试将其他机器的指令集(更不用说X86)翻译成您自己的指令集可能会更加困难,因为您必须模拟非常复杂的机器的每一个细节。
https://stackoverflow.com/questions/43047309
复制相似问题