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

اريد ان افهم ( Indirect Operands )

بدأه المشتاقه للجنه في 20 أبريل 2008 · 1 رد · 1,445 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

( indirect operands )اريد منكم المساعده في شرح موضوع وايضا اريد ان تعطوني نتيجة هذا البرنامج

  
												 .data	   
arrayw word 1000h , 2000

	.code 
mov esi , offset arrayw 


mov ax , [esi]


add esi , 2   



  add ax , [esi]


add esi , 2

[esi] esi ما الفرق بين

شكرا لكم

تم تعديل هذه المشاركة بواسطة B.M.AbdelAziZ في 20 أبريل 2008 في 21:23

#2

السلام عليكم

الـ indirect operand يحمل عنوان متغير ما بحيث يشير إليه كـ pointer على سبيل المثال.

[esi] هنا تجعل المسجل ESI عبارة عن indirect operand حيث يجب ان يحمل المسجل عنوان متغير ما وبالتالي [esi] تشير الى القيمة الموجودة على ذلك العنوان.

mov esi , offset arrayw

هنا تقوم بوضع عنوان المصفوفة المعرفة في البرنامج في المسجل ESI.

mov ax , [esi]

[esi] عبارة عن indirect operand سيتم نقل القيمة الموجودة على العنوان المحدد في ESI الى المسجل AX

ثم يتم اضافة 2 للعنوان في ESI لكي يتم الاشارة الى القيمة التالية المعرفة في المتغير arrayw (يعني القيمة 2000)

ثم سيتم اضافة (وليس نقل) هذه القيمة الى القيمة الموجودة في AX

اي يتم اضافة 2000 الى 1000 وتكون النتيجة في AX.

انظر المحتوى في المرفقات لأن المثال والله أعلم مأخوذ منه.

chapt_04_PartII.pdf

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

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