neg
زائفيغطي lyszt.net neg وتعليمات RISC-V الأخرى بمزيد من التفصيل.
الوصف
يعكس neg إشارة العدد: يصبح 5 هو -5، ويصبح -5 هو 5. والاسم اختصار لـ negate. يضع النموذج أدناه سالب السجل المصدر rs في السجل الوجهة rd.
neg rd, rs
neg تعليمة زائفة. يعيد المجمّع كتابة التعليمة الزائفة، وهي اسم مقروء، إلى تعليمة حقيقية واحدة أو أكثر قبل أن يصادفها المعالج. يصبح neg التعليمة أدناه، التي تطرح العدد من zero، السجل الخاص الذي يحمل دائماً 0.
sub rd, zero, rs
0 ناقص x يساوي -x، لذا ينتج هذا السالب. تحافظ RISC-V على مجموعة صغيرة من التعليمات الحقيقية عبر إعادة استخدام الطرح وسجل الصفر بهذه الطريقة.
يمتد نطاق الأعداد السالبة خطوة واحدة بعد النطاق الموجب. يبلغ نحو -2.1 مليار، بينما يبلغ الموجب نحو +2.1 مليار فقط. لا نظير موجب لأكثر الأعداد سلبية، لذا فإن أخذ سالبه يلتف ويعطي العدد نفسه. يجب أن تراعي الشيفرة التي تحسب القيم المطلقة هذه الحالة.
يعرّف دليل RISC-V التعليمة sub بأنها طرح rs2 من rs1، ويصف السجل x0، المسمى هنا zero، بأنه موصول بشكل ثابت بقيمة كل بتاتها 0. طرح قيمة من x0 ينتج سالبها، وهو الشكل الذي يصبح عليه neg.
يعكس المثال 5 إلى -5. وبالاقتران مع فرع يتخطى neg عندما يكون العدد موجباً بالفعل، ينتج القيمة المطلقة المعتادة المكوّنة من تعليمتين.
يوسّع إلى
sub rd, zero, rs
يستبدل المُجمِّع هذه التعليمة الزائفة بالتعليمة الحقيقية أو التعليمات المذكورة أعلاه.
مثال
li t0, 5 neg t1, t0 # t1 = -5
المصادر
- [1]RISC-V International. The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture. Version 20260120. Section 2.4.2, Integer Register-Register Instructions, page 29.
- [2]RISC-V International. The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture. Version 20260120. Section 2.1, Programmers' Model for Base Integer ISA, page 23.
