fa
Feedback
رفع الإبهام عن مصائب المايكرو العظام

رفع الإبهام عن مصائب المايكرو العظام

رفتن به کانال در Telegram

نمایش بیشتر
کشور مشخص نشده استدسته بندی مشخص نشده است
212
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-47 روز
-430 روز
آرشیو پست ها
هـ. نزلنا سطر الحمدللرب هسه اطبع النص الّي كتبته بالفقرة ب, وين كتبنا النص بوقتها ؟ بالموقع 200 لكن فعليًا حسب ما تكلمنا من أي موقع راح يبدأ النص ؟ من موقع 202 فـ اطبع من هذا الموقع مو من 200MOV DX,202 INT 21 هنا ما كتبت MOV AH,9 لان قبلها اني ايضا مستخدم نفس الفانكشن ميحتاج استدعيها مره ثانية

د. علمود انزل سطر فـ اسمبلي شوي هواي غبي فـ اذا تكله انزل سطر ينزل بنفس المستوى الي هوه بي, يعني شلون ! Mustafa Diaa^ ^ ينزل
د. علمود انزل سطر فـ اسمبلي شوي هواي غبي فـ اذا تكله انزل سطر ينزل بنفس المستوى الي هوه بي, يعني شلون ! 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 21

Assignment : 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

ASCII-Conversion-Chart.pdf0.09 KB

1- DOS IO Interrupts.pdf1.34 KB