为了好玩,我正在为一种小型语言编写一个编译器,由于ARM指令集的易用性,我首先将它作为目标。目前,我能够编译代码,因此每个方法的主体都有ARM机器代码。在这一点上,我需要开始把一些事情联系起来:
目前没有I/O支持等,因此调试将主要取决于我分步完成反汇编和查看处理器寄存器/内存的能力。
编辑:看来我可以使用Visual Studio Windows Mobile 6模拟器。现在,我可以简单地将结果保存在一个简单的二进制格式中,并通过一个小型C++控制台应用程序将其加载到模拟器内存中,然后用函数指针跳进该模拟器。后来,我似乎需要支持ELF和PE格式。
这些格式可以记录二进制数据和要加载的数据的目标地址范围。就这样。
包含更多信息的功能更强的格式: