عرض مشاركة واحدة
قديم 02-08-2007, 10:45   رقم المشاركة : 7 (permalink)
معلومات العضو
المحقق كونان
عضو متواصل
 
الصورة الرمزية المحقق كونان
 

 

 
إحصائية العضو









المحقق كونان غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 10
المحقق كونان is on a distinguished road

 

 

مشاركة: دورة في لغة التجميع (الاسمبلي)

الدرس الثاني :



المخزن stack

· هو جزء من الذاكرة لتخزين أشياء مختلفة

· يتم التخزين باستخدام الأمر push

· يتم استدعاء القيمة المخزنة بالأمر pop

· إذا قمت بتخزين عدة قيم فأول قيمة يتم تخزينها هي آخر قيمة تسترد

يمكن التشبيه للقيم المخزنة بمجموعة أطباق عند وضعهم فوق بعضهم البعض

فان أول طبق يوضع أسفلهم و لكي نحصل عليه يجب ان نرفع ما فوقه أولا

[في لغة التجميع يمكن استخدام نفس الطبق عدة مرات]

مثال

Push ax معناها خزن محتوى المسجل ax في الذاكرة ...1 (الطبق الأول)

Mov ax, 1 ضع القيمة 1 داخل المسجل ax

Push ax معناها خزن محتوى المسجل ax في الذاكرة ...2(الطبق الثاني)

………..

………..

pop ax يتم استرداد القيمة 2 وهي في مثالنا الحالي =1

Pop ax يتم استرداد القيمة 1 و التي تم تخزينها أولا

الأمر mov

تطرقنا لهذا الامر في المثال السابق و هو يكافئ الأمر let لمن لديه فكرة عن لغة البيسك بالنسبة للغة التجميع فهي اختصار للفعل move بمعنى انقل او حرك لقيمة معينة الى داخل السجل و يأخذ احد هذه الأشكال

· Mov eax,00000001 انقل القيمة داخل المسجل eax

· Mov eax,ebx اجعل قيمة eax تكافئ قيمة ebx

· move ax,[ebx] اجعل قيمة eax تكافئ القيمة الموجودة بالعنوان المحفوظ داخل المسجل ebx

نلاحظ ان

· [ebx] تعني محتوى عنوان داخل المسجل و ليس المسجل نفسه

· الحرف e ببداية المسجلات لاننا نتعامل مع مسجلات 32 بت

· يمكن وضع عنوان للذاكرة بالمسجل و التعامل مع العنوان بعد ذلك عن طريق المسجل

· ما ينطبق على الامر mov ينطبق على باقي الاوامر من حيث التعامل مع القيم و محتويات المسجلات و محتويات العناوين المحفوظة بالمسجلات

الامر CMP

· الامر يعني قارن بين قيمتين

· يؤثر على الحالة Z للبيان FLAG

· Z تساوي 1 بمعنى ان الناتج من المقارنة =0 أي تساوي القيمتين

· عدا ذلك فان Z تساوي 0 دلالة على عدم تساوي القيمتين

· CMP EAX,5 قارن قيمة بمحتوى المسجل

· CMP EAX,ECX مقارنة محتوى مسجلين

· CMP EAX,[EBX] مقارنة محتوى مسجل بمحتوى عنوان

الامر JMP

· سأقول ببساطة انه يعني اذهب الى

· JMP ECX اذهب إلى ماذا ؟ سأخبرك سأفترض أن محتوى المسجل EAX هو XX هل تذكر الاوفست إذا فاعلم أن OFFSET=XX العبارة الان واضحة اذهب الى السطر XX

· JMP 018249 الأمر سهل مباشر اذهب الي السطر 018249

· الأمر يشبه GOTO بلغة البيسك

التوقيع

المحقق كونان غير متواجد حالياً   رد مع اقتباس