لماذا يحتوي كود آلة الإخراج لدول مجلس التعاون الخليجي على تعليمات nop
سؤال
في كل مرة أقوم فيها بتنفيذ عملية تفريغ - أرى دائمًا رمز ASM مع مجموعات من الإرشادات nop (الإرشادات التي لا تفعل شيئًا)
على سبيل المثال ، خذ هذا البرنامج نفسه: Genacodicetagpre
يحتوي objdump لـ exampe على نقطتين في نهاية نقطة الإدخال Genacodicetagpre
وهذا مجرد مثال واحد من العديد من الأمثلة ولكنك حصلت على الفكرة.لماذا يتم تجميع كود C بهذه الطريقة؟شكرا مقدما.
المحلول
غالبًا ما تُستخدم هذه الأشياء فقط لعمل الحشو بحيث تبدأ الأشياء اللاحقة في كلمة أو حد مرة أخرى ، حيث إن الوصول إلى التعليمات البرمجية العشوائية غير المحاذية لحدود الكلمات تكون أكثر تكلفة بكثير بالنسبة لوحدة المعالجة المركزية.
نصائح أخرى
تتم إضافة أكواد الكود العام لإجبار الوظيفة التالية على المحاذاة مع حد 4 بايت.(لاحظ أن العنوان الذي يلي آخر رمز رمز عام سيكون 40047c وهو قابل للقسمة على 4)