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

الحقوووني بسرعه عندي امتحان (سؤال)؟

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

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

أنا طالب في كلية الحاسوب في جامعة في الاردن

غداً لدي امتحان لمادة ( لغة اسمبلي)

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

على العموم اثناء دراستي واجهتني صعوبة في فهم نقطة

وهو " Overflow flag"

من دروس الاستاذ عفيف قرأت عن ((بعض الحالات التي تأخذ OF القيمة 1))

موجب (+) موجب = سالبة

سالب (+) سالب = موجبة

موجب (-) سالب = سالبة

سالب (-) موجب = موجبة

ولكن عندما جربت الكود التالي

mov al,0Ah

mov bl,5h

العدد الأول يعتبر سالب ( لانه msb يساوي 1)

العدد الثاني يعتبر موجب ( لانه msb يساوي 0)

عند تنفيذ الامر

sub al,bl

الناتج يكون

al =05h

والناتج عدد موجب

وعند مشاهدة الحالةالتي أشار اليها الاستاذ عفيف ان of تاخذ القيمة 1

سالب طرح(-) موجب = موجبة

عندما تتبعت البرنامج عن طريق الامر ( td)

debug

وجدت أن العلم of = 0 مع انه المفروض يكون 1

لذا شكك وخربط في فهمي

نتمنى من أحد الاخوة الافاضل توضيح ووضع جميع الحالات التي تاخذ فيها of القيمة 1

وتوضيح الخطأ اذا كنت واقع بالخطأ

------------------

نرجوا المساعدة ياخوان تراني داخل على الله ثم عليكم

عندي امتحان وأريد اجيب علامة طيبة ومابي اخبص :(

انتظر المشاركة

#2
k1d كتب:
ولكن عندما جربت الكود التالي

mov al,0Ah

mov bl,5h

العدد الأول يعتبر سالب ( لانه msb يساوي 1)

العدد الثاني يعتبر موجب ( لانه msb يساوي 0)

عند تنفيذ الامر

sub al,bl

الناتج يكون

al =05h

والناتج عدد موجب

اخي ساجيبك بحكم امتحانك واذا اجابك احد الاخوان من بعدي فخذ برايه.

بما اننا نتحدث عن بايت ف 0AH تعتبر موجبة لانك ستكتبها 00001010 وتلاحظ ان MSB هي صفر. لو كنت تتحث عن NIBBLE يعني 4 بت يكون كلامك صحيح.

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#3

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

اولا اشكر الاخ عماد الخليل.

اما بالنسبة للسؤال السابق فان المسجل al يأخذ 8 بتات اي ان البت الثامنة هي المسؤولة عن الاشارة اي ان العدد 0a هو عدد موجب ,والعدد الاخر هو ايضا موجب

عدد موجب - عدد موجب

يمكن ان تكون النتيجة موجبة اذا كان العدد الاول اكبر من الثاني ويمكن ان تكون سالبة اذا كان العدد الاول اصغر من الثاني ويمكن ان تكون النتيجة صفرا اذا كان العدد الاول يساوي العدد الثاني

حسب سؤالك النتيجة يجب ان تكون موجبة وقيمتها 5

OF=0

انظر الحل:

00000101=00000101-00001010

ملاحظة: يجب ان نأخذ 8 بتات لاننا نستخدم المسجلات AL , BL

ارجو لك النجاح في الامتحان

#4

الحمدلله جاء بالامتحان واحد سهل ومتشابه وعدينا

شكرا لجميع لاخوان الذين ساعدوني

تم تعديل هذه المشاركة بواسطة k1d في 15 أغسطس 2004 في 14:55

#5

سلام عليكم

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

فمثلا

greater

تختلف عن above

حداهما signed numbers

و الاخرى unsigned

wa salam

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

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