1.1 القاطعة المحدثة 21h (الخاصة بـ DOS )
1.1.1 قراءة جملة بالدالة 0Ah
الدخول : رقم الدالة = AH
عنوان المتغير = DS:DX
الخروج : الجملة التي تم إدخالها = عنوان المتغير+2
هذه الدالة تشبه إلى حد ما للدالة ()scanf أو بكل تدقيق للدالة ()gets في اللغة C .
وتشبه كذلك إلى حد ما للدالة ()readln في اللغة Pascal .
إلا أن هناك شرط في هذه الدالة ( أي 0Ah ) وهو : عند إعطاء عنوان المتغير (ليكن message ) لـ DX فإن الجواب أي الجملة التي تم إدخالها من طرف المستعمل تكون قي (message+2).
كما أن المتغير message يجب أن يكون مملوءا بالرمز '$' في منطقة التعريفات المهيأة.
مثال :
;NASM-IDE ASM Assistant Assembler Project File |
1.1.2 قراءة حرف
الدالة 01h : قراءة حرف مع إظهاره أثناء الإدخال
الدخول : رقم الدالة = AH
الخروج : رقم الحرف المضغوط = AL
هذه الدالة شبيهة تماما بالدالتين ()getchar في C .
الدالتين 07h و 08h: قراءة حرف دون إظهاره أثناء الإدخال
الدخول : رقم الدالة = AH
الخروج : رقم الحرف المضغوط = AL
هاتين الدالتين شبيهتين تماما بالدالتين ()getch في C و readkey في Pascal
الدالة 0Bh : للتأكد فقط هل تم الضغط على مفتاح
الدخول : رقم الدالة = AH
الخروج : (تم الضغط على حرف على الأقل) 0 = ZF
رقم الحرف المضغوط = AL
( لم يضغط على شيء) 1 = ZF
هذه الدالة شبيهة تماما بالدالتين ()kbhit في C و keypressed في Pascal
1.2 القاطعة الآلية 16h (الخاصة بالآلة : لوحة المفاتيح )
1.2.1 قراءة حرف
الدالتين 00h و 10h: قراءة حرف دون إظهاره أثناء الإدخال
الدخول : رقم الدالة = AH
الخروج : رقم الحرف المضغوط = AL
هاتين الدالتين شبيهتين تماما بالدالتين ()getch في C و readkey في Pascal
الدالتين 01h و 11h : للتأكد فقط هل تم الضغط على مفتاح
الدخول : رقم الدالة = AH
الخروج : (تم الضغط على حرف على الأقل) 0 = ZF
رقم الحرف المضغوط = AL
( لم يضغط على شيء) 1 = ZF
هاتين الدالتين شبيهتين تماما بالدالتين ()kbhit في C و keypressed في Pascal
2. الكتابة على الشاشة
2.1 كتابة حرف
تم التطرق إليه في الفقرات السابقة.
2.2 كتابة جملة
باستعمال الدالة 09h للقاطعة 21h
09h | كتابة جملة | AH = رقم الدالة DS:DX = عنوان متغير الجملة |
mov dx,jomla mov ah,9 int 21h ... jomla db 'Salam',10,13,'$' |
باستعمال الدالة 13h للقاطعة 10h
AL = طريقة الكتابة:
الزوج 0: يتحول المشير (cursor) إلى نهاية الجملة;
الزوج 1: تعيين لون للجملة.
BH = صفحة الشاشة (غالبا ما تكون تساوي 0).
BL = لون الجملة إذا كان الزوج 1 للخزان AL نشيط.
CX = عدد الحروف المكونة للجملة.
DL,DH = إحداثيات (السطر والعمود) للجملة.
ES:BP = عنوان الجملة.
تمارين تطبيقية
التمرين 6.1
أنجز شفرة تمكن من قراءة جملة ثم إظهارها في وسط الشاشة.
التمرين 6.2
أنجز شفرة تمكن من قراءة 5 كلمات ( طولها هو 10 أحرف) ثم إظهارها عكس الإدخال.
مثال : |
Entrer 5 kalimate : |
التمرين 6.3
أنجز شفرة تمكن من قراءة حرف مع إظهاره عند الإدخال، بعد ذلك أظهره مكررا ثلاث مرات باستعمال الخاصية times.
مثال : |
Entrer harf : a |
التمرين 6.4
أنجز شفرة تمكن من قراءة حرف دون إظهاره عند الإدخال، بعد ذلك أظهره مكررا 10 مرات باستعمال الخاصية times.
مثال : |
Entrer harf : |