أين يمكنني العثور على أدوات لتعلم المجمّع على OS X؟[مغلق]

StackOverflow https://stackoverflow.com/questions/137523

  •  02-07-2019
  •  | 
  •  

سؤال

أود أن أتعلم المجمع.ومع ذلك، هناك عدد قليل جدًا من الموارد اللازمة للقيام بالمجمع مع OS X.

هل هناك أي شخص قام ببرمجة التجميع على جهاز Mac؟اين تعلمت؟

وهل هناك أي سبب يمنعني من القيام بالتجميع؟هل أخاطر (بشكل كبير) بتعطل جهاز الكمبيوتر الخاص بي بشكل لا يمكن إصلاحه؟

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

المحلول

إذا كنت تستخدم PowerPC Mac، فابحث في المجمّع المضمن gcc.وإلا فابحث في النسمة.لا يمكنني تقديم أي مراجع مناسبة لـ PPC ASM (فهي قليلة ومتباعدة)، لكنني أقترح الأشياء التالية لتعلم x86 asm:

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

يحرر:أيضًا، احصل على gcc وما إلى ذلك من XCode وليس Macports أو شيء من هذا القبيل.أنت في عالم مليء بملفات Mach-O المشوهة إذا لم تقم بذلك.ليس من الممتع تشخيص مشكلات تنسيق الملف عندما تبدأ للتو عملية القرصنة.

نصائح أخرى

يتم تحديد لغة المجمع بواسطة النظام الأساسي للأجهزة، وليس نظام التشغيل.نظرًا لأن OS X يعمل على نظام Intel الأساسي وهو 64 بت، فيجب عليك البحث عن معلومات حول مجمع x64 (المعروف أيضًا باسم AMD64).راجع مقالة ويكيبيديا (http://en.wikipedia.org/wiki/X86-64) للعديد من الروابط إلى الوثائق حول x64.

أيضًا، قد تحتوي وثائق أدوات OS X على الكثير من المعلومات حول مُجمّع x64.على وجه الخصوص، مجمع Netwide (NASM - http://developer.apple.com/documentation/DeveloperTools/nasm/nasmdoc0.html) قد تحتوي على وثائق حول كيفية إنشاء تطبيقات OS X باستخدام المجمّع.

لبدء تعلم التجميع، قد ترغب في البدء ببرامج لغة C البسيطة وتطلب من مجلس التعاون الخليجي إنشاء كود المجمع الخاص به باستخدام الخيار -S:

gcc -S hello.c -o hello.asm

ستتمكن بعد ذلك من فهم كيفية استدعاء الوظائف وتمرير الوسائط وما إلى ذلك.

Nasm/yasm هما أفضل رهان لك؛يعد بناء الجملة المضمن لـ gcc معوقًا للغاية ويمكن أن يكون مؤلمًا للغاية عند استخدامه في بعض الأحيان، بالإضافة إلى أن هناك بعض الأشياء التي قد تكون كذلك لا تستطيع يفعل.يعد بناء جملة Nasm الكلي أكثر فائدة أيضًا، وهو هبة من السماء في لغة مثل التجميع التي لا تحتوي على ميزات قوالب مدمجة.

كود اكس (أي.دول مجلس التعاون الخليجي) لديه دعم كبير لكتابة المجمّع.إنه أمر ممتع أن تتعلمه (على الرغم من أنك من غير المرجح أن تحتاج إليه كثيرًا)، وأسوأ ما يمكنك فعله هو تعطيل البرنامج الذي تكتبه، كما هو الحال في لغة C.ما عليك سوى البحث في Google عن "البرنامج التعليمي gcc inline asm x86" وستجد الكثير من نقاط البداية.لا تقلق من أن بعضها قد يبدو خاصًا بنظام التشغيل Linux، فستعمل بشكل عام بشكل جيد مع XCode.

(تحرير) ... بافتراض أن لديك جهاز Intel Mac بالطبع؛إذا لم يكن الأمر كذلك، فاستبدل "x86" بـ "PPC".

هنا

لقد قمت ببرمجة التجميع على جهاز Mac.لقد كان مجمع Motorola 680x0 باستخدام MPW.لقد تطرقت إلى مجمع PowerPC عدة مرات في CodeWarrior وProjectBuilder.الآن يسمى ProjectBuilder XCode، وهناك Intel.يعد المجمع أحد الأدوات العديدة الموجودة في XCode.

لقد تعلمت في الأصل المجمّع على Apple II:شاشة لغة الآلة 6502 المضمنة في ذاكرة القراءة فقط (ROM)، والمجمع الصغير Sweet16، وغيرها.لاحقًا، استخدمت مُجمّع Intel 80186 لتسريع الأجزاء البطيئة من كود C، وعملت مدفوع الأجر مقابل دورة مدتها يوم واحد حول مُجمّع Intel 80186 في إحدى الجامعات.في وقت لاحق، اضطررت إلى الحفاظ على بعض التجميع 680x0 لنظام التشغيل Mac.هذا كان قبل زمن طويل.

لا أعتقد أن هناك أي سبب لعدم القيام بالتجميع.التعلم عظيم.تعلم كل ما تستطيع.انتقل إلى مصحح أخطاء منخفض المستوى وانظر إلى الكود المفكك.

نصيحتي هي:

لا تخف.

لا يوجد سبب يمنعك من ذلك؛لا يوجد شيء يمكنك القيام به في لغة التجميع ولا يمكنك القيام به في لغة ذات مستوى أعلى مثل C.

بقدر ما تذهب الأدوات، قد ترغب في تثبيت ماكبورتس واحصل على مجمع GNU.قد تكون هذه هي الطريقة الأسهل أو لا تكون، ولكنها مجانية وربما يمكنك العثور على وثائق تعليمية لكتابة برامج Unix في مجمع GNU في مكان ما على الشبكة.

هناك شيئان يجب أن تعرفهما عند كتابة لغة التجميع على نظام به نظام تشغيل (على عكس التجميع "المعدني" الذي يعد عالمًا خاصًا به):

  1. كيف تعمل مجموعة التعليمات - الكثير من الموارد لـ Intel X86 إذا كان لديك Intel Mac، فلا تزال مجموعة معقولة لـ PPC على سبيل المثال نظام التشغيل Mac OS X الداخلي.

  2. كيفية تجميع برامجك - إذا كانت أدوات المطور مثبتة لديك، فلديك أدوات مجلس التعاون الخليجي والأدوات المرتبطة بها

  3. كيفية التحدث إلى نظام التشغيل - هذا هو المكان الذي يوجد فيه تجميع Mac كثير أقل توثيقًا من Windows أو Linux.قد يتعين عليك كتابة برامج C مكافئة واستخدام "gcc -S" لمعرفة اصطلاحات استعادة الاتصال/المكدس المناسبة.يعتمد الأمر على ما تريد القيام به ولكن على الأقل تحتاج إلى مكالمات نظام التشغيل لتخصيص الإدخال والذاكرة.

نقطة الانطلاق الجيدة هي هنا.

إذا كنت قد حصلت ادوات المطورين المثبتة، يمكنك ببساطة فتح صالة واكتب مثل (مجمع جنو - جزء من بينوتيلز).

بالنسبة لـ PPC، جرب Lightsoft

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