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

الاسمبلي و MSIL

مغلق
بدأه Firas Sadiyyah في 21 مايو 2002 · 6 رد · 1,230 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخواني،

هل تقوم لغة الـ MSIL بتحويل كودها المصدري إلى لغة الآلة مباشرة أم أنها تمر على الأسمبلي. وهل يمكن تعلمها كما في الأسمبلي؟ أم يجب استعمالها من خلال انترفيس مثل C# .NET .

وشكراً:)

#2

انا تحيرت قليلا من السؤال في البداية و لكني اعتقد اني فهمت قصدك

في البداية لغة Assembly هي لغة الالة مكتوبة بكلمات يفهمها الانسان، اي كل تعليمة في ملف Assembly هو عبارة عن نفس التعليمة بالارقام في لغة الالة.

بالنسبة ل MSIL هي عبارة عن لغة الة ارقى قليلا، و يمكننا كتابة التعليمات بها مباشرة في ملف نص من نوع IL و بواسطة ال Assembler المتوفر بداخل ال Microsoft .NET Framework يمكننا ترجمتها الى ملفات EXE لنواة NET. مباشرة.

الملفات التنفيذية في .نت ليست حقيقة بلغة الالة الخاصة بالجهاز و لكنها بلغة الالة الخاصة بمايكروسوفت و التي تترجم الى لغة الالة في الجهاز لحظة تشغيل الملف عبر نظام يسمى JIT و يتم ذلك في الخلفية.

بالطبع يمكنك ترجمة ملف ال EXE المكتوب بلغة MSIL الى لغة الالة الخاصة بالجهاز عبر ملف اسمه ngen.exe موجود ايضا في ال Microsoft .NET Framework.

#3

أخي خضر، الله يعطيك العافية على الشرح:) ، وعن نفسي بأسف كتير لأني ما أوضحت السؤال:o .

على كلٍ، يلي حضرتك فهمته تمام، وأنا أقصد أنه يوجد أشخاص يكتبون برامج بلغة الـ Assembly ، فهل هذا ممكن بالنسبة للغة MSIL !

شكراً حزيلاً:D

:D :D ;)

#4

أخ خضر ...

هل معنى كلامك أن البرامج المعمولة على تقنية دت نت لن تعمل على نسخ ويندوز لا تدعم هذه التقنية(ذلك لأن ملف التشغيل ليس حقيقيا بلغة الآلة) - وهل يمكنني بناء برنامج بالسي# ليعمل مثلا على ويندوز 98 !

معلش الاسئلة قد تبدو غبية:o لكنني جديد عالدت نت.

#5

لا يمكن للبرامج العمل بدون وجود محرك .نت على الجهاز، و هذا المحرك يتوفر لنظام تشغيل Windows 98, ME, NT4, 2000, XP, .NET, Longhon و حتى لنسخ Windows 64 الجديدة و نسخ Windows CE التي تعمل في اجهزة الكفية و الموبايل و غيرها

المحرك يفترض ان يكون هناك ليحول الملفات قبل تشغيلها او لحظة تركيبها في الجهاز حيث يمكن بناء ملف ترجمة لملف ال exe لحظة التركيب في الجهاز (بصورة الية من البرنامج)

و لكن محرك .نت (النواة) و حجمه 20 ميغابايت يجب ان يكون هناك.

و بالطبع لا يجب ان تكون استخدمت خاصية في برنامجك موجودة على Windows XP فقط و تطلب منها ان تعمل على Windows 98 فاذا استخدمت امور غير موجودة في نسخ الاقدم فلن تعمل البرامج في تلك النسخ

نفس الشيئ يتعلق عند نقل البرامج بين Windows و Unix في FreeBSD و Linux حيث اذا استخدمت كائنات في Windows غير موجودة في Unix فلن تعمل و بالعكس

#6

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

اقتباس
المحرك يفترض ان يكون هناك ليحول الملفات قبل تشغيلها او لحظة تركيبها في الجهاز حيث يمكن بناء ملف ترجمة لملف ال exe لحظة التركيب في الجهاز (بصورة الية من البرنامج)  

أخ خضر

يعني انه البرامج اللي مصممة بواسطة visual c 6 لازم تشتغل في بيئة دوت نت لأنها مترجمة وجاهزة ومحوله الى لغة الآلة؟

ولماذا يحول البرنامج الى ال MSIL ومن ثم الى لغة الآلة ، لماذا لا يحول تلقائيا الى لغة الآلة كما في باقي اصدارات ويندوز :confused: :confused: :confused:

وشكرا (f)

#7

برامج Visual C++6 راح تشتغل في بيئة نظام التشغيل و ليس في .نت

لغة MSIL و بيئة .نت هدفها فصل المعالج عن البرامج، بحيث تبني برنامج لمعالج بنتيوم مثلا و يعمل البرنامج في معالجات ايتانيوم او المعالجات غيرها بدون الحاجة الى اعادة ترجمة

بالطبع هناك مميزات كثيرة اخرى اظن تحدثت عنها في الرسائل سابقا

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

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