سجلات
سجلات: أيدي المعالج
أولاً، ما هي البتة؟ البتة هي 0 أو 1 واحدة، وهي أصغر وحدة معلومات يمكن للحاسوب تخزينها. ضع 32 منها معًا فتحصل على عدد 32 بت، يمكنه العد من 0 حتى حوالي 4 مليارات. كل سجل وكل خانة ذاكرة في RISC-V تحمل عددًا واحدًا من 32 بت.
السجل هو خانة تخزين صغيرة داخل المعالج تحمل عددًا واحدًا من 32 بت. يوفر RISC-V 32 سجلًا. ولأنها تقع داخل نواة المعالج، فاستخدام السجلات أسرع بكثير من الذاكرة الرئيسية، بفروق تصل إلى رتب متعددة. عدد قليل منها سيغطي معظم ما تكتبه: t0 حتى t2 (قيم مؤقتة)، وa0 حتى a2 (الوسائط والنتائج)، وzero (دائمًا 0)، وsp (مؤشر المكدس)، وra (عنوان العودة).
# طباعة الرقم 42، ثم الخروج.# يختار a7 الخدمة ويحمل a0 القيمة.li a7, 1 # خدمة 1 = طباعة عدد صحيحli a0, 42 # القيمة التي سيتم طباعتهاecall # افعل ذلكli a7, 10 # خدمة 10 = الخروجecall
يرمز إلى load immediate، وهو يضع ثابتًا في سجل. يختار الخدمة 1، التي تطبع عددًا صحيحًا. ويضع الرقم المطلوب طباعته في a0. ويمرر التحكم إلى النظام، الذي يطبع القيمة الموجودة في a0. ثم يختار خدمة الخروج، وينهي البرنامج. اضغط Run، ثم غيّر 42 وشغّل البرنامج مرة أخرى.
ضبط a7 على 1 يجعل ecall التالي يطبع رقمًا.
pc، وهو اختصار لـ program counter، يحمل عنوان السطر المميز حاليًا. هذا الرقم هو كل ما يعرفه المعالج عن موضعه في البرنامج: فهو يجلب التعليمة عند العنوان الموجود في عداد البرنامج، وينفذها، ثم يضيف أربعة إلى عداد البرنامج للوصول إلى التعليمة التالية. يتلقى السجل قيمته عندما يُنفَّذ في سطره، ولا يظهر الخرج إلا عند تشغيل أول .