سلسلة الراغبين في ملخص لغة اسمبلي للمبتدئين (الدرس الخامس)

 السلام عليكم

بسم الله الرحمن الرحيم


سنتعلم اليوم عن المسجلات registers
سيكون جزء كبير من العمل عليها
في البداية ما هي انواع المسجلات ؟؟
1- data registers
2- pointer registers
3- index registers
4- control registers
في البداية سوف نتعرف على general purpose registers :-
في الأساس هي تستخدم للعمليات الحسابية ونقل المعلومات
وهي
EAX , EBX , ECX , EDX
ومساحتهم كل واحد 32 bit ويقسم كل واحد الى ١٦ bit والى 8 bit مثلا
EAX = 32bit
AX = 16 bit
AL = 8 BIT(low) AH= 8 BIT(high)
high : ٢ بايت في اليسار
low : ٢ بايت في اليمين
وجميع المسجلات تقسم الى نفس الشيء ولكن يتغير فقط الحرف الاول (أنظر إلى الصورة بالاسفل
)
------------------------
الان سوف نتعرف على index and base registers
تبقى ضمن general purpose registers ولكنها تقسم الى 16 bit فقط وهي :-
ESI , EDI ,EBP , ESP
وجميعها 32 bit و 16 bit هي :-
SI ,DI ,BP, SP
--------------------------
الان سنتعرف على عمل كل register بشكل موسع :
EAX :
يستخدم كمدخل و كمخرج (input /output ) لاغلب العمليات المنطقية و الحسابية ويسمى ب accumulator
اي المجمع .
EBX :
يعرف ب base register
وغالبا يستخدم في عنونة (إعطاء عنوان) العناصر الداخلية (indexed addressing)
(سنفهم ذلك عند التدرب والتطبيق)
ECX
يستخدم كعداد (counter)في جمل التكرار (loop)
ويسمى the count register
EDX
تستخدم في عمليات الادخال و الإخراج (input/output operations)
يستخدم DX مع مسجل AX في عمليات الضرب و القسمة في القيم الكبيرة
وكل هذه المسجلات تعرف ب data registers
---------------------- ,
الان سوف نتعرف على pointer registers
EIP , ESP , EBP 32 bit
IP, SP , BP 16 bit
,,هذه هي المسجلات في الحالتين 16 و 32 bit
الان سوف نتعرف على كل واحد ووظيفته :-
instruction pointer (IP , EIP):-
يخزن بداخلة عنوان الكود أو التعليمية (instruction) التالية في الكود ليتم تنفيذها .
Stack pointer (SP , ESP) :
يقوم بالاشارة على قمة stack التي تحتوي على المعلومات .

@@@@@@
*stack :-
* وتسمى المكدسة وهو مكان في الذاكرة توضع فيه المعلومات بطريقة تشبه وضع الصحون فوق بعضها حيث أنه إذا أردت أخذ صحن تاخذ اخر صحن تم وضعه ويكون في راس مجموعة الصحون اي من يدخل في الاخر يخرج في الاول
Last in first out (LIFO)
(سيتم شرحها فيما بعد هذه مجرد فكرة بسيطة)
@@@@@@
Base Pointer (BP , EBP)
يساعد بشكل رئيسي في الإشارة إلى المتغيرات المعلمة(المتغيرات الخاصة باي function ) التي تم تمريرها إلى الذاكرة (stack)
#####################
انتهى #الدرس_الخامس لليوم لكم حرية مشاركة المنشور للجميع لكن لا تنسوا ذكر المصدر
وان كان هناك أي أخطاء في المعلومات أو أخطاء في الاملاء (فرحوا جماعة الاملاء
) فانا ساتقبل النقد البناء
اتمنى مشاركة المنشور حتى يستفيد الجميع فزكاة العلم نشره

Comments