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

لماذا يهمل المبرمجين لغة الاسمبلى ؟!؟

رائج
بدأه احمد غريب في 3 يوليو 2005 · 94 رد · 19,030 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#26

مادمت استطيع تجنب استخدام الاسمبلي في معظم الاحيان و استغلال خبرتي في ال C او ال ++C فاين المشكلة فهذا افضل و اوفر في الوقت

ببساطة اذا وضعنا الصعوبة جانبا حجم كود الاسمبلي في المتوسط اكبر من حجم كود اي لغة اخرى اي عدد السطور اكبر اي نسبة الاخطاء اكبر اي وقت في الكتابة اكبر اي عدد اكبر من المبرمجين لانجاز مهمة مبرمج واحد اي انتاجية اقل و تكلفة اعلى ----> فشل ذريع في المشاريع المتوسطة و الكبيرة

و هذا هو سبب ظهور اللغات الاخرى فإذا كانت ال Assembly تصلح لكل شئ فلماذا ظهرت ال C و لماذا ظهرت ال ++C و ال ADA ال Java و ال Fortran و ال Pascal و ال Delphi و ال Scheme و Python و #C و ال Basic و ...... القائمة اللانهائية من اللغات. فنحن لسنا هنا بصدد اثبات سهولة الAssembly فهذا موضوع محسوم منذ ظهر اللغات الاعلى في اواخر الستينات

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#27
اقتباس
أصلا لماذا تم اختراع اللغات العالية المستوى؟ اليس لتسهيل كتابة و debug البرامج؟

فلماذا نرمي كل هذا التاريخ في الزبالة و نعود الى اساليب العصر الحجري في معالجة الأخطاء؟

بس في حالات لابد من الاسمبلي فيها لذلك سترمي هذا التاريخ في الزبالة غصب عنك :wacko: :wacko: لان الهدف الاساسي هو

كامل المهمة باقل ثمن مالم فلا بد من ركوب الصعاب لان كفاءة البرنامج اهم من التاريخ العريق

ان كل جامعات العالم المتطور لم ترم الاسمبلي في الزبالة لهذا السبب

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#28

انا ذكرت من قبل يا اخ حسن الله يهديك لو كانت المشكله هى خلل فى منطق البرنامج فلن تستطيع حلها لا بالاسمبلى ولا بالسى بلس بلس, نحن نتحدث عن المشاكل الشائعه, مثلاُ لماذا قفز البرنامج إلى ذاكره غير موجوده, لماذا هنج البرنامج عندما حاولنا فتح ملف من نوع معين, ما هو سبب بطئ البرنامج الخ..

انا لم اقل ان الاسمبلى يصنع المعجزات ويخليك تشوف اشياء غير موجوده, او انك تستطيع بالاسمبلى تتبع الشفره المصدريه لبرنامج مثل الفوتوشوب بضخامته, ولكن إذا كان هناك مشكله معينه فى الكود تسبب بطئ البرنامج او خلل فى البرنامج تستطيع ان تحلها , كما انك فى حالات كثيره تستطيع ان تقوم بعمل optimization لفقرات معينه فى الكود من ما يجل برنامجك اقوى, لان الكمبايلر مهما كانت قدراته فلن يستطيع ان يحلل جميع الحالات كما يفعل الانسان...

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

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

#29
romanof كتب:
بس في حالات لابد من الاسمبلي فيها لذلك سترمي هذا التاريخ في الزبالة  غصب عنك  :wacko:  :wacko:  لان الهدف الاساسي هو

كامل المهمة  باقل ثمن مالم فلا بد من ركوب الصعاب لان كفاءة البرنامج اهم من التاريخ العريق

ان كل جامعات العالم المتطور لم ترم الاسمبلي في الزبالة  لهذا السبب

لم يقل احد ان الAssembly غير مهم و لكن اللجوء اليه يكون عند الضرورة عندما تجد ان كل السبل اغلقت امامك من جميع اللغات التي تعرفها و بقى امامك الAssembly فقط و هذا يحدث في الاغلب في كتابة تعريفات الHardware و الMicrocontrollers و في هذه الحالات ستجد انك تكتب Assembly مختلف قليلا عن ال x86 الذي تعلمته بل ستضطر لمعرفة بعض الاشياء و الاختلافات بين ال x86 code و الassembly المستخدم على هذا النوع من الhardware

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#30
اقتباس
لم يقل احد ان الAssembly غير مهم و لكن اللجوء اليه يكون عند الضرورة عندما تجد ان كل السبل اغلقت امامك من جميع اللغات التي تعرفها و بقى امامك الAssembly فقط و هذا يحدث في الاغلب في كتابة تعريفات الHardware و الMicrocontrollers و في هذه الحالات ستجد انك تكتب Assembly مختلف قليلا عن ال x86 الذي تعلمته بل ستضطر لمعرفة بعض الاشياء و الاختلافات بين ال x86 code و الassembly المستخدم على هذا النوع من الhardware

