2009-08-25 72 views
4

爲了好玩,我正在編寫一個小語言的編譯器,並且由於它的簡單性,我首先針對ARM指令集。目前,我可以編譯代碼,因此我爲每種方法的主體提供了ARM機器代碼。在這一點上我需要開始捆綁一些東西放在一起:什麼是可用的可執行二進制格式和模擬器?

  • 我要堅持我的機器代碼,以什麼格式,所以我可以...
  • 運行它在什麼調試?

目前沒有任何I/O支持等,所以調試將被深度鎖定到我的步驟通過拆卸和視圖處理器寄存器/記憶能力。

我正在運行Windows,我的編譯器只能在Windows中運行,因此在Windows上安裝某種模擬器會更好。

編輯:看來我可以使用Visual Studio Windows Mobile 6仿真器。現在,我可以簡單地將結果保存爲一個簡單的二進制格式,並通過一個小型C++控制檯應用程序將其加載到仿真器內存中,然後用函數指針跳轉到它。後來,看來我需要支持ELF和PE格式。

+0

也許添加'embedded'標籤,假設這與嵌入式軟件有關。 – 2009-08-26 00:01:44

+0

是的,你可以在Windows Mobile上使用PE。而小小的「bin-starter」是很好的低成本理念,只是想提示一下,但太遲了:) – zxcat 2009-09-04 06:36:56

回答

3

關於文件格式......最簡單的是:

這些格式可以記錄的二進制數據和目標地址範圍(S)要加載的數據。就是這樣。

一個更強大的格式包含更多信息:

ELF是相當廣泛的支持,而不是調試信息太複雜了。 DWARF允許您記錄非常富有表現力的調試信息,用於複雜語言結構的調試。但是,要實現這種表現力,它可能是一種非常複雜的編寫格式。

+1

elf是最常用的,你最終需要支持它。這很容易,但不像srec或intel十六進制那麼簡單。 – 2009-08-26 13:22:40

相關問題