افتح مجلد مشروعك
اختر مجلد عمل يحتوي على مصدر C ونسخة من الملف المترجم، ثم لاحقًا القائمة المصدّرة.
اختر دالة صغيرة واحدة من برنامج C جمّعته بنفسك ودرسها من أول تعليمة حتى return الأخير. تختلف القوانين وشروط التراخيص من بلد إلى آخر، فاستخدم شيفرتك أو ملفات التدرّب فقط. تتبع أربع خطوات أدناه.
اختر مجلد عمل يحتوي على مصدر C ونسخة من الملف المترجم، ثم لاحقًا القائمة المصدّرة.
دع Shell ينفّذ أمر التصدير في مفكّكك على النسخة، أو احفظ القائمة بنفسك، لتكون النتيجة ملفًا نصيًا.
اطلب من الوكيل قراءة القائمة وشرح الدالة سطرًا بسطر، ثم احفظ الملاحظات بواسطة write_file.
قارن الملاحظات بشيفرتك وبالقائمة، واقرأ diff في Ask first، واختبر النتيجة في مختبر إن كان ذلك قانونيًا.
add_numbers.asmتمت قراءة النصedx add_numbers.asmتطابقانnotes/add_numbers.mdتم الحفظnotes/add_numbers.md+4 أسطر; add_numbers.asm - teaching listing, x64 Windows
; Returns the sum of its first two integer arguments.
; Argument 1 arrives in ecx (low half of rcx).
; Argument 2 arrives in edx (low half of rdx).
add_numbers:
mov eax, ecx ; copy argument 1 into eax
add eax, edx ; add argument 2, the sum stays in eax
ret ; return to the caller, result in eaxتجمع هذه الدالة عددين صحيحين. وفق اصطلاح Windows x64 تصل المعاملات في ecx وedx، ويُبنى المجموع في eax، ويعيد ret التحكم إلى المستدعي.
سؤال المبتدئين الشائع هو كيف أبدأ بلغة التجميع، والجواب دالة كتبتها بنفسك. اكتب دالة C قصيرة وجمّعها وصدّر القائمة كنص. يفتح read_file القائمة ويشرح الوكيل كل تعليمة: أي سجل يحمل كل معامل، وماذا يفعل المكدّس، وأين تعود النتيجة. يحفظ write_file هذه الشروحات في notes/begin.md. في Plan only يسرد الوكيل هذه الخطوات أولًا. لا شيء يُنفَّذ بعد. ثم بدّل إلى Ask first واقرأ diff قبل كل حفظ. وأخيرًا قارن الملاحظات بشيفرتك، وإن كان ذلك قانونيًا فاختبر الدالة المجمّعة في مختبر.
تمرين جيد في الهندسة العكسية لواجهات API هو سرد الدوال التي تعرضها مكتبتك الخاصة وتدوين ما يفعله كل معامل. احفظ قائمة الدوال المستوردة والمعروضة من أداتك كنص، ثم يستخدم الوكيل grep للعثور على كل استدعاء لدالة واحدة ويفتح read_file الأسطر المحيطة به. يصوغ جدولًا مبدئيًا في notes/api.md، ويعرض edit_file كل تغيير بصيغة diff. ابدأ بدالة واحدة. تساعدك الطريقة نفسها على استعادة كيف كانت شيفرتك القديمة تعمل. قد يخطئ الوكيل في نوع أو غرض، فقارن كل صف بشيفرتك وباختبار خاص بك قبل أن تقبله.