سبيم
SPIM هو برنامج محاكاة لمعالج MIPS ، مصمم لتشغيل كود لغة التجميع لهذه البنية. يحاكي البرنامج معالجات R2000 و R3000 ، وقد كتبه جيمس ر. لاروس عندما كان أستاذًا في جامعة ويسكونسن-ماديسون . [ 2 ] غالبًا ما تُدرَّس لغة آلة MIPS في دورات لغة التجميع على مستوى الكليات، وخاصة تلك التي تستخدم كتاب " تنظيم وتصميم الحاسوب: واجهة الأجهزة/البرمجيات" لديفيد أ. باترسون وجون ل. هينيسي ( ISBN 0.000). 1-55860-428-6).
اسم جهاز المحاكاة هو عكس الأحرف "MIPS".
تتوفر برامج محاكاة SPIM لأنظمة التشغيل ويندوز (PCSpim) وماك أو إس إكس وأنظمة يونكس/ لينكس (xspim). اعتبارًا من الإصدار 8.0 في يناير 2010، تم ترخيص برنامج المحاكاة بموجب ترخيص BSD القياسي .
في يناير 2011، صدر الإصدار الرئيسي 9.0 من QtSpim الذي يتميز بواجهة مستخدم جديدة مبنية على إطار عمل Qt UI متعدد المنصات ، ويعمل على أنظمة Windows و Linux و macOS . ومنذ هذا الإصدار، نُقل المشروع إلى منصة SourceForge لتسهيل صيانته. وتتوفر نسخ مُجمّعة مسبقًا من QtSpim لأنظمة Linux (32 بت) وWindows وMac OS X، بالإضافة إلى PCSpim لنظام Windows.
نظام تشغيل SPIM
يأتي برنامج محاكاة SPIM مزودًا بنظام تشغيل أساسي، مما يتيح للمبرمج استخدام الوظائف الشائعة بسهولة. يتم استدعاء هذه الوظائف بواسطة تعليمة syscall ، ثم يتصرف نظام التشغيل بناءً على قيم سجلات محددة.
| خدمة | رمز الفخ | مدخل | الناتج | ملحوظات |
|---|---|---|---|---|
| طباعة عدد صحيح | $v0 = 1 | $a0 = عدد صحيح للطباعة | يطبع $a0 إلى المخرج القياسي | الأساس = 10 |
| print_string | $v0 = 4 | $a0 = عنوان الحرف الأول | يطبع سلسلة نصية إلى المخرج القياسي | |
| قراءة عدد صحيح | $v0 = 5 | عدد صحيح مقروء من المدخلات القياسية موضوع في $v0 | الأساس = 10 | |
| sbrk | $v0 = 9 | $a0 = عدد البايتات المطلوبة | $v0= عنوان الذاكرة المخصصة | يخصص الذاكرة من الكومة |
| مخرج | $v0 = 10 | |||
| فتح الملف | $v0 = 13 | $a0 = المسار الكامل، $a1 = العلامات، $a2 = وضع الملف الثماني في نظام يونكس | $v0 = واصف الملف | على سبيل المثال؛ توجد أيضًا وظائف للقراءة/الكتابة/الإغلاق. |
يتوقع نظام التشغيل SPIM وجود تسمية باسم main كنقطة تسليم من مقدمة نظام التشغيل.
بدائل/منافسو SPIM
MARS (مجمع MIPS ومحاكي وقت التشغيل) [ 3 ] هو بيئة تطوير متكاملة (IDE) مبنية على لغة جافا للغة برمجة MIPS Assembly، وهو بديل لـ SPIM. صدرت النسخة الأولى منه عام 2005. ومع ذلك، ونظرًا لتقاعد القائمين على صيانته منذ ذلك الحين، [ 4 ] [ 5 ] لم يعد المشروع قيد التطوير النشط.
إمبراس هي مجموعة أدوات لتطوير البرمجيات المدمجة لبنية MIPS، وتستخدم تقنية المحاكاة والترجمة الفورية . أُصدرت المحاكي لأول مرة عام 2008، وهي قيد التطوير المستمر. يوجد أكثر من 30 نموذجًا مفتوح المصدر لأنوية MIPS ذات 32 بت [ 6 ] و64 بت [ 7 ] .
يُعد برنامج المحاكاة CREATOR بديلاً آخر لبرنامج SPIM لأغراض تعليمية. [ 8 ] [ 9 ] [ 10 ] يتميز برنامج CREATOR بأنه محمول (يمكن تشغيله في متصفحات الويب الحالية) ويتيح للطلاب تعلم العديد من لغات التجميع لمعالجات مختلفة في نفس الوقت (يتضمن برنامج CREATOR أمثلة على تعليمات MIPS32 وRISC-V).
انظر أيضاً
- GXemul (المعروف سابقًا باسم mips64emul)، هو محاكي MIPS آخر. على عكس SPIM، الذي يركز على محاكاة تطبيق MIPS الأساسي، كُتب GXemul لمحاكاة أنظمة حاسوب كاملة تعتمد على معالجات MIPS الدقيقة - على سبيل المثال، يمكن لـ GXemul محاكاة محطة عمل DECstation 5000 Model 200
- يحاكي برنامج OVPsim أيضًا معالجات MIPS، حيث يتم التحقق من جميع نماذج MIPS بواسطة شركة MIPS Technologies.
- يحاكي QEMU أيضًا MIPS
- معمارية MIPS
مراجع
- ↑ "تغييرات على Spim" . مؤرشف من الأصل (HTML) بتاريخ 27-01-2011 . تم الاطلاع عليه بتاريخ 15-05-2017 .
- ^ "محاكي SPIM MIPS" . تم الاسترجاع 1 أكتوبر 2016 .
- ↑ "محاكي MARS MIPS - جامعة ولاية ميسوري" . مؤرشف من الأصل في 2 مايو 2012. تم الاطلاع عليه في 1 أكتوبر 2016 .
- ↑ "علوم الحاسوب بجامعة أوتربين: بيتر ساندرسون" . تم الاطلاع عليه بتاريخ 14 أبريل 2024 .
- ↑ "كين ر. فولمار - قسم علوم الحاسوب - جامعة ولاية ميسوري" . تم الاطلاع عليه بتاريخ 14 أبريل 2024 .
- ↑ "المنصات الافتراضية المفتوحة" . تم الاطلاع عليه في 1 أكتوبر 2016 .
- ↑ "المنصات الافتراضية المفتوحة" . تم الاطلاع عليه في 1 أكتوبر 2016 .
- ↑ "CREATOR: محاكي تعليمي وعامة للبرمجة في المجمع" . 23 يوليو 2021.
- ↑ مثال على CREATOR Web باستخدام MIPS32: https://creatorsim.github.io/creator/?example_set=default&example=e12
- ↑ شفرة المصدر الخاصة بـ CREATOR على GitHub: https://github.com/creatorsim/creator
روابط خارجية
- برنامج المحاكاة
- معمارية MIPS
- البرامج التي تستخدم ترخيص BSD
