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

ماهو الفرق بين mov و movl ؟؟

مغلق
بدأه Sub-0 في 2 أكتوبر 2005 · 19 رد · 1,488 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ابي اعرف على اي الانظمة تستخدم movl وعلى اي الانظمة تستخدم mov ؟؟

#2

لايوجد ما يسمى movl فى معالجات انتل, يوجد movel ولكن فى معالجات موتورولا وهى تعنى move long value

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

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

#3

شوف هنا :

http://www.zone-h.org/files/32/bof_stack1.txt

بعد تحليل البرنامج بالـgdb طلع لنا

movl واوامر اسمبلي تنتهي بحرف l ممكن اعرف السبب ولماذا لم تكتب بالطريقة العادية mov ؟؟

#4

لانه يستخدم اسمبلى لبيئة اللينكس, والفرق ليس كبير وضع حرف l يعنى انه يقوم بعملية mov لمتغير من نوع long وعندما يكون امامها b معناها ان المتغير من نوع بايت وهكذا

فى masm نستخدم على سبيل المثال byte ptr لتحديد حجم المتغير, وكذلك DWORD ptr وهكذا, يعنى الاختلاف فى الطريقة ولكن النتيجة واحده, ولن اجد طريقة masm افضل لانك لست مضطر لكتابة l على كل تعليمة وإنما تكتب DWORD ptr فى بعض الحالات فقط...

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

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

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

#5
Sub-0 كتب:
شوف هنا :

http://www.zone-h.org/files/32/bof_stack1.txt

بعد تحليل البرنامج بالـgdb طلع لنا

movl واوامر اسمبلي تنتهي بحرف l ممكن اعرف السبب ولماذا لم تكتب بالطريقة العادية mov ؟؟

شششششششششششششششششش , ما تجيبش سيرة اللينوكس وانت بتكلم احمد غريب , حتلاقيه خبطك باللي في ايده :lol: , حقك عليا يا عم احمد اصله ما يعرفش :D

يا عم ده gdb , يعني في اللينوكس ابو العجايب , انت مش واخد بالك من % اللي بتسبق السجلات ؟

عموما دي كلها رموز , اللي اختارها مصمم الـ gdb وما تعرفش عامله مختلف ليه - نظام خالف تعرف - مش عارف

عموما ممكن تعمل DisAssembly بالـ disassembler القادم مع nasm وحتلاقي كل شيء طبيعي فيه من غير اللخبيط دي

#6

معلش المسامح كريم عشان خاطر رمضان حفوتهاله المرادى بس المره الجاية ¤#"%"""%?

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

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

#8

لحد الحين ماحصلت جواب نهائي او جواب واضح ههههههههههه

الي يقولك خالف تعرف والي يقول movl معناها long ؟؟

بعدين زي ماانا اعرف ان برمجة الاسمبلي تحت بيئة اليونيكس السجلات تكون قبلها % شيء طبيعي !! لكن قصة الـl ني عارف ليه

#9
Sub-0 كتب:
لحد الحين ماحصلت جواب نهائي او جواب واضح ههههههههههه

الي يقولك خالف تعرف والي يقول movl معناها long ؟؟

بعدين زي ماانا اعرف ان برمجة الاسمبلي تحت بيئة اليونيكس السجلات تكون قبلها % شيء طبيعي !! لكن قصة الـl ني عارف ليه

انا شايف جواب أحمد غريب كافي , لكن لو عايز تعرف l ليه قوللي % طبيعي ليه ؟؟ وليه مش بتكتبها في nasm المجمع الموجود على لينوكس ؟

واذا لم تكن مقتنع انه نظام خالف تعرف - فلماذا لم يستخدم النظام القياسي على نهج nasm ???

وتقولي جواب مش واضح , بسيطه وجه سؤالك مباشرة الى مبرمج gdb وريح رأسك

#10

اولاً انتهز الفرصة كل سنة وانت وجميع امة الحبيب المصطفي بالف خير...

والان انا مستغرب ماهو الغير واضح فى إجابتى, هذه الطريقة تستخدم فى معالجات موتورولا والظاهر إن شباب اللينكس اقتبسوها, وهى وضع حرف بعد كل تعليمة لتعريف حجم العملية, يعنى عندما نكتب movl معنى ذلك اننا نقوم بنقل متغير بحجم long وإذا كتبنا movb معنى ذلك اننا ننقل متغير بحجم بايت الخ....

وصلى الله وبارك على سيدنا محمد

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

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

#11
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 ?
#12

اخي 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

#13
احمد غريب كتب:
يعنى عندما نكتب movl معنى ذلك اننا نقوم بنقل متغير بحجم long وإذا كتبنا movb معنى ذلك اننا ننقل متغير بحجم بايت الخ....

وصلى الله وبارك على سيدنا محمد

نعم و q تعني 64 رايتها امس

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#14

احمد غريب الغير واضح هو اني رأيت ناس تقول ان movl هي نفسها mov ولكن وضعنا حرف الـl وذلك لاننا نكتب كود الاسمبلي في بيئة لينكس ؟!!!!

#15

وبعدين 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

لكن آسف على الازعاج لانني اخاطب ناس ماجربت تبرمج بالاسمبلي على بيئة اللينكس :(

#16

للمعلومية أيضا

AT&T : movl $foo, %eax

Intel : mov eax, foo

#17
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 بتعني ايه يبقى ما بتعرف أسمبلي وما بتعرف ديبج يا حبيبي

وكل سنه وانت طيب

#18

ممنوع ايش انت الثاني يعمي طير من مخي ..

انا اكتشفت الحل خلاص وهو في كومبايلرات gas يكون هذا الكلام ..

#19
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

#20

كل عام وانت بخير ومشكور على الرد ,,

وجزاك الله خير على المساعدة

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

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