الله بنور عليك يا هندسة هو ذا المفيد

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#31

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

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

نقاط قوه لغه مثل السى بلس بلس هى انك تستطيع عمل مشاريع كبيره بفريق من المبرمجين, تقليل الاخطاء فى البرنامج الخ

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

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

#32
احمد غريب كتب:
انا ذكرت من قبل يا اخ حسن الله يهديك لو كانت المشكله هى خلل فى منطق البرنامج فلن تستطيع حلها لا بالاسمبلى ولا بالسى بلس بلس, نحن نتحدث عن المشاكل الشائعه, مثلاُ لماذا قفز البرنامج إلى ذاكره غير موجوده, لماذا هنج البرنامج عندما حاولنا فتح ملف من نوع معين, ما هو سبب بطئ البرنامج الخ..

انا لم اقل ان الاسمبلى يصنع المعجزات ويخليك تشوف اشياء غير موجوده, او انك تستطيع بالاسمبلى تتبع الشفره المصدريه لبرنامج مثل الفوتوشوب بضخامته, ولكن إذا كان هناك مشكله معينه فى الكود تسبب بطئ البرنامج او خلل فى البرنامج تستطيع ان تحلها , كما انك فى حالات كثيره تستطيع ان تقوم بعمل optimization  لفقرات معينه فى الكود من ما يجل برنامجك اقوى, لان الكمبايلر مهما كانت قدراته فلن يستطيع ان يحلل جميع الحالات كما يفعل الانسان...

لقد ذكرت في اول مشاركة لك في هذا الموضوع المثال على برنامج ضخم 100 ميجا او شئ من هذا القبيل و الأن تقول ان هذه البرامج الكبيرة لن تستطيع تتبع الكود فيها لمعرفة الخطأ لضخامة الكود....

!!!!!!!!!!!!!!!!!!!!!!!!!

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#33

استخدام الAssembly في بعض التطبيقات لتسريع اجزاء من الاكواد مثل تطبيقات الGraphics لا جدال فيه و متفق عليه و لكن لن يتعدى هذا نسبة 5% من الكود لاقصى تقدير.

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#34
bashmohandes كتب:
لقد ذكرت في اول مشاركة لك في هذا الموضوع المثال على برنامج ضخم 100 ميجا او شئ من هذا القبيل و الأن تقول ان هذه البرامج الكبيرة لن تستطيع تتبع الكود فيها لمعرفة الخطأ لضخامة الكود....

!!!!!!!!!!!!!!!!!!!!!!!!!

ياباش مهندس تتبع البرنامج بالكامل يختلف عن إيجاد خطاء فى البنامج, يعنى من الصعب عليا مثالاُ اضيف اجزاء كبيره فى برنامج مثل الفوتوشوب لكن إذا كان هناك خلل, إن شاء الله يكون البرنامج جيجابيت تستطيع ان تحل المشكله...

يعنى فى فرق بين تتبع شفرة البرنامج حتى تفهه بالكامل وبين إيجاد خطاء فى برنامج

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

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

#35

انا لم اقل ان الاسمبلي غير مفيد, و لكن تصحيح برنامج 100 ميجا بالاسمبلي أمر غير معقول.

انا دائما انظر الى كود الاسمبلي في الـ debugger (أتحدث هنا عن ++VC) و هو يساعد أحيانا, رغم اني في الحقيقة انظر اليه من أجل التعلم و ليس من اجل تتبع الخطأ.

المهم ان تصحيح الأخطاء في السي بلص بلص بالتأكيد اسهل من تصحيحها في الاسمبلي.

#36
bashmohandes كتب:
استخدام الAssembly في بعض التطبيقات لتسريع اجزاء من الاكواد مثل تطبيقات الGraphics لا جدال فيه و متفق عليه و لكن لن يتعدى هذا نسبة 5% من الكود لاقصى تقدير.

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

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

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

#37

