68000, портативная библиотека JIT - PullRequest
5 голосов
/ 13 апреля 2011

Существует несколько библиотек JIT, но есть ли какие-либо, которые выдают инструкции в стиле Motorola 68000, например, 68000, 68040, 68060 или какой-либо из процессоров Coldfire?

Бонусные баллы, если он может генерировать и для других платформ, но 68k является наиболее важным.

Что-то, что легко интегрируется с C, предпочтительнее, но интересны и другие языки.

В идеале что-то вроде libjit , но с бэкэндом 68k.

1 Ответ

2 голосов
/ 28 апреля 2011

Хотя это на самом деле не отвечает на ваш вопрос, вы могли бы подумать о создании машинного кода 68k самостоятельно. Это не должно быть слишком сложно, если вы уже знакомы со сборкой 68k.

Справочное руководство для программиста семейства Motorola M68000 1004 * документирует синтаксис, доступность и битовую конфигурацию каждой инструкции 680x0. Однако менее утомительным способом выяснить машинный код для инструкций является использование ассемблера 68k, который может генерировать список шестнадцатеричных кодов для каждой произведенной инструкции. Если вы используете Windows, Easy68K сможет создать такой список, но я сам не пробовал.

Если вы не в Windows, вы можете попробовать этот ассемблер (я думаю, что он поддерживает только 68000). Вам придется с него смахнуть пыль, но это работает (по крайней мере, в Linux). Ассемблер командной строки (assembler/asm) имеет флаг -l, который указывает ассемблеру генерировать листинг. Пример:

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

No errors detected
No warnings generated

test.asm

Перед каждой инструкцией требуется пробел, и ассемблер плохо обрабатывает пробелы между токенами.

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

test.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
...