باستخدام Visual Studio 2008 لتجميع, رابط, التصحيح, وتنفيذ MASM 6.11 رمز التجميع

StackOverflow https://stackoverflow.com/questions/112412

سؤال

أود أن استخدام Visual Studio 2008 إلى أقصى حد ممكن في حين فعال تجميع/ربط/بناء/إلخ رمز كما لو أن كل هذه بناء العمليات التي تقوم بها الأدوات المتوفرة مع MASM 6.11.الإصدار الصحيح من MASM لا يهم طالما انها في حدود 6.x النطاق ، كما أن الكلية باستخدام لتعليم 16-بت الجمعية.

وقد فعلت بعض البحوث حول هذا الموضوع و قد تأتي إلى استنتاج مفاده أن هناك عدة خيارات:

  1. تشكيل مقابل استدعاء MASM 6.11 التنفيذية مع نفس الأعلام ، إلخ كما MASM 6.11 أصلا أن تفعل.
  2. إنشاء وسيط ملف دفعي(s) ليتم استدعاؤها من قبل VS ثم تحتج السليم أوامر MASM هو رابط ، الخ.
  3. تكوين VS المدمج في أدوات البناء/القواعد (المجمع, رابط, الخ) لتوفير بيئة مماثلة لتلك المستخدمة من قبل MASM 6.11.

الخيار (2) ترعرعت عندما أدركت أن الخيارات المتاحة في مقابل هذا "أدوات خارجية" واجهة قد تكون غير كافية بشكل صحيح الاحتجاج MASM بناء أدوات وهكذا ملف دفعي إلى تفسير VS الصارم طريقة تمرير الوسائط قد تكون مفيدة ، كما الكثير من التعلم حول كيفية الحصول على هذا العامل والدي يدويا الدعوة ML.exe, LINK.exe وغيرها من موجه الأوامر.

وفيما يلي العديد من الروابط التي قد تكون مفيدة في الرد على سؤالي.يرجى أن نضع في اعتبارنا أن كنت قد قرأت لهم جميعا و لا هي الحل الفعلي.أنا يمكن أن نأمل فقط بلدي تحديد MASM 6.11 لا يمنع أي شخص من المساهمة ربما أكثر المعمم الإجابة.

مماثلة الطريقة المستخدمة في الخيار (2) ، ولكن المستخدمين على الموضوع لا يتم الاتصال به:
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

أعتذر إذا مصطلحات الأدوات المستخدمة في كل خطوة من قانون -- > exe العملية ، ولكن منذ أنا أحاول أن إنتاج مجمل من خطوات في الفترة بين الانتهاء من كتابة الكود و توليد قابل للتنفيذ, لا أعتقد أنه يهم كثيرا.

هل كانت مفيدة؟

المحلول

هناك MASM القواعد الملف الموجود في (32 بت نظام إزالة (x86)):

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

نسخ هذا الملف إلى دليل المشروع ، إضافة إلى العرف في بناء قواعد المشروع الخاص بك.ثم "تعديل ملف القاعدة..." ، حدد MASM بناء القاعدة و "تعديل بناء القاعدة...".

إضافة خاصية:

  • المستخدم نوع العقار: سلسلة
  • القيمة الافتراضية: *.inc
  • وصف: إضافة MASM تبعيات الملف.
  • اسم العرض: التبعيات إضافية
  • للقراءة فقط: كاذبة
  • الاسم: AdditionalDependencies
  • الملكية اسم الصفحة: العامة
  • التبديل: [قيمة]

تعيين إضافية تبعيات قيمة [AdditionalDependencies].بناء الآن الكشف عن التغييرات تلقائيا إلى *.inc, و يمكنك تحرير خصائص الفرد الملف asm لتحديد الآخرين.

نصائح أخرى

يمكنك إنشاء makefile المشروع.في Visual Studio تحت ملف / جديد / المشروع اختيار Visual C++ / Makefile المشروع.

هذا يسمح لك بتشغيل التعسفي الأمر إلى بناء المشروع الخاص بك.فإنه لا يجب أن تكون C/C++.لا بل يجب أن تكون تقليدية NMake makefile.لقد استعملت لتجميع سائق باستخدام ملف دفعي باستخدام نانت النصي.

وينبغي أن يكون من السهل نسبيا للحصول على تشغيل MASM 6.x toolchain.

أود أن أقترح أن تحدد مخصصة لبناء القواعد اعتمادا على ملف التمديد.(Visual Studio 2008 على الأقل في Professinal الطبعة ، يمكن أن تولد .القواعد الملفات التي يمكن توزيعها).هناك يمكنك تحديد مخصصة لبناء أدوات asm الملفات.باستخدام هذا النهج ، يجب أن تكون قادرا على ترك رابط خطوة كما هو.

في طريق العودة كنا MASM32 وصلة النص كما IDE لمساعدة الطلاب على تعلم الجمعية.يمكنك التحقق من batchfiles ماذا يفعلون تجميع وربط.

بدلا من الملفات الدفعية, لماذا لا تستخدم مخصصة لبناء خطوة محددة في الملف ؟

إذا كنت تنوي استخدام Visual Studio, لم تعطي لهم العظمي المشروع في C/C++ مع نقطة دخول وحدة التحكم التطبيق استدعاء دالة التي en فارغة مضمنة الجمعية كتلة ، والسماح لهم ملء نتائجها في ذلك ؟

لماذا لا تستخدم إيرفين الدليل ؟ إرفين مكتبة لطيفة إذا كنت تريد, يمكنك تجاهل ذلك و يعمل مع ويندوز procs مباشرة.كنت أبحث عن مثل هذا الدليل ، إرفين كان الحل الأفضل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top