|
المخزن والاوامر MOV,CMP,JMP المخزن 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 بلغة البيسك
جميع الحقوق محفوظة
الروضة الخالدة© |