ابي اعرف على اي الانظمة تستخدم movl وعلى اي الانظمة تستخدم mov ؟؟
ماهو الفرق بين mov و movl ؟؟
لايوجد ما يسمى movl فى معالجات انتل, يوجد movel ولكن فى معالجات موتورولا وهى تعنى move long value
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
شوف هنا :
http://www.zone-h.org/files/32/bof_stack1.txt
بعد تحليل البرنامج بالـgdb طلع لنا
movl واوامر اسمبلي تنتهي بحرف l ممكن اعرف السبب ولماذا لم تكتب بالطريقة العادية mov ؟؟
لانه يستخدم اسمبلى لبيئة اللينكس, والفرق ليس كبير وضع حرف l يعنى انه يقوم بعملية mov لمتغير من نوع long وعندما يكون امامها b معناها ان المتغير من نوع بايت وهكذا
فى masm نستخدم على سبيل المثال byte ptr لتحديد حجم المتغير, وكذلك DWORD ptr وهكذا, يعنى الاختلاف فى الطريقة ولكن النتيجة واحده, ولن اجد طريقة masm افضل لانك لست مضطر لكتابة l على كل تعليمة وإنما تكتب DWORD ptr فى بعض الحالات فقط...
والسلام عليكم
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
Sub-0 كتب:شوف هنا :http://www.zone-h.org/files/32/bof_stack1.txt
بعد تحليل البرنامج بالـgdb طلع لنا
movl واوامر اسمبلي تنتهي بحرف l ممكن اعرف السبب ولماذا لم تكتب بالطريقة العادية mov ؟؟
شششششششششششششششششش , ما تجيبش سيرة اللينوكس وانت بتكلم احمد غريب , حتلاقيه خبطك باللي في ايده :lol: , حقك عليا يا عم احمد اصله ما يعرفش :D
يا عم ده gdb , يعني في اللينوكس ابو العجايب , انت مش واخد بالك من % اللي بتسبق السجلات ؟
عموما دي كلها رموز , اللي اختارها مصمم الـ gdb وما تعرفش عامله مختلف ليه - نظام خالف تعرف - مش عارف
عموما ممكن تعمل DisAssembly بالـ disassembler القادم مع nasm وحتلاقي كل شيء طبيعي فيه من غير اللخبيط دي
معلش المسامح كريم عشان خاطر رمضان حفوتهاله المرادى بس المره الجاية ¤#"%"""%?
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
:lol: :lol: كل سنه وانت طيب
لحد الحين ماحصلت جواب نهائي او جواب واضح ههههههههههه
الي يقولك خالف تعرف والي يقول movl معناها long ؟؟
بعدين زي ماانا اعرف ان برمجة الاسمبلي تحت بيئة اليونيكس السجلات تكون قبلها % شيء طبيعي !! لكن قصة الـl ني عارف ليه
Sub-0 كتب:لحد الحين ماحصلت جواب نهائي او جواب واضح هههههههههههالي يقولك خالف تعرف والي يقول movl معناها long ؟؟
بعدين زي ماانا اعرف ان برمجة الاسمبلي تحت بيئة اليونيكس السجلات تكون قبلها % شيء طبيعي !! لكن قصة الـl ني عارف ليه
انا شايف جواب أحمد غريب كافي , لكن لو عايز تعرف l ليه قوللي % طبيعي ليه ؟؟ وليه مش بتكتبها في nasm المجمع الموجود على لينوكس ؟
واذا لم تكن مقتنع انه نظام خالف تعرف - فلماذا لم يستخدم النظام القياسي على نهج nasm ???
وتقولي جواب مش واضح , بسيطه وجه سؤالك مباشرة الى مبرمج gdb وريح رأسك
اولاً انتهز الفرصة كل سنة وانت وجميع امة الحبيب المصطفي بالف خير...
والان انا مستغرب ماهو الغير واضح فى إجابتى, هذه الطريقة تستخدم فى معالجات موتورولا والظاهر إن شباب اللينكس اقتبسوها, وهى وضع حرف بعد كل تعليمة لتعريف حجم العملية, يعنى عندما نكتب movl معنى ذلك اننا نقوم بنقل متغير بحجم long وإذا كتبنا movb معنى ذلك اننا ننقل متغير بحجم بايت الخ....
وصلى الله وبارك على سيدنا محمد
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
ive read in an artical that there is no differance in movl or mov the first one is an at&t format and begins with % and its parameters are %movl source , destination while mov is used by intel mov destination,source is this information true ?
اخي v1r05 راجع رد الاخ احمد والاخ Asm4All :o
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
احمد غريب كتب:يعنى عندما نكتب movl معنى ذلك اننا نقوم بنقل متغير بحجم long وإذا كتبنا movb معنى ذلك اننا ننقل متغير بحجم بايت الخ....وصلى الله وبارك على سيدنا محمد
نعم و q تعني 64 رايتها امس

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

