프로젝트 폴더 열기
C 소스, 컴파일된 파일의 사본, 나중에 내보낼 리스팅을 담을 작업 폴더를 고르세요.
직접 컴파일한 C 프로그램에서 작은 함수 하나를 골라 첫 명령어부터 마지막 return까지 살펴보세요. 법과 라이선스 조건은 국가마다 다르니 내 코드나 연습 파일만 쓰세요. 네 단계는 아래와 같아요.
C 소스, 컴파일된 파일의 사본, 나중에 내보낼 리스팅을 담을 작업 폴더를 고르세요.
Shell이 디스어셈블러의 내보내기 명령을 사본에 실행하게 하거나 리스팅을 직접 저장해서 결과가 텍스트 파일이 되게 하세요.
에이전트에게 리스팅을 읽고 함수를 한 줄씩 설명해 달라고 한 뒤, 메모를 write_file로 저장하세요.
메모를 소스 및 리스팅과 비교하고, Ask first에서 diff를 읽고, 합법적이라면 랩에서 결과를 테스트하세요.
add_numbers.asm텍스트 읽음edx add_numbers.asm2건 일치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를 보여 줘요. 함수 하나로 시작하세요. 같은 방법으로 직접 쓴 오래된 코드가 어떻게 동작했는지도 복원할 수 있어요. 에이전트가 자료형이나 목적을 틀릴 수 있으니, 수락하기 전에 각 행을 내 소스와 직접 한 테스트로 확인하세요.