سؤال

بالنسبة لفصل لغة التجميع الخاص بي، فإننا نكتب برامج DOS باستخدام DPMI.لسوء الحظ، لا يمكنني الوصول إلى جهاز يعمل بنظام Windows 32 بت طوال الوقت.لدي جهاز دبيان الظاهري مثبت على كل جهاز كمبيوتر أستخدمه تقريبًا.

لقد قمت بتثبيت كل من DOSBox وDOSEMU.هل هناك أي طريقة يمكنني من خلالها تجميع البرامج وتجميعها في Linux بدلاً من DOS؟أنا أستخدم nasm، لذا لا يبدو أنني أواجه أية مشكلات في تجميعه بتنسيق DOS.ومع ذلك، أواجه مشكلة في تشغيله من خلال المترجم باستخدام كود C الخاص بي والحصول على DOS قابل للتنفيذ (باستخدام gcc أو MinGW).

هل هناك طريقة ما للقيام بذلك أم أنني سأضطر إلى تثبيت كافة الأدوات تحت DOS؟

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

المحلول

وأنا لست حتى متأكدا ما اذا كان يمكنك تجميع التطبيقات DOS باستخدام دول مجلس التعاون الخليجي. في قديم الزمان كان هناك مترجم دول مجلس التعاون الخليجي، متغير يسمى DJGPP (أو شيء من هذا القبيل). أنا لم يحصل على عمل بالرغم من ذلك.

وفرص تتمكن من عبور-تجميع دول مجلس التعاون الخليجي لDOS في هذه الأيام هي الصفر تقريبا.

وأقترح عليك أن تعطي WATCOM مترجم القديم المحاولة. انها مترجم DOS الأصلي وانها تنفيذ DPMI أيضا تعمل مثل السحر تحت DosBox. التواصل مع NASM جمعت الملفات الكائن ليست مشكلة إما (فعلت ذلك بضع سنوات)

واليوم أحرز مترجم مفتوحة المصدر، ودعا OpenWatcom.

http://www.openwatcom.org/index.php/Main_Page

نصائح أخرى

BCC في ديبيان، وغير قادرة على إنتاج قانون لائق ليصل الى 8080 80386. استخدام التبديل -Md لإنتاج ثنائي MS-DOS.

وربما كان أسهل طريقة للذهاب بالنسبة لك هو استخدام أدوات DOS القياسية لهذه المهمة.

DOSBOX هو منافس جيد حقا.

يعد تثبيت DJGPP سهلًا إلى حد يبعث على السخرية، ولا يلزم سوى ثلاثة ملفات ZIP على الأقل:

  1. BNU219B.ZIP (المجمع، الرابط، أمين المكتبة)
  2. GCC441B.ZIP (مترجم C)
  3. DJDEV204.ZIP (libc، الرؤوس)

http://www.delorie.com/djgpp/getting.html

unzip *.zip -d c:\djgpp && 
set DJGPP=c:\djgpp\djgpp.env &&
path c:\djgpp\bin;%PATH%

gcc myfile.c -o myfile.exe

لإنتاج مخرجات متوافقة مع DOS، سيتعين عليك إما استخدام المترجم الذي يستضيفه DOS في DOSEMU (وليس DOSBox!!طريقة بطيئة للغاية وعربات التي تجرها الدواب، مخصصة للألعاب فقط) أو استخدم مترجمًا متقاطعًا مستضافًا على Linux (يحتوي موقع DJ على RPMs لذلك).

ومع ذلك، إذا كنت تريد كود 16 بت بنسبة 100%، فسيتعين عليك استخدام شيء آخر (على سبيل المثال.أوبن واتكوم).يدعم OpenWatcom أيضًا المضيف والهدف Linux (الإصدار التجريبي!!) (لا توجد libs مشتركة، رغم ذلك، IIRC)، ولكن قد يتعين عليك تجميعها بنفسك مع دول مجلس التعاون الخليجي.

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