Pregunta

Me gustaría utilizar Visual Studio 2008 en la mayor medida posible mientras compilo/vincula/construye/etc código de manera efectiva como si todos estos procesos de compilación se realizaran mediante las herramientas proporcionadas con MASM 6.11.La versión exacta de MASM no importa, siempre y cuando esté dentro del rango 6.x, ya que eso es lo que mi universidad usa para enseñar ensamblaje de 16 bits.

He investigado un poco sobre el tema y he llegado a la conclusión de que hay varias opciones:

  1. Vuelva a configurar VS para llamar a los ejecutables de MASM 6.11 con los mismos indicadores, etc., como lo haría MASM 6.11 de forma nativa.
  2. Cree archivos por lotes intermedios para que VS los llame y luego invoque los comandos adecuados para el vinculador de MASM, etc.
  3. Reconfigure las herramientas/reglas de compilación integradas de VS (ensamblador, vinculador, etc.) para proporcionar un entorno idéntico al utilizado por MASM 6.11.

La opción (2) apareció cuando me di cuenta de que las opciones disponibles en la interfaz "Herramientas externas" de VS pueden ser insuficientes para invocar correctamente las herramientas de compilación de MASM, por lo que un archivo por lotes para interpretar el método estricto de VS para pasar argumentos podría ser útil, como mucho. Uno de mis aprendizajes sobre cómo hacer que esto funcionara implicó llamar manualmente a ML.exe, LINK.exe, etc. desde el símbolo del sistema.

A continuación se muestran varios enlaces que pueden resultar útiles para responder mi pregunta.Tenga en cuenta que los he leído todos y ninguno es la solución real.Solo puedo esperar que haber especificado MASM 6.11 no impida que nadie contribuya con una respuesta quizás más generalizada.

Se utiliza un método similar a la opción (2), pero no se puede contactar a los usuarios del hilo:
http://www.codeguru.com/forum/archive/index.php/t-284051.html
(Además, tengo mis dudas sobre la necesidad de un archivo por lotes intermediario)

Explicación desactualizada a mi pregunta:
http://www.cs.fiu.edu/~downeyt/cop3402/masmaul.html

Probablemente lo más parecido a una solución definitiva, pero se refiere a un conjunto de herramientas de algo además de MASM, también usa un archivo por lotes:
http://www.kipirvine.com/asm/gettingStarted/index.htm#16-bit

Pido disculpas si mi terminología para las herramientas utilizadas en cada paso del código -> proceso exe está desactivada, pero como estoy intentando reproducir todos los pasos entre la finalización de la escritura del código y la generación de un ejecutable, no lo hago. Creo que importa mucho.

¿Fue útil?

Solución

Hay un archivo de reglas MASM ubicado en (eliminar sistema de 32 bits (x86)):

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCProjectDefaults\masm.rules

Copie ese archivo al directorio de su proyecto y agréguelo a las Reglas de compilación personalizadas de su proyecto.Luego "Modificar archivo de regla...", seleccione la regla de compilación MASM y "Modificar regla de compilación...".

Agregar una propiedad:

  • Tipo de propiedad del usuario: Cadena
  • Valor por defecto: *.Cª
  • Descripción: Agregue dependencias de archivos MASM adicionales.
  • Nombre para mostrar: dependencias adicionales
  • Es de sólo lectura: FALSO
  • Nombre: Dependencias adicionales
  • Nombre de la página de propiedad: General
  • Cambiar: [valor]

Establezca el valor de Dependencias adicionales en [Dependencias adicionales].La compilación ahora debería detectar automáticamente cambios en *.inc, y puede editar las propiedades de un archivo asm individual para especificar otros.

Otros consejos

Puede crear un proyecto de archivo MAKE.En Visual Studio, en Archivo/Nuevo/Proyecto, elija Proyecto Visual C++/Makefile.

Esto le permite ejecutar un comando arbitrario para construir su proyecto.No es necesario que sea C/C++.Ni siquiera tiene que ser un archivo MAKE tradicional de NMake.Lo he usado para compilar un controlador usando un archivo por lotes y usando un script NAnt.

Debería ser bastante fácil lograr que ejecute la cadena de herramientas MASM 6.x.

Sugeriría definir reglas de compilación personalizadas según la extensión del archivo.(Visual Studio 2008, al menos en Professinal Edition, puede generar archivos .rules, que se pueden distribuir).Allí puede definir herramientas de compilación personalizadas para archivos asm.Al utilizar este enfoque, debería poder dejar el paso del vinculador como está.

Hace mucho tiempo, usamos MASM32 Texto del enlace como IDE para ayudar a los estudiantes a aprender a ensamblar.Puede consultar sus archivos por lotes sobre lo que hacen para ensamblar y vincular.

en lugar de archivos por lotes, ¿por qué no utilizar un paso de compilación personalizado definido en el archivo?

Si va a utilizar Visual Studio, ¿no podría darles un proyecto esqueleto en C/C++ con el punto de entrada para una aplicación de consola que llama a una función que tiene un bloque de ensamblaje en línea vacío y dejarles completar sus resultados en él?

¿Por qué no utilizas la guía de Irvine?La biblioteca de Irvine es buena y, si lo desea, puede ignorarla y trabajar directamente con los procesos de Windows.Estoy buscando una guía como esta, la de Irvine fue la mejor solución.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top