Venus
Awesome RISC-V

Venus

منظومة RISC-V

Venus هو محاكي تعليمي لتجميع RV32IM من UC Berkeley، يُستخدم في CS 61C.

نظرة عامة

Venus محاكي RISC-V يعمل في متصفح الويب. المحاكي برنامج يحاكي المعالج، لذا يمكنك تشغيل شفرة الآلة دون امتلاك عتاد RISC-V. يقرأ Venus شفرة التجميع المكتوبة من أجل RV32IM. شفرة التجميع هي الشكل النصي المقروء لتعليمات الآلة. RV32I هي مجموعة تعليمات RISC-V الأساسية ذات 32 بت، وامتداد M يضيف الضرب والقسمة.

يتشارك المحرر والمحاكي صفحة واحدة. تطلب البرامج الخدمات عبر ecall، وهي تعليمة RISC-V التي تطلب شيئًا من البيئة. يتولى Venus معالجة استدعاءات ecall لطباعة القيم وتخصيص مزيد من الذاكرة.

السجل

بدأ Keyhan Vakil مشروع Venus في عام 2017 في UC Berkeley. المشروع مكتوب بلغة Kotlin، وهي لغة برمجة يمكن تجميعها إلى JavaScript. هذه الترجمة هي ما يتيح للمحاكي العمل داخل متصفح دون الحاجة إلى تثبيت أي شيء.

اعتمدت UC Berkeley مشروع Venus في مقرر CS 61C، وهو مقررها عن بنى الآلات، حيث يكتب الطلاب أولى برامجهم بلغة RISC-V. احتفظ المقرر لاحقًا بنسخته المتفرعة الخاصة على venus.cs61c.org. النسخة المتفرعة هي نسخة من مشروع تُطوَّر بشكل منفصل عن الأصل. وتضيف نسخة متفرعة أخرى، Venus164، ميزات لمشروع مترجم ChocoPy في مقرر المترجمات في Berkeley.

أين يُستخدم

يناسب Venus مقررًا تمهيديًا في لغة التجميع. يفتح الطالب صفحة، ويلصق برنامجًا ويشغّله. تبقى مجموعة تعليماته عند RV32IM، وهي مجموعة صغيرة تُبقي الدروس الأولى مركّزة على السجلات والذاكرة والتحكم في التدفق.

المصادر

  1. kvakil/venus README
  2. CS 61C Lab 3, UC Berkeley
  3. Venus164 fork