2013-02-14 76 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