c - 68000,可移植JIT库

标签 c code-generation jit 68000

有几个 JIT 库,但有没有发出摩托罗拉 68000 风格指令的库,例如 68000、68040、68060 或任何 Coldfire CPU?

如果它也可以为其他平台发出奖励积分,但 68k 是最重要的。

首选易于与 C 集成的语言,但其他语言也很有趣。

理想情况下类似于 libjit ,但后端为 68k。

最佳答案

虽然这并没有真正回答您的问题,但您可以考虑自己生成 68k 机器代码。如果您已经熟悉 68k 汇编,应该不会太难。

Motorola M68000 Family Programmer's Reference Manual 记录了每条 680x0 指令的语法、可用性和位配置。然而,计算指令的机器代码的一种不那么繁琐的方法是使用 68k 汇编程序,它可以为每条指令生成十六进制代码列表。如果你在 Windows 上,Easy68K 应该可以生成这样的列表,但我自己没有尝试过。

如果您不在 Windows 上,您可以尝试 this assembler(我认为只支持 68000)。您必须吹掉它上面的灰尘,但它可以工作(至少在 Linux 中)。命令行汇编程序 (assembler/asm) 有一个 -l 标志,告诉汇编程序生成一个列表。示例:

$ asmlab/assembler/asm -ln test.asm
68000 Assembler by PGM

No errors detected
No warnings generated

测试.asm

每条指令前都需要前导空格,而且汇编程序不能很好地处理标记之间的空格。

 move.l #$12345678,-(a6)
 jmp ($12345678)
 rts

测试.LIS

00000000  2D3C 12345678                      1   move.l #$12345678,-(a6)
00000006  4EF9 12345678                      2   jmp ($12345678)
0000000C  4E75                               3   rts

No errors detected
No warnings generated

关于c - 68000,可移植JIT库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5645162/

相关文章:

C 程序没有进入任何 for 循环?

c - C 中的运算符 &= 和 ~1U

c# - 您在 .NET 中使用代码生成做什么?

.net - C++ 编译器是否可以跨 DLL 内联方法调用?

java - JIT 是这种行为的原因吗?

python - 贝塞尔函数(来自 scipy.special)可以与 Numba 一起使用吗

C 中的字符数组基础知识

c - 无递归的后订单打印

c++ - 如何编写给定自定义 IDL 的代码生成器?

java - 有什么方法可以生成数据库的 POJO?