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

[ تمت الإجابة ]مبتدى وعدة أسئلة بسيطة

بدأه ringawy في 29 أكتوبر 2009 · 5 رد · 1,536 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

بســم الله الـرحمــن الرحيــم

أنا عضو قديم فى هذا المنتدى العظيم

وحاولت من قبل تعلم لغة الاسمبلى بشتى الطرق جمعت قدر كبير من الكتب التعليمية والوثائق والمحاضرات

ولكن بلا جدوى

بسبب انى لا أعرف من أين أبدء

فأرجو من من لة خبرة فى المجال أن يكتب لنا عن هذة اللغة وكل ما يخصها وخصائصها ومميزاتها وإستخدامتها

ومعلومات بسيطة عن الكومبلير الخاص بها وبعد المعاومات التى تفتح لنا أبواب لغة الأسمبلى

حيث أننى ظللت أبحث فترة حوالى شهر عن كومبايلر لها

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

ولكم جزيل الشكر

#2
ringawy كتب:

فأرجو من من لة خبرة فى المجال أن يكتب لنا عن هذة اللغة وكل ما يخصها وخصائصها ومميزاتها وإستخدامتها

ومعلومات بسيطة عن الكومبلير الخاص بها وبعد المعاومات التى تفتح لنا أبواب لغة الأسمبلى

يا صديقي هذا أكثر من مجرد عدة أسئلة بسيطة وهذا سبب نزوح ذوي الخبرة عن الإجابة حتى الآن لأن لديهم مشكلة وهي "time factor".. حاول تبحث عن أجوبة أسئلتك ونحن نوضح لك الغامض منها أما الأسئلة الواسعة هذه..

ringawy كتب:

حيث أننى ظللت أبحث فترة حوالى شهر عن كومبايلر لها

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

وليه شهر بس؟

بمجرد ما تكتب كلمة أسمبلي باللغة العربية ستجد منتدى الفريق العربي في أول 10 روابط ومنه في عدة أيام ستكون قد بدأت!

بكل الأحوال محث الدوس والأمر debug فعلياً ليس لكتابة الأسمبلي وتطبيقها على وجه الدقة، وإنما مخصص للتنقيح بشكل أساسي، وتنقيح تطبيقات COM و EXE الخاصة بـ 16 بت بشكل أدق.

لكتابة تطبيق أسمبلي يلزمك Assembler، وهناك عدة (كل الطرق تؤدي إلى روما)، لديك MASM, TASM, FASM, ..

الأكثر انتشاراً هو MASM

الذي يحمل العديد من المزايا التي طرحت مؤخراً هو FASM

وهناك من سيقول لك TASM..

سيكون هناك اختلافات طفيفة بين كل شفرة مجمع وآخر تتعلق بكيفية معالجته لبعض المعطيات، لذلك اختر ما تجده واضح ويناسبك في البداية..

لتحقق هذا تستطيع مثلاً دخول موقع FASM وتحميل الأمثلة والإطلاع عليها بشكل عام.. ونفس الأمر لـ MASM.. والبحث في Google عن مقالات في TASM فليس له مكان محدد لإيجاده للأسف

أمر آخر هو أن الأسمبلي تستطيع بها كتابة تطبيقات لمعالجات مختلفة، تبعاً لهذه المعالجات (من القديم مثل 8086 حتى الحديثة منها..) تختلف في نواحي أهمها

1. طول المسجلات (registers)

16 بت قد تجد عبارات تقول asm16.. أو 16bit أو masm16.. أو tasm16

هذا يعني أن التطبيق لمعالج 16بت طول مسجلاته 16بت والمسجلات تؤثر في عملية العنونة، كلها زادت كلما أصبحت العنونة أفضل، وكلما زادت كلما أصبحت المعالجة أفضل لكون ازدياد سعة التخزين فيها

2. التعليمات instructions/operands

فقد تم إضافة بعض التعليمات بين كل جيل معالجات وآخر.. ليس دائماً لذلك الإضافات بسيطة وواضحة، يمكنك مشاهدتها في دليل Intel المجاني الذي تستطيع تحميله من موقع Intel.

لذلك يجب أن تعلم أن masm16 يختلف عن masm32

ونفس الأمر للبقية.

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

كبداية، اختر مجمع مناسب لك، ابدأ ببيئة 16بت حتى تتقن استخدام التعليمات وكيفية كتابة البرامج ما أمكن، حاول بعدها الانتقال تدريجياً إلى 32بت وواظف على كتابة تطبيقات pure win32asm أي تعليمات فقط وإجرائيات تعتمد على التعليمات فقط حتى تتقن الكتابة لـ 32بت

