Visual studio 使用VisualStudio2008组装、链接、调试和执行MASM 6.11汇编代码
我希望尽可能地使用VisualStudio2008,同时有效地编译/链接/构建/etc代码,就好像所有这些构建过程都是由MASM 6.11提供的工具完成的一样。MASM的确切版本并不重要,只要它在6.x范围内,因为我的学院正在用它来教授16位汇编 我对这个问题做了一些研究,得出结论,有几种选择:Visual studio 使用VisualStudio2008组装、链接、调试和执行MASM 6.11汇编代码,visual-studio,visual-studio-2008,assembly,compilation,masm,Visual Studio,Visual Studio 2008,Assembly,Compilation,Masm,我希望尽可能地使用VisualStudio2008,同时有效地编译/链接/构建/etc代码,就好像所有这些构建过程都是由MASM 6.11提供的工具完成的一样。MASM的确切版本并不重要,只要它在6.x范围内,因为我的学院正在用它来教授16位汇编 我对这个问题做了一些研究,得出结论,有几种选择: 重新配置VS以使用与MASM 6.11本机相同的标志等调用MASM 6.11可执行文件 创建VS调用的中间批处理文件,然后为MASM的链接器调用适当的命令,等等 重新配置VS的内置构建工具/规则(汇编程
(此外,我对中间批处理文件的必要性表示怀疑) 对我的问题的过时解释:
可能是我找到的最接近最终解决方案的一件事,但指的是除MASM之外的其他工具套件,也使用批处理文件:
如果我对代码->exe过程的每个步骤中使用的工具的术语都关闭了,我深表歉意,但由于我试图在完成代码编写和生成可执行文件之间复制所有步骤,我认为这并不重要。而不是批处理文件,为什么不使用在文件上定义的自定义生成步骤呢?如果要使用Visual Studio,您不能给他们一个C/C++中的框架项目,其中包含控制台应用程序调用具有空内联汇编块的函数的入口点,并让他们在其中填充结果吗?您可以创建一个makefile项目。在VisualStudio中,在文件/NeX/Project下,选择VisualC++/MaFafile Project。 这允许您运行任意命令来生成项目。它不必是C/C++。它甚至不必是传统的NMake生成文件。我用它编译了一个使用批处理文件和NAnt脚本的驱动程序
让它运行MASM 6.x工具链应该相当容易。我建议根据文件扩展名定义自定义生成规则。 (至少在专业版中,Visual Studio 2008可以生成可分发的.rules文件)。在那里,您可以为asm文件定义自定义生成工具。通过使用这种方法,您应该能够使链接器步骤保持原样
很久以前,我们使用MASM32作为IDE来帮助学生学习组装。你可以查看他们的批处理文件,看看他们是如何组装和链接的。为什么不使用欧文指南呢?Irvine的库很好,如果您愿意,可以忽略它,直接使用Windows程序。我一直在寻找这样的指南,Irvine的是最好的解决方案。有一个MASM规则文件位于(32位系统删除
(x86)
):
将该文件复制到项目目录,并将其添加到项目的自定义生成规则中。然后“修改规则文件…”,选择MASM生成规则和“修改生成规则…”
添加属性:
- 用户属性类型:字符串
- 默认值:*.inc
- 说明:添加其他MASM文件依赖项。
- 显示名称:其他依赖项
- 为只读:False
- 名称:附加依赖项
- 属性页名称:常规
- 开关:[值]
将附加依赖项值设置为[AdditionalDependencies]。构建现在应该自动检测对
*.inc
的更改,您可以编辑单个asm文件的属性以指定其他文件。他需要16位代码。他必须使用Visual C++ 1.52。你真的成功了吗?你最后用了什么方法?
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCProjectDefaults\masm.rules