Visual studio 使用VisualStudio2008组装、链接、调试和执行MASM 6.11汇编代码

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的内置构建工具/规则(汇编程

我希望尽可能地使用VisualStudio2008,同时有效地编译/链接/构建/etc代码,就好像所有这些构建过程都是由MASM 6.11提供的工具完成的一样。MASM的确切版本并不重要,只要它在6.x范围内,因为我的学院正在用它来教授16位汇编

我对这个问题做了一些研究,得出结论,有几种选择:

  • 重新配置VS以使用与MASM 6.11本机相同的标志等调用MASM 6.11可执行文件
  • 创建VS调用的中间批处理文件,然后为MASM的链接器调用适当的命令,等等
  • 重新配置VS的内置构建工具/规则(汇编程序、链接器等),以提供与MASM 6.11使用的环境相同的环境
  • 选项(2)是在我意识到VS“External Tools”接口中可用的选项可能不足以正确调用MASM的构建工具时提出的,因此,解释VS传递参数的严格方法的批处理文件可能会有所帮助,因为我在学习如何使这项工作时涉及到手动调用ML.exe,从命令提示符下单击LINK.exe等

    下面是几个可能对回答我的问题有用的链接。请记住,我已经阅读了所有这些,没有一个是真正的解决方案。我只能希望我指定的MASM 6.11不会阻止任何人提供一个可能更普遍的答案

    与选项(2)使用的方法类似,但线程上的用户无法联系:

    (此外,我对中间批处理文件的必要性表示怀疑)

    对我的问题的过时解释:

    可能是我找到的最接近最终解决方案的一件事,但指的是除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