Proje klasörünü aç
C kaynağını, derlenmiş dosyanın bir kopyasını ve sonradan dışa aktarılmış listeyi içeren bir çalışma klasörü seç.
Kendi derlediğin bir C programından küçük bir işlev seç ve ilk komuttan son return'e kadar incele. Yasalar ve lisans koşulları ülkeye göre değişir, bu yüzden yalnızca kendi kodunu veya alıştırma dosyalarını kullan. Aşağıda dört adım var.
C kaynağını, derlenmiş dosyanın bir kopyasını ve sonradan dışa aktarılmış listeyi içeren bir çalışma klasörü seç.
Shell'in disassembler'ının dışa aktarma komutunu kopya üzerinde çalıştırmasına izin ver ya da listeyi kendin kaydet; sonuç bir metin dosyası olsun.
Ajandan listeyi okumasını ve işlevi satır satır açıklamasını iste, ardından notları write_file ile kaydet.
Notları kaynak kodun ve listeyle karşılaştır, Ask first içinde diff'i oku ve yasalsa sonucu laboratuvarda test et.
add_numbers.asmmetin okunduedx add_numbers.asm2 eşleşmenotes/add_numbers.mdkaydedildinotes/add_numbers.md+4 satır; 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 eaxBu işlev iki tam sayıyı toplar. Windows x64 çağrı kuralına göre bağımsız değişkenler ecx ve edx içinde gelir, toplam eax içinde oluşturulur ve ret kontrolü çağırana geri verir.
Yeni başlayanların sık sorduğu soru assembly'ye nasıl başlanacağıdır ve cevap kendi yazdığın bir işlevdir. Kısa bir C işlevi yaz, derle ve listeyi metin olarak dışa aktar. read_file listeyi açar ve ajan her komutu açıklar: hangi yazmaç hangi bağımsız değişkeni tutuyor, yığın ne yapıyor ve sonuç nereye dönüyor. write_file bu açıklamaları notes/begin.md dosyasına kaydeder. Plan only modunda ajan önce bu adımları listeler. Henüz hiçbir şey çalışmaz. Sonra Ask first'e geç ve her kayıttan önce diff'i oku. Son olarak notları kaynak kodunla karşılaştır ve yasalsa derlenmiş işlevi laboratuvarda test et.
API'leri çözümlemede iyi bir alıştırma, kendi kitaplığının sunduğu işlevleri listelemek ve her bağımsız değişkenin ne yaptığını yazmaktır. Kendi aracından içe aktarılan ve dışa açılan işlevlerin listesini metin olarak kaydet; ajan grep ile bir işlevin her çağrısını bulur ve read_file ile çevresindeki satırları açar. notes/api.md dosyasında bir tablo taslağı çıkarır ve edit_file her değişikliği diff olarak gösterir. Tek bir işlevle başla. Aynı yöntem, kendi eski kodunun nasıl çalıştığını ortaya çıkarmana da yardım eder. Ajan bir tür veya amaç konusunda yanılabilir; bu yüzden kabul etmeden önce her satırı kaynak kodunla ve kendi testinle karşılaştır.