اعتقد ان مثل هذه التطبيقات مثل التشفير و الضغط و الخوارزميات في الحالات الطبيعية و المتقدمة ايضا لن تجد فارق تقريبا عند كتابتها بال Assembly او ال C بل ستجد ان كتابتها بال C او ال ++C أفضل من حيث فهم الكود

حاول مثلا ان تكتب Elliptic curves بال Assembly أو حتى RSA ثم اعد كتابته بال ++C و انظر فرق السرعة بينهما لن تجد هناك فارقا يستحق ان تستغرق في كتابة البرنامج شهرا بدلا من عدة ايام.

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#38
hasan_aljudy كتب:
انا لم اقل ان الاسمبلي غير مفيد, و لكن تصحيح برنامج 100 ميجا بالاسمبلي أمر غير معقول.

انا دائما انظر الى كود الاسمبلي في الـ debugger (أتحدث هنا عن ++VC) و هو يساعد أحيانا, رغم اني في الحقيقة انظر اليه من أجل التعلم و ليس من اجل تتبع الخطأ.

المهم ان تصحيح الأخطاء في السي بلص بلص بالتأكيد اسهل من تصحيحها في الاسمبلي.

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

مثلاُ إذا كان البرنامج يصل إلى نقطه معينه ثم يتوقف بدون سابق إنذار كيف ستحل المشكله فى السى بلس بلس, لا بد انك ستقوم بتتبع الكود حتى تصل إلى مكان المشكله, ولكن فى الاسمبلى لن تحتاج إلى فعل ذلك, كل ما عليك عمله فى هذه الحاله ان تدع البرنامج يعمل حتى يتوقف ثم تنظر إلى مؤشر البرنامج اين توقف, فى هذه الحاله عرفت على الاقل اين توقف البرنامج فى اى function بالتحديد, وبعد ذلك تستطيع إصلاح الخطاء فى الشفره الاصليه إن اردت ذلك, او يمكنك تتبع البرنامج فى الـDebugger لتعرف سبب إحتواء مؤشر البرنامج على قيمه غير صالحه وتغيرها بالقيمه التى ينبغى ان تكون..

ارجو ان تكون الفكره وضحت..

والسلام عليكم

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

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

#39

يالا شباب تعبنا من الا نتظار وينك ابو غريب وينك باشمهندس خشوا في بعض خلونا نستمتع

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#40
bashmohandes كتب:
اعتقد ان مثل هذه التطبيقات مثل التشفير و الضغط و الخوارزميات في الحالات الطبيعية و المتقدمة ايضا لن تجد فارق تقريبا عند كتابتها بال Assembly او ال C بل ستجد ان كتابتها بال C او ال ++C أفضل من حيث فهم الكود

حاول مثلا ان تكتب Elliptic curves بال Assembly أو حتى RSA ثم اعد كتابته بال ++C و انظر فرق السرعة بينهما لن تجد هناك فارقا يستحق ان تستغرق في كتابة البرنامج شهرا بدلا من عدة ايام.

صدقنى الفرق ليس كما ذكرت يعنى البرنامج الذى تكتبه بلغه السى فى ساعه تستطيع ان تكتب مثله فى الاسمبلى فى ساعه قد تقل وقد تزيد, طبعاً السى بلس بلس ليس محلاً للمقارنه هنا لانها لغه مختلفه فى طريقة كتابتها واهدافها.

كما ذكرت سابقاٌ لغة الاسمبلى فى بيئه 32 تغيرت تماماُ واصبحت فى نفس سهولة السى إن لم تكن اسهل, وكما قلت سابقاُ انا اجدها اسهل من لغة السى , ولكن السمعه التى اكتسبتها على ايام الدوس ما زالت تلاحقها للاسف ..

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

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

#41

أيضا استخدام الAssembly في اكتشاف الاخطاء لا يجدي من وجهة نظر اخرى

اذا فرضنا جدلا ان في احد البرامج المكتوبة بالC في function معينة و كانت هذه الfunction مسبوقة بinline و كانت تحتوي على خطأ في pointer مثلا فان الcompiler لوجود كلمة inline فانه ينقل الmachine code الخاص بها في كل مكان استخدمت في الfunction و هذا لتوفير عمليات الjmp اذن اصبح الخطأ الواحد عدة اخطاء يستغرق تصحيحه و متابعته في الassembly وقت لا يعلمه الا الله بينما يستغرق تصحيحه في الC فقط تصحيح الخطأ في الfunction مرة واحدة

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#42
اقتباس
مثلاُ إذا كان البرنامج يصل إلى نقطه معينه ثم يتوقف بدون سابق إنذار كيف ستحل المشكله فى السى بلس بلس, لا بد انك ستقوم بتتبع الكود حتى تصل إلى مكان المشكله, ولكن فى الاسمبلى لن تحتاج إلى فعل ذلك, كل ما عليك عمله فى هذه الحاله ان تدع البرنامج يعمل حتى يتوقف ثم تنظر إلى مؤشر البرنامج اين توقف

