سؤال

لا أفهم ما هو الفرق.

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

المحلول

عند استخدام تعليمات مثل Movsb، يعتبر SI ستسجيل agest، في حين يعتبر دي دي دسجل العرق. لكنهم كل من سجلات X86 العادية.

نصائح أخرى

تجميعي صدئ بعض الشيء، لكن أحدهما هو فهرس المصدر، والآخر هو فهرس الوجهة.تعليمات مثل movsb سيتم نسخ بايت من موقع الذاكرة المشار إليه بواسطة SI, ، وانقله إلى موقع الذاكرة المشار إليه بواسطة DI, ، ثم قم بزيادة كليهما، لذلك إذا كنت تريد نسخ البايت المخزن في SI+1 ل DI+1, ، لا يتطلب الأمر سوى تعليمات movsb إضافية.

SI يقف لمؤشر المصدر. يستخدم مؤشر المصدر كمؤشر إلى الحرف الحالي يتم قراءته في تعليمات سلسلة (LODS أو MOVS أو CMPS). يتوفر مؤشر المصدر أيضا كإزاحة لإضافة BX أو BP عند القيام بمعالجة غير مباشرة.
مثال:

MOV [Bx + SI] , Ax  

نسخ هذه التعليمات محتويات الفأس في موقع الذاكرة هو مجموع BX و SI.

DI تعني مؤشر الوجهة، المستخدمة كمؤشر إلى الشخصية الحالية التي تتم كتابتها أو مقارنة في تعليمات السلسلة.

إنه متاح أيضا كإزاحة تماما مثل SI.

كما أخبرت أعلاه DI Lands لمؤشر الوجهة وتقف SI مؤشر المصدر، عندما نريد نقل البيانات من الذاكرة، نستخدم SI EG، MOV AX، [SI]؛ وعندما نريد نقل البيانات إلى الذاكرة التي نستخدمها دي. على سبيل المثال، mov [di]، الفأس

كلاهما سجل 16 بت ولا يمكن تقسيمه إلى 8 بت

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