2013-02-14 75 views
1

Visual Studio是否支持x86彙編語言的代碼自動完成?我發現在使用高級編程語言(如Java和C++)時,自動完成功能非常有用,並且我想知道Visual Studio中的彙編語言是否具有類似的功能(例如,鍵入m可以將mov作爲建議,並打字j將提供j1作爲建議)。x86彙編語言的代碼自動完成

+0

我發現很難記住x86彙編語言的每個關鍵字,因此某種自動完成功能將非常有用(如果存在)。至少在理論上,是否有可能爲彙編語言實現代碼自動完成功能? – 2013-02-14 20:29:56

+2

你不需要記住每一條指令或關鍵字。儘管你會很快記住最基本和最有用的(例如'mov','add','ret','jz'等)。 – 2013-02-14 20:32:26

+0

@AlexeyFrunze儘管如此,自動完成可以使學習每個基本指令(以及每條指令的目的)變得更加容易。如果每個關鍵字的文檔都可以顯示在鼠標懸停上,這也是有用的,這是其他語言IDE的一個功能。 – 2013-02-14 20:34:06

回答

2

據我知道,彙編語言提供一些自動完成的唯一IDE是那些特別是對彙編語言設計的。

RADASM是這種IDE的一個例子。

儘管程序集自動完成的主要目標不是指令(因爲它們很短並且很容易被鍵入),而是標籤和其他標識符。

在大型裝配項目中可能會有成千上萬的標籤,所以這套裝置中的快速導航確實非常有用。

其中一個最先進的自動補全引擎是在Fresh IDE中實現的。

這是我的項目,但我認爲我沒有偏見的估計。

大多數程序集IDE使用固定的API標籤列​​表,有時還會掃描源文件以便生成檢測到的標籤列表。他們被迫使用這種技巧,因爲它們通常是必須支持幾種不同彙編器和HLL編譯器的通用IDE。

新鮮的IDE不同 - 它使用FASM彙編程序運行實際編譯,以收集編譯後彙編程序檢測到的標識符集合。通過這種方式,所有標籤都能正確檢測,即使是在組裝過程中由宏生成的標籤以及它們的值,類型和層次結構。

這個解決方案是被迫的,因爲FASM具有非常複雜和靈活的宏觀系統,使得任何其他檢測機制不可靠。

使用固定的API列表也是不可能的,因爲Fresh IDE沒有綁定到某些特定的API,而是針對幾個支持的操作系統甚至操作系統開發的應用程序編程。

+0

Fresh IDE可以和MASM以及FASM一起使用嗎? – 2013-02-15 02:55:17

+0

不,不幸的是,獲得真正好的IDE的唯一方法是將其與目標編譯器緊密集成。我沒有使用HLL,但AFAIK,FASM可以與C/C++程序一起使用。您可以編譯爲COFF對象格式,然後與所有內容鏈接。 – johnfound 2013-02-15 05:22:10