يمكنك بعدها التفكير بالانتقال إلى أمور أوسع كاستخدام Windows API لو كنت تريد البرمجة على نظام Windows.

عذرا ً إن زدت من تشتيكك، وقد بيّنت عذري :blush:

(راجع مواضيع المنتدى أيضاً ففيها مشاركاك من سلفك من المبتدئين وإجابات عديدة)

بالتوفيق.

تم تعديل هذه المشاركة بواسطة Xacker في 30 أكتوبر 2009 في 06:42

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

السلام عليكم

كنت متلك اخي اجمع العديد من الكتب واحتار من اقرأ او امل القرائة دون فهم

بدأت الاسمبلي من كتاب الهندسة العكسية ( متوفر في موقع الفريق العربي للهندسة العكسية ) قسمت فقرة الاسمبلي الى عدة فقرات كل يومان ادرس فقرة واسجل ملاحضات تم افهمها بنسبة ضئيلة وانتقل للاخرى حتى بدأت تضهر عندي خلفية بسيطة جدا في الاسمبلي

بعدها وجدت كتاب مختص في الاسمبلي عربي ( في المرفقات ) اعجبني الشرح فيه واكتر منه التمارين قسمته ايضا لفقرات لكن هده المرة لا انتقل للفقرة التالية الا بعد فهم الفقرة الاولى وان لم افهم الجأ الى هدا القسم لاطرح سؤالي . استمريت هكدا حتى اكملت الكتاب وبدأت ابحت عن السورسات المكتوبة على 16 بت واحاول فهمها + وجدت كتب فرنسية قيمة جدا استفدت منها كتيرا ( في المرفقات ) والحمد لله اصبح لدي مستوى جيد في الاسمبلي 16 بت تم انتقلت للبرمجة بالاسمبلي 32 بت لعمل برامج دات نوافد على الويندوز باستعمال دوال الـAPI .

بدأت الاسمبلي 32 بت من دروس الاخ الكريم Xacker وفهمت كيف تتعامل النوافد مع الرسائل وكيفية استعمال دوال الـApi ومن بعض الكتب الفرنسية ايضا ومن موقع win32assembly.online.fr .......

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

بالنسبة للمترجم ادا كنت ستعمل برنامج على 16 بت استعمل masm

اما ادا كنت تعمل برنامج على 32 بت باستعمالapi فعليك استعمال masm32 مع اضافة winasm ide كمساعد

Debuger الموجود في الدوس يمكنك من خلاله عمل برامج com بسيطة ايضا

بالنسبة لترجمة برامج 16 بت ، فقم بكتابة الكود في ملف نصي تم احفضه بامتداد .asmفي نفس المجلد الموجود فيه masm وlinker تم ادخ للدوس واتجه بالامرcd الى المجلد الموجود به المترجم والبرنامج الدي كتبته تم اكتب الامر

;masm fichier

fichier تعني اسم الملف دون امتداده

ان لم يكن هناك اخطاء فاكتب الامر

;link fichier

ارجع للمجلد ستجد البرنامج قد تمت اضافته

اما اكواد الاسمبلي 32 بت فالامر واضح من خلال Winasm

في كتاب مدخل للهندسة العكسية ستجد شرحا لكيفية اعداده مع masm32 والترجمة

فقط ملاحظة اخيرة كنت قد وقعت بها وهي ترجمة اكواد 16 بت على مترجم 32 بت ، لا تقم بهدا العمل قد يترجم البرنامج لكن لا ينفد او يضهر خطأ ولا تعرف انت السبب لهدا خصص لكل فئة مترجمها .

بالتوفيق لك

AsM.rar

تم تعديل هذه المشاركة بواسطة aderfiad في 31 أكتوبر 2009 في 16:12

#4

هل اللغة الانجليزية ضرورية؟ ان كنت اعرف بعض المصطلحات هل هذا يكفي؟

#5
nose21 كتب:
هل اللغة الانجليزية ضرورية؟ ان كنت اعرف بعض المصطلحات هل هذا يكفي؟

يجب أن تكون بين جيد-جيد جداً

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

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6

يكفيني شرفا ان رديت على استفساري و الله ليست مجاملة (متابع لمواضيعك)

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

على العموم كل ما فهمت من كلامك ان الانجليزية ضرورية

مشكورر مرة اخرى و نتمنى ان نرى حركة في هذا القسم لان الحركة تترك المبتدأ يتحمس

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