เปิดโฟลเดอร์โปรเจกต์ของคุณ
เลือกโฟลเดอร์ทำงานที่มีซอร์ส C สำเนาไฟล์ที่คอมไพล์แล้ว และต่อมาคือลิสติงที่ส่งออก
เลือกฟังก์ชันเล็ก ๆ หนึ่งฟังก์ชันจากโปรแกรม C ที่คุณคอมไพล์เอง แล้วศึกษาตั้งแต่คำสั่งแรกจนถึง return สุดท้าย กฎหมายและเงื่อนไขใบอนุญาตแตกต่างกันตามประเทศ จึงใช้เฉพาะโค้ดของคุณเองหรือไฟล์ฝึก มีสี่ขั้นตอนด้านล่าง
เลือกโฟลเดอร์ทำงานที่มีซอร์ส C สำเนาไฟล์ที่คอมไพล์แล้ว และต่อมาคือลิสติงที่ส่งออก
ให้ Shell รันคำสั่งส่งออกของดิสแอสเซมเบลอร์กับสำเนา หรือบันทึกลิสติงเอง เพื่อให้ผลลัพธ์เป็นไฟล์ข้อความ
ขอให้เอเจนต์อ่านลิสติงและอธิบายฟังก์ชันทีละบรรทัด แล้วบันทึกโน้ตด้วย write_file
เทียบบันทึกกับซอร์สและลิสติงของคุณ อ่าน diff ใน Ask first และทดสอบผลในห้องแล็บหากถูกกฎหมาย
add_numbers.asmอ่านข้อความแล้วedx add_numbers.asmตรงกัน 2 รายการ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 เริ่มจากฟังก์ชันเดียว วิธีเดียวกันนี้ช่วยให้คุณกู้คืนวิธีทำงานของโค้ดเก่าของคุณเองได้ด้วย เอเจนต์อาจผิดเรื่องชนิดข้อมูลหรือวัตถุประสงค์ จึงเทียบทุกแถวกับซอร์สและการทดสอบของคุณเองก่อนยอมรับ