Pergunta

Eu gostaria de usar o Visual Studio 2008, na medida do possível, enquanto efetivamente compilar / ligar / construção / etc código como se todos esses processos de construção foram sendo feito pelas ferramentas fornecidas com 6.11 MASM. A versão exata do MASM não importa, contanto que esteja dentro do intervalo 6.x, que é o que minha faculdade está usando para ensinar 16-bit montagem.

Eu fiz alguma pesquisa sobre o assunto e chegaram à conclusão de que existem várias opções:

  1. Reconfigurar VS para chamar o MASM 6.11 executáveis ??com as mesmas bandeiras, etc, MASM 6.11 seria nativamente fazer.
  2. Criar arquivo de lote intermediário (s) a ser chamado por VS, em seguida, chamar os comandos apropriados para vinculador do MASM, etc.
  3. O Reconfigurar VS built-in ferramentas de compilação / regras (assembler, linker, etc) para fornecer um ambiente idêntico ao utilizado pelo MASM 6.11.

Opção (2) foi criado quando eu percebi que as opções disponíveis na interface de "ferramentas externas" do VS pode ser insuficiente para corretamente invocação de ferramentas de compilação do MASM, assim, um arquivo de lote para interpretar método rigoroso de VS de passar argumentos pode ser útil, como um monte de meu aprendizado sobre como obter esse trabalho envolveu meu chamando manualmente ML.exe, LINK.exe, etc a partir do prompt de comando.

A seguir estão vários links que podem ser úteis para responder a minha pergunta. Tenha em mente que eu li todos eles e nenhum é a solução real. Eu só posso esperar o meu MASM especificando 6.11 não impede ninguém de contribuir com uma resposta talvez mais generalizada.

Modo semelhante usado para Opção (2), mas os usuários no segmento não estão contactáveis:
http://www.codeguru.com/forum/archive/ index.php / t-284051.html
(Também, eu tenho minhas dúvidas sobre a necessidade de um arquivo de lote intermediário)

Fora da data explicação à minha pergunta:
http://www.cs.fiu.edu/~downeyt/cop3402/ masmaul.html

Provavelmente a coisa mais próxima que eu chegar a uma solução definitiva, mas refere-se a um conjunto de ferramentas de algo além MASM, também usa um arquivo de lote:
http://www.kipirvine.com/asm/gettingStarted/index. htm # 16-bit

Peço desculpas se minha terminologia para as ferramentas utilizadas em cada passo do código -> processo de exe está fora, mas desde que eu estou tentando reproduzir a totalidade de passos entre a conclusão de escrever o código e gerar um executável, I acho que não importa muito.

Foi útil?

Solução

Há um arquivo de regras MASM localizado em (32-bit sistema remove (x86)):

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

Copiar o arquivo para o diretório do projeto, e adicioná-lo às regras de compilação personalizado para o seu projeto. Em seguida, "Arquivo Modificar Rule ...", selecione a regra MASM construir e "Modificar regra de construção ...".

Adicione uma propriedade:

  • tipo de propriedade do usuário: string
  • Valor padrão:. * inc
  • Descrição:. Adicionar dependências do arquivo MASM adicionais
  • do nome de exibição: Dependências adicionais
  • é somente leitura: false
  • Nome: AdditionalDependencies
  • Propriedade página Nome: Geral
  • Switch: [valor]

Defina o valor adicional dependências de [AdditionalDependencies] . A construção deve agora detectar automaticamente muda para *.inc, e você pode editar as propriedades de um arquivo asm indivíduo para especificar outros.

Outras dicas

Você pode criar um projeto makefile. Em Visual Studio, em File / New / Project, escolha Visual projeto ++ / Makefile C.

Isso permite que você executar um comando arbitrário para construir seu projeto. Ele não tem que ser C / C ++. Ele nem sequer tem que ser um makefile tradicional NMake. Eu usei-o para compilar um driver usando um arquivo de lote, e usando um script NAnt.

Deve ser razoavelmente fácil obtê-lo para executar o conjunto de ferramentas MASM 6.x.

Gostaria de sugerir para definir as regras de compilação personalizada, dependendo extensão de arquivo. (Visual Studio 2008, pelo menos em Professinal Edition, pode gerar arquivos .rules, que pode ser distribuído). Lá você pode definir ferramentas de compilação personalizada para arquivos ASM. Usando essa abordagem, você deve ser capaz de deixar o passo vinculador como está.

Caminho de volta, usamos masm32 link de texto como IDE para ajudar os alunos aprendem a montagem. Você pode verificar seus batchfiles o que fazer para montar e link.

em vez de arquivos em lote, por que não usar a um passo de compilação personalizado definido no arquivo?

Se você estiver indo para usar o Visual Studio, você não poderia dar-lhes um projeto de esqueleto em C / C ++ com o ponto de entrada para uma aplicação de console chamando uma função que tem en bloco de montagem em linha vazia, e deixá-los a preencher os seus resultados nele?

Por que você não usar guia de Irvine? biblioteca Irvine do é bom e se você quiser, você pode ignorá-lo e trabalhar com o Windows procs diretamente. Já à procura de um guia como este, Irvine do era a melhor solução.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top