الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ضرب الارقام ؟؟ مساعده

مغلق
بدأه DataBase في 5 أغسطس 2004 · 4 رد · 1,110 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..

ارجو المساعده في فكرة هذا السؤال :

ادخال رقمين وايجاد حاصل ضربهما

الرقمين ضمن 0 الى 9 المشكله التى واجهتني هي ايجاد الناتج الاكبر

من 20 .

#2

السلام عليكم

اخى الحبيب هذه المشكله تم حلها اكثر من مره وهناك العديد من المشاركات التى تطرقت لها الرجاء البحث فى المنتدى وستجد حلول كامله لها.

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#3

السلام عليكم ورحمة الله وبركاته ...

أخى احمد غريب مشكوور على تعاونك ... ولكن لقد بحثت في المنتدى ووجدت

برنامج الاله الحاسبة ولكنه متطور شويه وقوى

انا فقط اريد الفكرة للبرنامج ... وهي الاعداد الاكبر من 9 .

ملاحظه الاعداد المدخله من 0 الى 9 فقط يعني اكبر نتيجه هي 81

ارجو المساعده واذا كان موجود في المنتدى كتابة الرابط لانى تعبت وانا ابحث

عنه ... تحملوني اخوانى ..

#4

السلام عليكم ورحمة الله وبركاته

بالنسبة لفكرة السؤال هي كالتالي:

لاستقبال عددين من لوحة المفاتيح نحن بحاجة الى المقاطعة التالية

mov ah,1

int 21h

عندما يصل المعالج للهذه الاوامر يتوقف عن العمل وينتظر الضغط على زر من ازرار لوحة المفاتيح

عندها يضغط المستعمل على رقم من الارقام في المجال من 0 حتى 9

قيمة اسكي كود للزر الذي ضغطنا عليه تخزن في المسجل al بصورة تلقائية.

ولكن للحصول على القيمة العشرية المطلوبة يجب ان نطرح من القيمة المخزنة في al القيمة 30H

اذا

mov ah,1

int 21h

sub al,30h

mov bl,al

mov ah,1

int 21h

sub al,30h

هنا تم استقبال العددين وتم تحويل الاعداد الى القيم العشرية حتى نتمكن من اجراء عملية الضرب

عملية الضرب بالشكل التالي

mul bl

هنا تم ضرب قيمة المسجل bl مع قيمة المسجل al وتم تخزين النتيجة النهائية في المسجل ax

اذا اردت طباعة القيمة النهائية عليك اجراء عملية قسمة النتيجة الموجودة في المسجل ax على عشرة للحصول على منزلة الاحاد ومنزلة العشرات ثم طباعة كل قيمة لوحدها

عملية القسمة

mov dl,10

div dl

بعد هذه العملية منزلة الاحاد موجودة في المسجل ah ومنزلة العشرات في المسجل al

للطباعة

mov bx,ax

add ah,30h

mov dl,ah

mov ah,2

int 21h

add bl,30h

mov dl,bl

mov ah,2

int 21h

للحصول على معلومات اكثر انظر الدرس الذي يتناول عمليات الضرب والقسمة في دورس تعليم لغة الاسمبلي للعبد الفقير عفيف

وشكرا

تم تعديل هذه المشاركة بواسطة afeef في 7 أغسطس 2004 في 17:38

#5

السلام عليكم ورحمة الله وبركاته .....

اخى afeef اشكر تعاونك معى ..

سوف اشاهد الدروس .. مشكوور مرة اخرى .

هذا الموضوع مغلق.

مواضيع مشابهة