احمد غريب الغير واضح هو اني رأيت ناس تقول ان movl هي نفسها mov ولكن وضعنا حرف الـl وذلك لاننا نكتب كود الاسمبلي في بيئة لينكس ؟!!!!
وبعدين Asm4all
الامر movl و pushl ماهو في gdb ياخي هذا debugger مو مجمع اسمبلي واتمنى تكون فهمت !!
وهذا مثال على برنامج اسمبلي بسيط على اللينكس
.globl main .type main, @function main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax subl %eax, %esp #APP movl %ss, 0x40(%ebp) movl %ss, (%ebp) movl %ss, -16(%ebp) #NO_APP movl $0, %eax leave ret
لكن آسف على الازعاج لانني اخاطب ناس ماجربت تبرمج بالاسمبلي على بيئة اللينكس :(
للمعلومية أيضا
AT&T : movl $foo, %eax
Intel : mov eax, foo
Sub-0 كتب:وبعدين Asm4allالامر movl و pushl ماهو في gdb ياخي هذا debugger مو مجمع اسمبلي واتمنى تكون فهمت !!
وهذا مثال على برنامج اسمبلي بسيط على اللينكس
.globl main .type main, @function main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax subl %eax, %esp #APP movl %ss, 0x40(%ebp) movl %ss, (%ebp) movl %ss, -16(%ebp) #NO_APP movl $0, %eax leave retلكن آسف على الازعاج لانني اخاطب ناس ماجربت تبرمج بالاسمبلي على بيئة اللينكس :(
:lol: :lol: لم يمر وقت كبير حتى حصلت على من يتهكم مره ثانيه :D
يا ريت تقولي ايه المجمع اللي بتستخدمه في اللينوكس <_<
أصلي اعرف nasm بيجي مع اللينوكس ,وأعرف ان nasm لا يفهم هذا العك
والله ماعرف الواحد اللي ناوي يرد رد مثلك ليه ما يتأكد قبل الوقوع في الممنوع , عندك جووجل كان حيساعدك حتى يكون كلامك موثق
القي نظره هنا يمكن أكون كاتبه بإيدي http://www.int80h.org/bsdasm/ , http://www.leto.net/writing/nasm.txt , http://asm.sourceforge.net/intro.html
والله مالحق اكتب ده كله علشان خاطرك :lol:
ونقطة الـ debugger و الـ assembler دي مش محتاجه رد مني
اقتباسعموما ممكن تعمل DisAssembly بالـ disassembler القادم مع nasm وحتلاقي كل شيء طبيعي فيه من غير اللخبيط دي
لو ما بتعرف DisAssembly بتعني ايه يبقى ما بتعرف أسمبلي وما بتعرف ديبج يا حبيبي
وكل سنه وانت طيب
ممنوع ايش انت الثاني يعمي طير من مخي ..
انا اكتشفت الحل خلاص وهو في كومبايلرات gas يكون هذا الكلام ..
Sub-0 كتب:ممنوع ايش انت الثاني يعمي طير من مخي ..انا اكتشفت الحل خلاص وهو في كومبايلرات gas يكون هذا الكلام ..
انت الثاني , طير , اكتشفت , كومبايلرات !!!! :lol:
ماشي يا عم المكتشف , كويس انك اكتشفت انه ملوش دعوه بنظام التشغيل , ده اختلاف في الصيغة التي تقبلها المجمعات , حتى GNU Assembler - GAS اصبح يقبل صيغة intel المعروفه , لو مهتم الرابط
3.2.3. Intel syntax Good news are that starting from binutils 2.10 release, GAS supports Intel syntax too. It can be triggered with .intel_syntax directive. Unfortunately this mode is not documented (yet?) in the official binutils manual, so if you want to use it, try to examine http://home.snafu.de/phpr/lhpas86.html.gz, which is an extract from AMD 64bit port of binutils 2.11.
ونقي الفاظك شويه B) , رمضان كريم
تم تعديل هذه المشاركة بواسطة Asm4all في 5 أكتوبر 2005 في 08:20
كل عام وانت بخير ومشكور على الرد ,,
وجزاك الله خير على المساعدة
هذا الموضوع مغلق.