HeadlinesBriefing favicon HeadlinesBriefing.com

لماذا تُسمى تعليمة x86 غير المعرفة ud2؟

Hacker News •
×

تعليمة ud2 هي أوبكود غير معرف معماريًا على x86 تثير بشكل موثوق استثناء "أوبكود غير صالح". تستخدمها المترجمات لوضع علامة على الكود "غير القابل للوصول"، مما يضمن حدوث تعطل إذا وصل التنفيذ إليها. في الأصل، لم تكن هناك تعليمة غير معرفة رسمية، لذا اعتمد المبرمجون على تسلسلات بايت مثل 0F FF أو 0F B9 لتحفيز الاستثناء. تم فك تشفير هذه التسلسلات داخليًا كتعليمات ذات معلمتين غير مستخدمتين. عندما أدخلت Intel تغييرات كسرت 0F FF، فشل البرنامج الذي يعتمد عليها، مما يوضح قانون هايرم. لتوفير حل مستقر، أنشأت Intel رسميًا ud2، وسمّت المتغيرات القديمة بأثر رجعي ud0 و ud1. على عكس سابقاتها، ud2 هي تعليمة نظيفة من بايتين بدون معلمات، مما يتجنب مشاكل فك التشفير التي قد تسبب انتهاكات وصول بدلاً من استثناءات أوبكود غير صالح. هذا يجعل ud2 الخيار المتسق والموصى به لتحفيز تعطل متعمد.

يعكس التسمية التاريخ: أصبح 0F FF هو ud0، وأصبح 0F B9 هو ud1، وسُميت التعليمة الرسمية الجديدة ud2. الميزة الرئيسية لـ ud2 هي ضمانها المعماري، مما يضمن سلوكًا متوقعًا بغض النظر عن وجود صفحة ذاكرة أو تفاصيل تنفيذ المعالج.