سؤال

ماذا تفعل بالضبط هذه التعليمات؟ أعلم أنه يحاول محاذاة البيانات بمضاعف من رقم معين ولكن لماذا تحتاج إلى القيام بذلك؟ هل هناك تعليمات مكافئة في مجموعات أخرى؟

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

المحلول

عادة ما تقوم بمحاذاة البيانات للحصول على أداء أفضل. بالنسبة لمعظم المعالجات ، يتمتع وصول الذاكرة ببعض العقوبة عند عدم الوصول إلى حدود بايت محددة. بالنسبة للمجمعين الآخرين ، غالبًا ما يكون هناك نوع من الزائفة .align لهذا. يقوم معظم المجمعين أيضًا بمحاذاة هياكل البيانات الخاصة بهم (على الرغم من أنه يمكنك تعطيلها لأغراض التصحيح).

انظر أيضا هذا دخول ويكيبيديا.

لاحظ أن أنظمة MIPS غير المُثبّعة قد تتعطل إذا حاولت الوصول إلى خلايا الذاكرة غير المحسوبة (انظر هنا و هنا).

نصائح أخرى

هل هناك تعليمات مكافئة في التجمعات الأخرى؟

Masm له توجيه محاذاة: http://msdn.microsoft.com/en-us/library/dwa9fwef(vs.80).aspx

إنه ينسخ كل شيء مع القوة التاسعة. إنها ليست تعليماً ، إنها توجيهات سيتم ترجمتها إلى تعليمات

أما بالنسبة لاستخدامه ، للبشر:

تعليمات MIPS32 دائما 32 بت. لذلك يجب أن تبدأ كل تعليمات على حدود كلمة. إضافة توجيه .Align قبل بدء الرمز ، يتوافق مع 32 بت. هذا له العديد من الفوائد ، بما في ذلك أنه لا يستغرق سوى وصول ذاكرة واحد لجلب التعليمات ، ومن المحتمل أن يكون مفيدًا في ذاكرة التخزين المؤقت للتعليمات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top