Какие доступны исполняемые двоичные форматы и эмуляторы? - PullRequest
4 голосов
/ 26 августа 2009

Ради интереса я работаю над компилятором для небольшого языка и в первую очередь нацеливаюсь на набор инструкций ARM из-за его простоты. В настоящее время я могу скомпилировать код, поэтому у меня есть машинный код ARM для тела каждого метода. На этом этапе мне нужно начать связывать несколько вещей:

  • В каком формате я должен сохранить свой машинный код, чтобы я мог ...
  • Запустить его в каком отладчике?

В настоящее время нет поддержки ввода-вывода и т. Д., Поэтому отладка будет сильно зависеть от моей способности проходить через разборку и просматривать регистры / память процессора.

Я использую Windows, а мой компилятор работает только в Windows, поэтому предпочтительнее использовать какой-нибудь эмулятор в Windows.

Редактировать: Похоже, я могу использовать эмулятор Visual Studio Windows Mobile 6. Сейчас я мог бы просто сохранить результаты в простом двоичном формате и загрузить их в память эмулятора через крошечное консольное приложение C ++, а затем перейти к нему с помощью указателя функции. Позже, похоже, мне нужно будет поддерживать форматы ELF и PE.

1 Ответ

3 голосов
/ 26 августа 2009

Относительно форматов файлов ... самым простым было бы:

Эти форматы могут записывать двоичные данные и целевые диапазоны адресов для загружаемых данных. Вот и все.

Более способный формат, содержащий больше информации:

  • ELF
    • для максимальной информации, включите DWARF отладочную информацию

ELF довольно широко поддерживается и не слишком сложен. DWARF позволяет записывать очень выразительную отладочную информацию для отладки сложных языковых конструкций. Однако для достижения этой выразительности это может быть очень сложный формат для записи.

...