رفع الإبهام عن مصائب المايكرو العظام
Открыть в Telegram
Больше
Страна не указанаКатегория не указана
212
Подписчики
Нет данных24 часа
-47 дней
-430 дней
Архив постов
د.
علمود انزل سطر فـ اسمبلي
شوي هواي غبي فـ اذا تكله انزل سطر
ينزل بنفس المستوى الي هوه بي,
يعني شلون !
Mustafa Diaa^
^
ينزل سطر بنفس المستوى الّي كان المؤشر
واقف عليه, فـ لازم شسوي قبلها ؟
ببساطة اخلي مؤشر أقصى اليسار بعدين انزل
زين شلون انقل المؤشر وانزل اساســــــــًا
1⃣ CR = Carriage Return
هو من اوامر الأسكي ويكافئ D
يخلي المؤشر اقصى اليسار
2⃣ LF = Line Feed
هو من اوامر الأسكي ويكافئ A
ينزل سطر
عندي طريقتين علمود اسويها :
الاولى :
بما ان هو Char فـ استخدم
فانكشن
AH = 2 لطباعة الأمر
والـ قيمة الّي راح تطبع تكون بالـ DL
MOV AH,2 # فانكشن الـ Display
MOV DL,D # قيمة الـ Char
INT 21
MOV DL,A # قيمة الـ Char
INT 21
طبعا لازم بالأول انفذ D بعدين A
الثانية - الأسهل - :
استخدم فانكشن الطباعة الّي اني متعود عليها نفسها AH = 9
بس لازم قبلها طبعا اجهز رسالة بيها الأمرين يعني
E 300 D A 24 # هنا لازم تخلي بالنهاية $ لان نص
MOV AH, 9
MOV DX, 300
INT 21هــــــــــــــانت خلصنا بقى بس ننزل سطر
ونطبع الرسالة الي احنه كتبناها 🫥
ج.
نعرف النص لازم ينتهي بـ $ ألا يحقلي اطبعه
فـ اليوزر من يكتب اسمه اني نهايته
لازم اضيف $ تلقائيًا علمود اكدر اطبعه بعدين 😵💫
شلون اسويها هاي !
⚠️ الـ $ بالـ أسكي قيمتها تكافئ
24
فـ اني اعرف طول النص (موقع 201)
واعرف بداية نص مالتي (يبدأ من موقع 202)
أجمعهم علمود اوصل نهاية النص
واخلي بي 24 = $
MOV BL,[201]
MOV BH,0
MOV BYTE PTR [BX+202],24
هنا فرضًا راح استخدم BX
الـ BL اخلي بيها طول النص أما BH اصفره
هسه صار قيمة الـ BX هي طول النص قُح
هسه اجمعها ويه بداية النص 202
الناتج راح يكون الموقع الّي انتهى بي النص ☺
بهذا الموقع اخلي 24 = $ب.
علمود اليوزر يكتب نص نستخدم الفانكشن
AH = A
والنص الّي يكتبه اليوزر بموقع اني محدده DS:DX
مثلاً اني محدد موقع 200 راح يكون تقسيم كالأتي :
موقع 200 : احدد بي الحد الأقصى لحروف الرسالة
يعني مثل واحد يگلك اكتب رمز بس هاا كحد الأقصى لطوله 20 حرفموقع
201 : هنا راح تكون قيمته تلقائيه تحدد بناءًا
على النص الّي فعلاً كتبته كم حرف (عداد)
يعني اوكي كحد الأقصى الرمز من 20 حرف بس اني رمزي فعليًا من 15 حرف
من موقع 202 الى ... : بداية النص
E 200 14 00
هنا حددت الرسالة تكون بموقع 200
والحد الأقصى مثلاً 14 الّي يكافئ 20 حرف
وبموقع 201 اصفر العداد علمود يعّد النص صح
MOV AH,A # فانكشن الـ Input
MOV DX,200 # موقع النص
INT 21راح نبدي فقرة فقرة نوضح الكود الخاص بيها
أ.
علمود نعرض رسالة نستخدم الفانكشن
AH = 9
والرسالة الّي اعرضها بموقع اني محدده DS:DX
ويجب ان تنتهي بـ $
E 100 "ENTER YOUR NAME : $"
هنا دخلت رسالتي بالموقع 100
اريد اعرضها ؟
MOV AH,9 # فانكشن الـ Display
MOV DX,100 # موقع النص
INT 21Assignment :
1)
نكدر نلخص المطلوب منا بخمس فقرات
أ. رسالة تطلب من اليوزر إضافة اسمه - اختياري -
ب. اليوزر يكتب اسمه
ج. البرنامج ينهي اسم اليوزر تلقائيًا بـ $
د. انزل سطر
هـ. طباعة الاسم
C:\>DEBUG
- E 100 "ENTER YOUR NAME : $"
- E 200 14 00
- E 300 D A 24
- A 400
MOV AH,9
MOV DX,100
INT 21
MOV AH,A
MOV DX,200
INT 21
MOV BL,[201]
MOV BH,0
MOV BYTE PTR [BX+202],24
MOV AH,9
MOV DX,300
INT 21
MOV DX,202
INT 21
HLT
- G = 400 425