الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما فائدة استعمال PC Relative Addressing

مغلقمُجاب
بدأه Adam Sharafeddine في 22 سبتمبر 2013 · 2 رد · 1,018 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

 

عندما يعمل معالج الIntel بطريقة ال32 بت فانّه ينفذ امر القفز (J؟؟) باستعمال طريقة العنونة النسبيّة (العنونة بالنسبة للرقم الموجود داخل المسجّل PC الذي يحوي عنوان الامر التالي) للقفز الى عنوان محدد.

 

ما سبب استعمال هذه الطريقة و التي تسمّى بالانكليزية: PC Relative Addressing؟

 

عندما يعمل معالج الIntel بطريقة ال64 بت فانّه سيتعمل طريقة العنونة النسبيّة في كل الاوامر المتعلّقة بالمتغيّرات.

 

ما السبب؟ هل هناك فوائد معيّنة من ذلك؟

 

حقيقة كنت اقرأ كتاب و مرّت عليّ هذه الفقرة بالانكليزية:

 

اقتباس

 

 In addition
to the IA32 addressing forms, some forms of PC-relative operand addressing are
supported. With IA32, this form of addressing is only supported for jump and
other control transfer instructions (see Section 3.6.3). This mode is provided to
compensate for the fact that the offsets (shown in Figure 3.3 as Imm) are only 32
bits long. By viewing this field as a 32-bit two’s-complement number, instructions
can access data within a window of around ±2.15 × 10
9
relative to the program
counter. With x86-64, the program counter is named %rip.

 

هناك شيىء غير مفهوم في هذه الجملة:

 

اقتباس

This mode is provided to
compensate for the fact that the offsets  are only 32
bits long.

 

انا اعلم انّ المعالج عندما يكون قيد التنفيذ بطريقة 32 بت يمكننا الوصول الى 4 GB من الذاكرة ( او 2^32 من العناوين في الذاكرة) ولكن هنا نحن 64 بت يعني توسّعت الذاكرة بشكل رهيب الى 2^64 عنوان!

تم تعديل هذه المشاركة بواسطة adam-master في 22 سبتمبر 2013 في 22:37

#3

اول فائدة: Position Independent


 


----------


 


ثاني فائدة تقليص عدد البايتات المطلوبة لتشفير العنوان

تم تعديل هذه المشاركة بواسطة adam-master في 23 سبتمبر 2013 في 11:08

هذا الموضوع مغلق.

مواضيع مشابهة