3- التعليمة ADD





 
1-  التعليمة ADD:
تعتبر هذه التعليمة هي المسؤولة عن عملية جمع قيمتان لمتأثر واحد وتخزين هذه القيمة في المتأثر الأول في حالة تم إزاحة هذه القيمة فإن مؤشر علم التحكم سوف يشير إلى ذلك وتسمح أطقم تعليمات المعالج بالتعامل مع هذه التعليمة وفق الآتي
·       من مسجل إلى مسجل
·       من مسجل إلى الذاكرة
·       من الذاكرة إلى المسجل
الآن سنقوم بطرح مجموعة من الأمثلة على هذه التعليمة وطريقة تمثيلها في لغة المجمع والمثال الاول هو المثال السابق:


;عملية حسابية لجمع قيمة مسجلين
MOV AX,4
MOV BX,3
ADD AX,BX


الآن سنقوم بعملية حسابية ثانية لجمع عددين بنظام العد الست عشري وهي على الشكل التالي D4H+25H=F9 طبعا العملية الحسابية كما نلاحظ في نهاية كل رقم الرمزH والذي يشير الى انه رقم بالنظام الست عشري


;عملية حسابية لجمع قيمة مسجلين بالنظام الست عشري
MOV AX,D4
ADD AX,25H


في هذا المثال سوف نقوم بعرض عملية حسابية داخل مسجلات من نوع 32 بت في العمليات السابقة اظهرنا العملية الحسابية على مسجلات من نوع 16 بت


;عملية حسابية لجمع قيمة مسجلين بالنظام الست عشري على مسجل 32 بت
MOV EAX,D4
ADD EAX,25H


تتعامل هذه التعليمة مع الذاكرة بشرط ان يتم الجمع من موقع في الذاكرة الى مسجل والعكس صحيح أما بالنسبة لعملية الإضافة داخل الذاكرة مباشرة فهذا مستحيل لابد من نقل القيمة الى مسجل ثم اضافته الى الذاكرة أي لا بد من وسيط لضمان صحة العملية وهذا مثال بسيط يشرح العملية مع اعتبار أن 1222-5001-3212 هي عبارة عن عناوين في الذاكرة


;عملية حسابية لجمع قيمة مسجل مع عنوان في الذاكرة على مسجل 32 بت
MOV EAX,3212
ADD EAX,1222
ADD EAX,5001


لاحظ في المثال السابق كيف تمت عملية نقل عنوان الذاكرة في البداية الى المسجل ثم بعد ذلك قمنا بعملية اضافة تلك العناوين انظر الى المثال التالي:


;عملية حسابية لجمع قيمة عنوان مع عنوان في الذاكرة وهي عملية خاطئة لابد من وسيط سجل
ADD [5001],[1222]


الجمع في الطريقة السابقة خاطئة سنقوم بأخذ مثال جديد لكن داخل المسجلات نفسها ولاحظ وجود الخطأ في هذه العملية الحسابية


; عملية حسابية لجمع قيمة مسجل 32 بت مع مسجل 16 بت عملية خاطئة
MOV EAX,4DH
ADD AX,30H
ADD EAX,AX

; عملية حسابية لجمع قيمة مسجل 8 بت مع مسجل 16 بت عملية خاطئة
MOV AX,4DH
ADD AL,30H
ADD AX,AL


لاحظ أن العمليتان السابقتان تحتاج لعمليتا النقل والاضافة توافر مسجلات من نفس النوع أي لا يمكن أن نقوم بإضافة قيمة إلى المسجل من نفس النوع وقد اخدنا دراسة كافية عن أنواع المسجلات وشرحناها في السابق يمكنك مراجعتها والتركيز عليها حتى لا تقع في الخطأ

إضافة قيمة إلى عنوان ذاكرة من نوع كلمة مزدوجة أي أربع بايتات ممثلة بالعدد 25
add dwordptr [100h], 25
إضافة قيمة عنوان في الذاكرة الى مسجل من نوع 32 بت
add dwordptr [100h], ecx


شاركه على جوجل بلس

عن حذيفة مهيار

    تعليقات بلوجر
    تعليقات فيسبوك

0 التعليقات:

إرسال تعليق