ماذا "-0x1 (٪ EDX،٪ ECX، 1)" يعني في إخراج Objdump؟
سؤال
باستخدام 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.
لا تنتمي إلى StackOverflow