2013-10-13 100 views
3

我正在爲編譯器編寫x86後端程序,並且發現它非常繁瑣,無法編譯我需要的每個彙編指令的機器代碼,而且我顯然重新發明了方向盤。在任何地方是否有這種指令集的聲明性表示,例如一個XML文件映射指令操作和操作數到字節?x86指令集的聲明性表示

+0

你不能只使用x86彙編程序嗎? MASM,TASM - 谷歌他們。 – 2013-10-13 15:43:26

+3

其中之一? http://ref.x86asm.net/ – harold

+0

爲什麼不看看llvm x86後端的工作原理?它的開源和相當清楚(雖然不是很簡單..) – Leeor

回答

0

我強烈建議爲此使用DynASM。這不是一個聲明性描述,但它可以讓你絕對控制發佈的指令,並且比聲明性描述更容易使用。這是編寫特定於平臺的編碼器IMO的理想方式。

它也非常小且不受影響:運行時完全包含在幾百行.h文件中。

查看我的DynASM tutorial瞭解使用DynASM編寫一個非常簡單的代碼的例子。

即使您不相信DynASM,您也可以在DynASM代碼庫a pretty concise declarative description of x86 instructions中找到,您可能會發現它很有用。