Mở thư mục dự án của bạn
Chọn một thư mục làm việc chứa mã nguồn C, một bản sao của tệp đã biên dịch và, về sau, listing đã xuất.
Chọn một hàm nhỏ từ chương trình C do chính bạn biên dịch và nghiên cứu nó từ lệnh đầu tiên đến return cuối cùng. Luật và điều khoản giấy phép khác nhau theo từng quốc gia, nên chỉ dùng mã của chính bạn hoặc tệp luyện tập. Bốn bước ở bên dưới.
Chọn một thư mục làm việc chứa mã nguồn C, một bản sao của tệp đã biên dịch và, về sau, listing đã xuất.
Để Shell chạy lệnh xuất của disassembler trên bản sao, hoặc tự lưu listing, để kết quả là một tệp văn bản.
Nhờ agent đọc listing và giải thích hàm từng dòng, rồi lưu ghi chú bằng write_file.
So sánh ghi chú với mã nguồn và listing của bạn, đọc diff trong Ask first, và kiểm thử kết quả trong phòng lab nếu điều đó hợp pháp.
add_numbers.asmđã đọc văn bảnedx add_numbers.asm2 kết quả khớpnotes/add_numbers.mdđã lưunotes/add_numbers.md+4 dòng; 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 eaxHàm này cộng hai số nguyên. Theo quy ước Windows x64, các đối số đến trong ecx và edx, tổng được tạo trong eax, và ret trả quyền điều khiển về nơi gọi.
Câu hỏi thường gặp của người mới là bắt đầu học assembly như thế nào, và câu trả lời là một hàm do chính bạn viết. Hãy viết một hàm C ngắn, biên dịch nó và xuất listing dưới dạng văn bản. read_file mở listing và agent giải thích từng lệnh: thanh ghi nào giữ đối số nào, stack làm gì và kết quả trả về đâu. write_file lưu các phần giải thích đó trong notes/begin.md. Trong Plan only, agent liệt kê các bước này trước. Chưa có gì được chạy. Sau đó chuyển sang Ask first và đọc diff trước mỗi lần lưu. Cuối cùng so sánh ghi chú với mã nguồn của bạn và, nếu hợp pháp, kiểm thử hàm đã biên dịch trong phòng lab.
Một bài tập hay khi dịch ngược API là liệt kê các hàm mà thư viện của bạn công khai và ghi lại mỗi đối số làm gì. Hãy lưu danh sách các hàm được nhập và công khai từ công cụ của bạn dưới dạng văn bản, sau đó agent dùng grep tìm mọi lệnh gọi tới một hàm và read_file mở các dòng xung quanh. Nó soạn bảng nháp trong notes/api.md, và edit_file hiển thị mỗi thay đổi dưới dạng diff. Hãy bắt đầu với một hàm. Cùng phương pháp này giúp bạn khôi phục cách mã cũ của mình từng hoạt động. Agent có thể sai về kiểu hoặc mục đích, nên hãy so từng dòng với mã nguồn và bài kiểm thử của bạn trước khi chấp nhận.