or
يغطي lyszt.net or وتعليمات RISC-V الأخرى بمزيد من التفصيل.
تنسيق الترميز
الوصف
or هي تعليمة على مستوى البتات، لذا تعمل على البتات الـ32 للسجل بشكل مستقل (توضح صفحة and ذلك). عند موضع بت معيّن تكون النتيجة 1 إذا كان أحد بتّي الإدخال يساوي 1 أو كان كلاهما كذلك. ولا تكون النتيجة 0 إلا عندما يكون كلا الإدخالين 0. يطبّق النموذج أدناه ذلك على جميع المواضع الـ32 في rs1 وrs2 ويكتب النتيجة في rd.
or rd, rs1, rs2
تقوم OR بضبط البتات. لتشغيل بت واحد وترك البقية كما كانت، استخدم OR بين القيمة وقناع يحوي 1 في ذلك الموضع فقط. وهكذا يتم تشغيل الإعدادات والأعلام المحزومة في سجل واحد.
كما تدمج OR القيم. عندما تُزاح قيمتان إلى مواضع لا تتداخل، تجمعهما عملية OR واحدة في سجل واحد. وتُدمج قيم الأحمر والأخضر والأزرق المنفصلة في لون واحد بالطريقة نفسها.
يُدرج دليل RISC-V التعليمة or ضمن عمليات سجل-سجل. فهي تقرأ سجلّي المصدر rs1 وrs2، وتنفّذ OR منطقية على مستوى البتات، وتكتب النتيجة في سجل الوجهة rd.
لا تستطيع OR سوى ضبط البتات إلى 1. أما مسح بت فيتطلب AND مع قناع، وقلب بت يتطلب XOR. وori هي النسخة التي تنفّذ OR بين سجل وثابت محدّد.
مثال
li t0, 0b1100 li t1, 0b0011 or t2, t0, t1 # t2 = 0b1111
