أريد فكرة عن المعامل offset كما في المثال التالي
save DB ?
....
add cx,12
mov save,25
mov bx,offset save
أريد شرح لفائدة المعامل offset
أريد فكرة عن المعامل offset كما في المثال التالي
save DB ?
....
add cx,12
mov save,25
mov bx,offset save
أريد شرح لفائدة المعامل offset
Assalam
You know that the memory is divided in 2 things Segment and offset
Often we program little programs and we use only 1 segment in this case we will need only offsets and the offset means the address of relative to the segment where we are
when we write mov bx,offset something
this means that we will put in bx register the address of something relative to his segment.
I hope this is clear and we can discuss this if you want later in arabic.
Ila likae
أولا شكرا علي التعاون كذلك اسألتي من شخص مبتدأ في اللغة
ثانيا لقد فهمت بان ال segment هو جزء من الذاكرة وأن ال offset هو جزء آخر من ال segment أو بمعني آخر أزاحة من العنوان الفعلي لل segment يعني مثلا
نفرض عمارة سكنية هي الذاكرة ومقسمة الي ادوار ولنفرض مقصمة الي عشرة ادوار وهذه الادوار هي ال segments وكل دور به عدد من الشقق فأذا اردنا الشقة رقم 5 في الدور الرابع , فأننا نقول 45 يعني segment 4 و offset 5 . هل هذا صحيح علي حسب ما فهمت منك؟
ولكن في البرنامج تم تخصيص موقع من الذاكرة حجمه بايت وسميت تلك المنطقة المخصصة له باسم save وتم تخزين رقم في العنوان save وحسب ما فهمت انا save هي جزء من الذاكرة في قطاع المعطيات حيث اصبحت save = 25 . ولكن لم افهمه ماذا يقصد ب offset save ووضع القيمة في ال bx يعني ما فائدة تلك العملية ؟
يعني لو فرضنا مثلا ان محمد يسكن في الدور الرابع وفي الشقة رقم 5 والشقة رقم 5 بها حجر cells والعنصر محمد مخزن في هذه الحجر يعني يسكن بها وكما قلنا فان الا offset تعني شقة وبالتالي لو قلنا offset of Mohamed هو 5 يعني اين يقطن محمد في القطاع الرابع او الدور الرابع
ذلك حسب ما فهمت فهل ما يقد في البرنامج السابق ان الاسمبلير يخزن قيمة ويحدد لها مكان من عنده دون تدخل المبرمج حيث وضع القيمة التي سيميت باسم save في مكان ما من قطاع المعطيات data segment مزاحتا عنها ؟ فها انا ابحث عن قيمة ازاحة save عن بداية مقطعها واخزنها في ال bx ؟
يعني
i tell assmebler please put offset of save that you have put it in somewhere in the data segment in bx
فهل ما فهمته صحيح؟ ارجو انت توضح لي شئ أخطات فهمه
هذا الموضوع مغلق.