• 0
0000000

ماهو الهدف من الازاحة والعمليات الحسابية

سؤال

السلام عليكم

انا اسف لكثرة الاسئلة

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

وشكرا

تم تعديل بواسطه مصطفى 36a2
تصغير الخط
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

8 إجابة على هذا السؤال .

  • 0

سؤالك عجيب !

في ماذا ستحتاج العمليات الحسابية ؟ في كل شيء !

أما بالنسبة للإزاحة فهي عملية منطقية (على الأعداد الثنائية ) , توفرها لنا المعالجات وبالتالي توجد في لغة الأسمبلي , وتستخدم غالباً كضرب بقوى العدد 2 أو القسمة الصحيحة على قوى العدد 2 ..

 

بداية البرنامج لا تكون في كتابة التعليمات بل بالتخطيط للهدف , ثم ان احتجت العمليات المنطقية( كالإزاحة مثلاً) استعملتها وان احتجت العمليات الحسابية استعملتها

هل يمكنك توضيح سؤالك أكثر ؟

 

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي إلى أي هدف تدرس الأسمبلي ؟

وهل بدأت بلغة غيرها ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سؤالك عجيب !

في ماذا ستحتاج العمليات الحسابية ؟ في كل شيء !

أما بالنسبة للإزاحة فهي عملية منطقية (على الأعداد الثنائية ) , توفرها لنا المعالجات وبالتالي توجد في لغة الأسمبلي , وتستخدم غالباً كضرب بقوى العدد 2 أو القسمة الصحيحة على قوى العدد 2 ..

 

بداية البرنامج لا تكون في كتابة التعليمات بل بالتخطيط للهدف , ثم ان احتجت العمليات المنطقية( كالإزاحة مثلاً) استعملتها وان احتجت العمليات الحسابية استعملتها

هل يمكنك توضيح سؤالك أكثر ؟

 

بالتوفيق

اخي اولا شكرا لك والله اعلم كم اعزك

بالنسبة للسؤال الاول

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

بالنسبة للسؤال الثاني

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

وشكرا لك اخي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي إلى أي هدف تدرس الأسمبلي ؟

وهل بدأت بلغة غيرها ؟

لا احب وليس من عادتي ان اكدب

1 هدفي هو صنع برنامج رات بالاسمبلي له هدفين فقط

2 الفجوال بيسك لكن كل وقتي الان اقضيه في الاسمبلي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عندما تكتب كود بالأسمبلي فستحتاج غالبا للتعامل مع البتات بشكل مباشر و العمليات التى ستقوم بها هى وضع قيمة بت معين بصفر أو بواحد تحريك بت معين لليمين أو لليسار دمج مجموعة بتات معا بالإضافة او بالفرق و هكذا.

 

الإزاحه هى عملية تحريك بت أو مجموعة بتات لليمين أو لليسار و لها نوعين الإزاحه المنطقية و الإزاحه الحسابية و عندما تدرس أسمبلي ستعرف الفرق بينهم جيدا.

 

العمليات على مستوى البت لها أهداف كثيرة و إحداها إستخدام مساحه بالذاركة مثلما تستخدم المسجل EFlags.

 

 

و الله ولي التوفيق

تم تعديل بواسطه C++er
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عندما تكتب كود بالأسمبلي فستحتاج غالبا للتعامل مع البتات بشكل مباشر و العمليات التى ستقوم بها هى وضع قيمة بت معين بصفر أو بواحد تحريك بت معين لليمين أو لليسار دمج مجموعة بتات معا بالإضافة او بالفرق و هكذا.

 

الإزاحه هى عملية تحريك بت أو مجموعة بتات لليمين أو لليسار و لها نوعين الإزاحه المنطقية و الإزاحه الحسابية و عندما تدرس أسمبلي ستعرف الفرق بينهم جيدا.

 

العمليات على مستوى البت لها أهداف كثيرة و إحداها إستخدام مساحه بالذاركة مثلما تستخدم المسجل EFlags.

 

 

و الله ولي التوفيق

 

شكرا لك اخي على تواصلك

لو ممكن اخي مثال بسيط لهدف الازاحة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
مثلا اريد ان اصنع برنامج فلاي غرض ساحتاج الضرب والقسمة

تذكر أن الجهاز الذي تستخدمه اسمه :" الحاسوب " ولم يحظ بهذا الاسم إلا لأنه يقوم في كل لحظة بالعمليات الحسابية والمنطقية

ليس الصحيح أن تقول" أريد مثال يحتاج الضرب والقسمة " بل انا أقول لك : أعطني مثل لبرنامج (متوسط الأهمية ) ولا يحتاج الضرب والقسمة :)

مثال بسيط وواقعي وقريب للفهم :

تريد رسم دائرة على الشاشة :)

ستحتاج بشكل واضح إلى تنفيذ معادلة الدائرة  , الشكل الديكارتي : x*x+y*y=r*r  هذا استخدام عملية الضرب والجمع :)

مثال آخر :

تريد

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

لنفرض أن لديك 4 مصابيح تضاء بالشكل التالي

x x x o

(حيث x يمثل المصباح المطفأ و o يمثل المضاء )

ثم تزاح الإضاءة لليسار

x x o x

x o x x

o x x x

وهكذا .. مثل الإعلانات على أبواب بعض المحلات مثلاً ..

هذا هو مبدأ الإزاحة بشكل تجميلي ..

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

أنت تعرف المسجل ax صحيح ؟ يحتوي على al  في القسم السفلي و ah في العلوي .. لنفرض أن لدينا 5 في al و 0 في ah

ماذا ستفعل لتنقل al إلى ah وتصفّر al ?

إحدى الطرق هي

mov ah,al

mov al,0

وباستخدام الإزاحة يمكن كتابة

shl ax,8

والذي سيقوم بإزاحة ax لليسار 8 بتات .. وعندها ستصبح بتات al في مكان بتات ah وستحوي al أصفاراً

 

بالتوفيق

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مفهوم شكرا لك يا اخي تعبتك معي

والشكر موصول ايضا للاستاد C++er

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .