اوامر لغة الاسمبلي - تعليمات IN و OUT و تعليمات السلاسل الحرفية - شرح المعالج الدقيق 8086 اوامر لغة الاسمبلي - تعليمات IN و OUT و تعليمات السلاسل الحرفية - شرح المعالج الدقيق 8086 - اقرا معي وتعلم على الانترنت

اوامر لغة الاسمبلي - تعليمات IN و OUT و تعليمات السلاسل الحرفية - شرح المعالج الدقيق 8086

ضمن دروس شرح البرمجة بلغة الاسمبلي ,نقدم اليكم اليوم تكملة لأوامر لغة الاسمبلي - تعليمات IN و OUT و تعليمات السلاسل الحرفية - شرح المعالج الدقيق 8086.
ويمكنكم الاطلاع ايضا على الدروس السابقة من خلال الروابط التالية :
اوامر لغة الاسمبلي - تعليمات IN و OUT و تعليمات السلاسل الحرفية - شرح المعالج الدقيق 8086

تعليمات IN و OUT
تسمح التعليمتان IN و OUT بتبادل المعطيات بين AL أو AX مع بوابات دخل/خرج تقع في فضاء عنونة بوابات المعالج 8086/8088 .
تقرأ التعليمةIN القيمة على مدخل بوابة وتضعها في المراكم، في حين تضع أو تُخرج التعليمة OUT محتوى المراكم على مخرج بوابة. يمكن عنونة البوابات، الواقعة في فضاء عنونة بوابات المعالج  8088/8086 بطريقة مباشرة أو غير مباشرة.


عنونة مباشرة: في هذه الحالة تحتوي تعليمة IN و OUT على رقم البوابة الذي يتراوح بين 0 و 255  إذا جرى تعيين AL كمعامل وجهة فإنه يجري تبادل بايت بين AL والبوابة.
وإذا جرى تعيين AX كمعامل وجهة فإنه يجري تبادل كلمة بين AX والبوابة .

مثال: إذا علمت أن لوحة المفاتيح keyboard للحاسوب الشخصي موصولة على البوابة ذات الرقم 60h فيمكنك قراءة هذه البوابة كما يلي:
IN AL, 60h

عنونة غير مباشرة: يمكن للمعالج 8086/8088 أن يعنون حتى 64 كيلو بوابة دخل/خرج طول كل منها 1 بايت أو 32 كيلو بوابة دخل/خرج طول كل منها 2 بايت. ولعنونة كامل فضاء بوابات الدخل/خرج يجري وضع رقم البوابة في السجل DX ومن ثم ُتعنون البوابة على نحو غير مباشر.
مثال: إذا علمت أن عنوان البوابة التفرعية LTP1 للحاسوب الشخصي هو 378h فيمكنك قراءة هذه البوابة كما يلي:
MOV DX, 378h       ;Point at LPT1: data port
IN AL, DX               ;Read data from printer port.
اختبار ذاتي: اكتب تعليمات ُتخرج موجة مربعة على البت الثانية من البوابة التفرعية.
الجواب:
MOV DX, 378h                   ;Parallel printer port address.
LoopForever: IN AL, DX     ;Read character from input port.
XOR AL, 1                          ;Invert the L.O. bit.
OUT DX, al                         ;Output data back to port.
JMP LoopForever               ;Repeat forever.

تعليمات سلاسل المحارف
يقصد بسلاسل المحارف String سلسلة من المعطيات (بايتات أو كلمات) مخزنة في مواقع متتالية في الذاكرة. َتضم تعليمات المعالج 8086/8088 مجموعة من تعليمات سلاسل المحارف ُتمكننا من:
-          نسخ سلسة محارف من مكان إلى آخر في الذاكرة .
-          مقارنة سلسلتي محارف.
-          البحث عن قيمة في سلسلة محارف.
كما َتضم تعليمات ُتمكننا من نقل عناصر سلسلة محارف من المراكم وإليه. يمكن أن تحتوي تعليمات سلاسل المحارف على معامل مصدر أو معامل وجهة أو كليهما. وتفترض هذه التعليمات أن معامل المصدر يقع في مقتطع المعطيات الحالي , DS , وأن معامل الوجهة يقع في مقتطع المعطيات الإضافي ES .
تفترض هذه التعليمات أيضًا أن SI يعنون العنصر الحالي من سلسلة محارف المصدر، ويعنون DI العنصر الحالي من سلسلة محارف الوجهة.
تُحدث تعليمات سلاسل المحارف محتوى SI و/أو DI ليؤشروا إلى العنصر التالي من سلاسل المحارف بعد تنفيذ كل تعليمة. في حال كان DF=0 , فإنه يجري زيادة SI و DI بواحد (إذا كان طول عنصر من السلسلة يساوي بايت) أو باثنين (إذا كان طول عنصر من السلسلة يساوي كلمة)، تصبح عملية الزيادة إنقاصًا إذا كان DF=1 .

التعليمتان MOVSB و MOVSW :
تنسخ التعليمة MOVSB بايت من سلسلة محارف المصدر )المعنونة ب SI ) إلى بايت من سلسلة محارف الوجهة (المعنونة ب .(DI
تنسخ التعليمة MOVSW كلمة من سلسلة محارف المصدر)المعنونة ب SI ) إلى كلمة من سلسلة محارف الوجهة ) المعنونة ب DI ).


الى اللقاء في التدوينة القادمة ان شاء الله 
لا تنسى دعمنا بالمشاركة عزيزي الزائر





شارك الموضوع
تعليقات

إرسال تعليق

لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر

محتوى قد يهمك

.