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

[ تمت الإجابة ]ما عمل هذا الكود ؟

بدأه hamany-pirlo في 4 يناير 2010 · 2 رد · 712 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي سطر كود في الأسمبلي و أريد شرح له ، كيفية عمله ، و مثال لإستعماله في ال C

بس أهم شيء الشرح.

leal     8(%ebx,%edx,2), %ecx

تم تعديل هذه المشاركة بواسطة hamany-pirlo في 4 يناير 2010 في 22:37

Program every day for 20 years and you will become a good programmer. Program every day for 10 years and study algorithms on the side and you will become a great programmer !

على الأقل هذا اللي سمعته ...

#2

مممم اخي العزيز..

اولا من المفروض ان تحدد المجمع و اسلوب التمرير AT&T ام انتل؟؟

لكن انا افرض انك تستعمل GNU AS (لانه الوحيد الذي يستعمل هذا النوع من syntax).

حسنا لنر

leal     8(%ebx,%edx,2), %ecx

leal ليل يا ليل :D لاحظ انها lea التي نعرفها في الاسمبلي العادي و l تعني Long لان AT&A لا تستعمل byte ptr, word ptr, dword ptr and qword ptr بل تضيف اللاحقة b,w,d,q في نهاية الامر

لاحظ ايضا ان مسجلات الاستدلال base+index في حالة التعامل مع جدول array يتم التعامل معها في AT&T بالاقواس على عكس Intel التي تفضل ان تستعمل العوارض (الجانبية للقاح انفلونزا الخنازير :D) []

هذا يعني انك اذا كتبت leal (%ebx,%ecx),%eax في AT&T فانها توافق lea eax,[ebx+ecx] على انتل

lea     eax,[ebx+ecx]       -->  leal    (%ebx,%ecx),%eax

AT&T:  _x(%ebx,%eax,8)
Intel: [ebx + eax*8 + _x]

السطر leal 8(%ebx,%edx,2), %ecx يكافئ اذن [ebx + edx*2 + 8]

اااه تذكرت.

الصياغة العامة هي

 section:[base + index*scale + disp] تتحول الى section:disp(base, index, scale)

تم تعديل هذه المشاركة بواسطة fkugd2003 في 5 يناير 2010 في 03:54

3

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#3

مشكور أخوي و يعطيك العافية على هذا الشرح و بأسلوب جميل أيضا :happy:

Program every day for 20 years and you will become a good programmer. Program every day for 10 years and study algorithms on the side and you will become a great programmer !

على الأقل هذا اللي سمعته ...

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