سؤال

في القسم 4.3 من دليل مطور برامج Intel 64® و IA-32. المجلد 1: الهندسة المعمارية الأساسية, ، انها تقول:

المؤشر القريب هو إزاحة 32 بت ... داخل شريحة. يتم استخدام المؤشرات القريبة لجميع مراجع الذاكرة في نموذج ذاكرة مسطحة أو للمراجع في نموذج مجزأ حيث تكون هوية الجزء الذي يتم الوصول إليه ضمنيًا.

هذا يقودني إلى التساؤل: كيف يتم تحديد سجل القطاع الضمني؟

وأنا أعلم ذلك (%eip) ونازح (%eip) (على سبيل المثال -4(%eip)) عناوين استخدام %cs بشكل افتراضي ، وذاك (%esp) ونازح (%esp) العنوان استخدام %ss, ، لكن ماذا عن (%eax), (%edx), (%edi), (%ebp) وما إلى ذلك ، وهل يمكن أن يعتمد سجل القطاع الضمني أيضًا على التعليمات التي يظهر فيها معامل عنوان الذاكرة؟

هل كانت مفيدة؟

المحلول

غير ذلك CS و SS تسجيل الوصول الذي ذكرته ، وسوف تستخدم معظم الوصول الآخر DS سجل المقطع. استثناءين يمكن أن أتذكره:

  • سوف تستخدم التعليمات الموجهة نحو السلسلة ES ل "الوجهة" (ضمنيًا معالجة EDI سجل) سجل القطاع
  • تصل الذاكرة باستخدام EBP التسجيل كـ "عنوان أساسي" سيستخدم السجل SS سجل المقطع. ومع ذلك ، إذا كان EBP يتم استخدام السجل كسجل فهرس مقاس ، وسيكون القطاع المستخدم DS (ما لم يكن سجل العنوان الأساسي هو ESP)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top