سؤال

باستخدام Objdump لفهم ثنائي وأنا أدرك أنني لا أقوم بطلاقة بما فيه الكفاية في بناء جملة ASM. ماذا يعني الفكرة التالية؟

xor    %al,-0x1(%edx,%ecx,1)

وبينما كنت في ذلك - ما الذي يجب أن أبحث عنه من أجل العثور على مستندات حول هذه المفاهف؟

هل كانت مفيدة؟

المحلول

الأقواس هي إزاحة الذاكرة:

-0x1(%edx,%ecx,1) (بناء جملة AT & T) يساوي [edx+ecx*1-1] (بناء جملة Intel)

دليل سريع ل بناء جملة التجميع AT & T (حسب طلبك).

نصائح أخرى

هذه حصرية أو مع محتوى البايت المنخفض (٪ AL) من السجل "A" ومحتوى الذاكرة على العنوان الذي هو مجموع السجلات الواسعة 32 بت 'D' (٪ EDX)، 'ج "مضروب في 1 (٪ ECX، 1) و -1. والنتيجة هي مكتوب مرة أخرى إلى٪ آل. في جيم

al ^= (char*)(edx+ecx*1 - 1);

يمكنك البحث عن الأشياء مثل هذا في كومة الرمال أو في وثائق Intel / AMD.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top