编写汇编程序的见解

时间:2012-01-30 06:28:15

标签: assembly

我已经定义了一个只有加载,存储,移动,加法和减法操作的指令集。现在我想编写一个汇编程序,它将获取包含我已定义的指令的文件并生成可执行代码。

我知道编译器结构的理论,如扫描,解析,中间代码等。我想用C语言编写。我已经浏览了一些像compilers.iecc.com/crenshaw/和其他几个链接。

我遇到了一些问题,比如如何将我的指令映射到底层处理器提供的指令?,如何为x86以及68000等生成可执行代码。我已经定义了一个非常小的指令集,我想要没有优化只是为了简单起见。任何人都可以帮助我解决上述问题并给我一些见解吗?

1 个答案:

答案 0 :(得分:1)

如果您正在构建汇编程序,那么您的工作和复杂程度远远低于编译器。首先要看的是开源汇编程序,例如FASMNASM,您可以从中了解如何进行代码生成。

IMO,最好的方法是生成一个中间表示或字节码(如果您感兴趣,甚至可以为VM设置),然后创建一个状态结构来保存每个机器目标的公共数据和生成函数。而且由于你的指令集很小,这应该很简单,所有代都可以使用循环内的开关来完成。