Использование Visual Studio 2008 Для сборки, связывания, отладки и выполнения кода сборки MASM 6.11
Я хотел бы использовать Visual Studio 2008 в максимально возможной степени, эффективно компилируя/связывая/строя/etc код, как если бы все эти процессы сборки выполнялись инструментами, предоставляемыми MASM 6.11. Точная версия MASM не имеет значения, пока она находится в пределах 6.диапазон x, так как это то, что мой колледж использует для обучения 16-битной сборке.
Я провел некоторые исследования по этому вопросу и пришел к выводу, что есть несколько опции:
- перенастроить VS для вызова исполняемых файлов MASM 6.11 с теми же флагами и т. д., Что и MASM 6.11.
- создать промежуточный пакетный файл(ы) для вызова VS, чтобы затем вызвать соответствующие команды для компоновщика MASM и т. д.
- Реконфигурируйте встроенные инструменты/правила сборки VS (ассемблер, компоновщик и т. д.), Чтобы обеспечить среду, идентичную той, которая используется MASM 6.11.
Вариант (2) был поднят, когда я понял, что параметры, доступные в интерфейсе "внешние инструменты" VS, могут быть недостаточными для правильного вызова инструментов сборки MASM, поэтому пакетный файл для интерпретации строгого метода передачи аргументов VS может быть полезен, так как многие мои знания о том, как заставить эту работу участвовать в моем ручном вызове ML.exe, ссылка.exe и т. д. из командной строки.
ниже несколько ссылок, которые могут оказаться полезными в ответе на мой вопрос. Пожалуйста, имейте в виду, что я прочитал их все, и ни один из них не является фактическим решение. Я могу только надеяться, что мой конкретный MASM 6.11 не помешает кому-либо внести свой вклад в возможно более обобщенный ответ.
аналогичный метод используется для опции (2), но пользователи в потоке не являются contactable:
http://www.codeguru.com/forum/archive/index.php/t-284051.html
(кроме того, у меня есть сомнения в необходимости промежуточного пакетного файла)
устаревшее объяснение моему вопрос:
http://www.cs.fiu.edu/~downeyt/cop3402/masmaul.html
вероятно, самое близкое к окончательному решению, но относится к набору инструментов из чего - то, кроме MASM, также использует пакетный файл:
http://www.kipirvine.com/asm/gettingStarted/index.htm#16-bit
Я прошу прощения, если моя терминология для инструментов, используемых на каждом шаге процесса code - > exe выключена, но так как я пытаюсь воспроизвести все шаги между завершением написания кода и созданием исполняемого файла, я не думаю, что это имеет большое значение.
6 ответов
существует файл правил MASM, расположенный по адресу (32-разрядная система remove (x86)
):
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCProjectDefaults\masm.rules
скопируйте этот файл в каталог проекта и добавьте его в пользовательские правила сборки для вашего проекта. Затем " Изменить Файл Правила...", выберите правило сборки MASM и " измените правило сборки...".
добавить свойство:
- свойства пользователя типа: строка
- значение по умолчанию: *.inc
- описание: добавить дополнительные зависимости файлов MASM.
- отображаемое имя: Дополнительные Зависимости
- только для чтения:False
- название: AdditionalDependencies
- свойства название страницы: общие
- переключатель: [значение]
установите значение дополнительных зависимостей в [AdditionalDependencies]. Строить теперь автоматическое обнаружение изменений в *.inc
, и вы можете редактировать свойства для отдельного файла asm, чтобы указать другие.
вы можете создать проект makefile. В Visual Studio в разделе Файл / Создать / Проект выберите проект Visual C++ / Makefile.
Это позволяет запускать произвольную команду для создания вашего проекта. Это не обязательно должен быть C/C++. Это даже не должен быть традиционный файл nmake makefile. Я использовал его для компиляции драйвера с использованием пакетного файла и с использованием сценария NAnt.
должно быть довольно легко заставить его запустить MASM 6.х тулчейна.
Я бы предложил определить пользовательские правила построения, в зависимости от расширения файла. (Visual Studio 2008, по крайней мере в Professinal Edition, может генерировать .правила файлов, которые могут быть распространены). Там вы можете определить пользовательские инструменты сборки для файлов asm. Используя этот подход, вы сможете оставить шаг компоновщика как есть.
назад мы использовали MASM32 текст ссылки как IDE, чтобы помочь студентам изучить сборку. Вы можете проверить их batchfiles, что они делают, чтобы собрать и ссылка на сайт.
вместо пакетных файлов, почему бы не использовать пользовательский шаг сборки, определенный в файле?
Если вы собираетесь использовать Visual Studio, не могли бы вы дать им каркасный проект на C/C++ с точкой входа для консольного приложения, вызывающего функцию, которая имеет пустой встроенный сборочный блок, и позволить им заполнить свои результаты в нем?
Почему бы вам не использовать руководство Ирвина? Библиотека Ирвина хороша, и если вы хотите, вы можете игнорировать ее и работать с Windows procs напрямую. Я искал такого гида, как этот, Ирвин был лучшим решением.