أبحث عن مترجم ج 16 بت لـ x86 [مغلق]
-
15-11-2019 - |
سؤال
أنا أعمل على نقل uc/OS-II من DOS إلى x86 (الوضع الحقيقي).احتاج:
مترجم لإنشاء تجميع x86 للوضع الحقيقي 16 بت
مجمع لتجميع التجميع الذي تم إنشاؤه في ملف كائن
رابط لربط ملفات الكائن معًا وإخراج تنسيقات قابلة للتنفيذ (تنسيقات ثنائية أو تابوت أو PE أو ELF على ما يرام)
مكتبة قياسية دون استدعاء أي خدمات DOS (
int 21h
)، تعتمد فقط على خدمة BIOS.
أنا أتساءل عما إذا كان هناك أي سلسلة أدوات يمكنها القيام بذلك.
المحلول
تفحص ال فري دوس مشروع.يملكون ادوات المطورين والتي تشمل المترجمين والمجمعات والروابط.ربما يتعين عليك تعديل المكتبة القياسية، بحيث تستخدم مكالمات BIOS بدلاً من int 21h.
نصائح أخرى
المترجمين 16 بت؟وقد ذكرنا هنا العديد منها:
بشكل عام، يتم استخدامها للتدريبات الأكاديمية، لذلك إذا كنت تستهدف مؤسسة تعليمية، يمكنك العثور على الكثير من الأمثلة أيضًا:
http://www.google.com.sg/search?q=site%3Aedu+C+compiler+8086
في وظيفة سابقة كان لدينا مشروع يعتمد على نظام uc/OS الذي يعمل على منصة x86 في الوضع الحقيقي.استخدمنا TopSpeed C بدلاً من مترجمات Borland أو Microsoft الأكثر شهرة، لأن TopSpeed C كان الوحيد من بين المجموعة المتاحة والقابلة للتطبيق في الوقت الذي تم فيه الحصول على volatile
يمين.وهو ما تحتاجه بشدة عند بناء uc/OS.لقد أخطأ كل من Turbo C وMicrosoft C (وأعتقد أن QuickC أيضًا) في الوصول إليهما volatile
المتغيرات - عادةً ما يتم تخزين القيم مؤقتًا في السجلات والكسر المماثل.
ومع ذلك، ستواجه صعوبة في الحصول على TopSpeed C.وبناء جملة المجمع الخاص به هو ...فريد.(أعتقد أنه يعتمد على Modula-2 أو شيء من هذا القبيل؛وينتهي الأمر بأن يكون مختلفًا تمامًا عن MASM/TASM/nasm الذي قد تكون أكثر دراية به 100 مرة.)
تحقق من أي مشروع محمل إقلاع، مثل GRUB.يجب أن يكون واضحًا أنهم بحاجة أيضًا إلى كل ما ذكرته.