Abre la carpeta de tu proyecto
Elige una carpeta de trabajo que contenga tu código fuente en C, una copia del archivo compilado y, más adelante, el listado exportado.
Elige una función pequeña de un programa en C que compilaste tú y estúdiala desde la primera instrucción hasta el último return. La ley y las condiciones de licencia cambian según el país, así que usa solo tu propio código o archivos de práctica. A continuación van cuatro pasos.
Elige una carpeta de trabajo que contenga tu código fuente en C, una copia del archivo compilado y, más adelante, el listado exportado.
Deja que Shell ejecute el comando de exportación de tu desensamblador sobre la copia, o guarda tú mismo el listado, para que el resultado sea un archivo de texto.
Pide al agente que lea el listado y explique la función línea por línea, y guarda las notas con write_file.
Compara las notas con tu código fuente y con el listado, lee el diff en Ask first y prueba el resultado en un laboratorio si es legal.
add_numbers.asmtexto leídoedx add_numbers.asm2 coincidenciasnotes/add_numbers.mdguardadonotes/add_numbers.md+4 líneas; 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 eaxEsta función suma dos enteros. Con la convención de Windows x64, los argumentos llegan en ecx y edx, la suma se forma en eax y ret devuelve el control a quien llamó.
Una pregunta común de quien empieza es cómo se aprende ensamblador, y la respuesta es una función que hayas escrito tú. Escribe una función corta en C, compílala y exporta el listado como texto. read_file abre el listado y el agente explica cada instrucción: qué registro contiene cada argumento, qué hace la pila y dónde vuelve el resultado. write_file guarda esas explicaciones en notes/begin.md. En Plan only, el agente primero enumera estos pasos. Todavía no se ejecuta nada. Después cambia a Ask first y lee el diff antes de cada guardado. Por último, compara las notas con tu código y, si es legal, prueba la función compilada en un laboratorio.
Un buen ejercicio de ingeniería inversa de API es enumerar las funciones que expone tu propia biblioteca y anotar qué hace cada argumento. Guarda como texto la lista de funciones importadas y expuestas de tu propia herramienta, y luego el agente usa grep para encontrar cada llamada a una función y read_file para abrir las líneas que la rodean. Redacta una tabla en notes/api.md, y edit_file muestra cada cambio como un diff. Empieza con una sola función. El mismo método te ayuda a recuperar cómo funcionaba tu propio código antiguo. El agente puede equivocarse con un tipo o una finalidad, así que compara cada fila con tu código fuente y con una prueba tuya antes de aceptarla.