لا, في السي بلص بلص تترك البرنامج يعمل حتى يحصل الكراش و عندها سيتدخل الديبجر و يخبرك اين توقف البرنامج.

كما قلت, اي debugger يحترم نفسه يعطيك هذه القابلية. :)

#43
اقتباس
كما ذكرت سابقاٌ لغة الاسمبلى فى بيئه 32 تغيرت تماماُ واصبحت فى نفس سهولة السى إن لم تكن اسهل, وكما قلت سابقاُ انا اجدها اسهل من لغة السى , ولكن السمعه التى اكتسبتها على ايام الدوس ما زالت تلاحقها للاسف ..

التغير هنا تغير نسبي فما كان صعبا في Assembly ايام الDOS اصبح سهلا في Assemblyال32 . و لكن هل الحياة توقفت عند تطبيقات ايام الDOS هل كان هناك Web و multi-tier applications ؟ هل احجام البرامج مازالت بنفس الحجم؟

اذن فالمشكلة نسبيا مازالت موجودة فالبرامج التي تقوم بكتابتها بال ++VC او ال Java او ال#C في ساعات ستستغرق اسابيع لكتابتها بال Assembly

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#44

هذه ساحة دردشة وليس منتدى!! حاول الضغط على مفتاح التحديث كل دقيقة لتحصل على رد جديد!!

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

هذا ما يفعل السهر...

عموما،، أتمنى تعلم الأسمبلي (ليس لدي أي فكرة عن ماذا سأفعل بها) لكن أحس أنها ستفيدني ولو بتحريك عقلي!! المفيد أني أدركت من أين أحصل على المعونة وقت الحاجة!!

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

تصحيح: فاعل مرفوع وعلامة رفعه الواو!!! فعلا سهرانين!!! شكرا فلاديمير!!!

تم تعديل هذه المشاركة بواسطة أبومازن في 4 يوليو 2005 في 04:50

#45
اقتباس
(فاعل مرفوع بالضمة)

خطأ وعلامة رفعه الضمة :lol: :lol:

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#46
bashmohandes كتب:
أيضا استخدام الAssembly في اكتشاف الاخطاء لا يجدي من وجهة نظر اخرى

اذا فرضنا جدلا ان في احد البرامج المكتوبة بالC في function معينة و كانت هذه الfunction مسبوقة بinline و كانت تحتوي على خطأ في pointer مثلا فان الcompiler لوجود كلمة inline فانه ينقل الmachine code الخاص بها في كل مكان استخدمت في الfunction و هذا لتوفير عمليات الjmp اذن اصبح الخطأ الواحد عدة اخطاء يستغرق تصحيحه و متابعته في الassembly وقت لا يعلمه الا الله بينما يستغرق تصحيحه في الC فقط تصحيح الخطأ في الfunction مرة واحدة

إيه يا عم الباش مهندس هو انا كل ما حجيب مثال حتحرقهولى بمثال مضاد,, طيب إفرض إنه inline جميل حتكون على الاقل عرفت مكان الخطاء, وبعدين فى إمكانيات فى الdebuggerالحديثه إلى تخليك تغير مجموعة اكواد متشابهه فى الملف كله مره واحده, لكن مش هى دى المشكله, المشكله هى إنه فى حجات من الصعب شرحها لو الواحد مش متعمق فيها.

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

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

#47

طالما انكما توقفتما عن الكتابة نريد الخلاصة

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#48

لو عاوز تتعمق نتعمق, مفيش اي مانع على الاقل يبقى المناظرة مفيدة

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#49
اقتباس
المشكله هى إنه فى حجات من الصعب شرحها لو الواحد مش متعمق فيها.

اشك ان ان المهندس مش متعمق يالا هات وخلصنا اما اشوف الباشمهندس حيقول ايه

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#50

طيب انا عايز اعرف خلاصة الموضوع معاك يا باشمهندس هل إنتا ضد تعلم لغة الاسمبلى.؟ هل إنتا شايف إنو ما فيش داعى الواحد يتعلمها طالما الظروف مش مضطراه...

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

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

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

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