sw
يغطي lyszt.net sw وتعليمات RISC-V الأخرى بمزيد من التفصيل.
تنسيق الترميز
الوصف
يأخذ sw قيمة من سجل ويكتبها إلى الذاكرة، وهو عكس lw. يرمز الاسم إلى store word، والكلمة الواحدة 32 بت. تنقل تعليمات التحميل البيانات من الذاكرة إلى السجلات حتى يمكن العمل عليها، بينما تعيد تعليمات التخزين النتائج إلى الخارج. تشكّل هاتان التعليمتان دورة التحميل والحساب والتخزين في RISC-V، لأن الحساب لا يحدث إلا في السجلات.
تظهر صيغة sw أدناه. يختلف ترتيب المعاملات عن معظم التعليمات.
sw rs2, offset(rs1)
يحمل rs2 القيمة المراد كتابتها. المعامل الثاني، offset(rs1)، يعطي عنوان الوجهة في الذاكرة: العنوان الموجود في سجل الأساس rs1 مضافًا إليه إزاحة ثابتة صغيرة، وهو نفس العنونة التي يستخدمها lw. يكتب السطر التالي القيمة الموجودة في t1 إلى العنوان المحمول في t0.
sw t1, 0(t0)
لا يغيّر sw أي سجل. يقع أثره بالكامل على الذاكرة، بينما تكتب كل تعليمة أخرى تقريبًا في سجل.
يذكر دليل RISC-V أن sw وsh وsb تخزّن قيمًا بحجم 32 بت و16 بت و8 بت من البتات المنخفضة للسجل rs2 إلى الذاكرة. العنوان الفعّال هو السجل rs1 مضافًا إليه الإزاحة ذات 12 بت الموسّعة بالإشارة. لا تثير عمليات التحميل والتخزين عند العناوين المحاذاة طبيعيًا أي خطأ محاذاة، ويضمن الدليل تنفيذها تنفيذًا ذريًا، كخطوة واحدة غير قابلة للتجزئة.
تحفظ تعليمات التخزين النتائج في المصفوفات والمتغيرات، وتستخدمها الدالة لوضع القيم في مساحتها المؤقتة على المكدس. تستبدل عملية تخزين واحدة جميع البايتات الأربعة في عنوان الهدف. يكتب المثال 99 في موضع موسوم في الذاكرة، مستبدلًا ما كان هناك. تحتفظ الذاكرة بتلك القيمة حتى تستبدلها عملية تخزين أخرى، بخلاف السجل.
مثال
la t0, slot li t1, 99 sw t1, 0(t0) # memory at slot now holds 99
