Navigation

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

تقرأ التعليمةIN القيمة على مدخل بوابة وتضعها في المراكم، في حين تضع أو تُخرجالتعليمة OUT محتوى المراكم على مخرج بوابة. يمكن عنونة البوابات، الواقعة في فضاءعنونة بوابات المعالج 8088/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 ).
مشاركة

أضف تعليق:

0 comments: