diciembre 20, 2005

I'm not THAT old

Hoy en el canal #linuxperu, tabo, empezó a postear unos links de thedailywtf, y por esas cosas que sólo los cerebros entienden, empecé a recordar mis primeros programas en assembler, los que escribía de la manera mas desastroza y horrible (imagínense aparte de lo horrible que les parece a muchos el asm).

También me acordé de una apuesta que me hizo un amigo del antiguo y buen IPS SiSE, Enrique Alejos, de clonar un programa que él habia hecho en C, y que medía 11k el ejecutable, en assembler. Encima no tenia compilador a la mano, asi que si aceptaba, lo tendría que hacer en debug.

La primera vez que lo hice (algún día de 1994), me tomó algo de una hora y media terminarlo. 11 años despues, me ha tomado 15 minutos, utilizando el mismo método (debug), y partiendo del scratch, pues ya no cuento con ese programa.

Tengo que confesar que me ayudé del Norton Guides (asm.ng), pero sólo para el tema de los saltos (jnz, jz), pues mi memoria falla en esos detalles, peor aún cuando tantos años han pasado desde que escribiera este bendito programa.

35 bytes no estan mal, recuerdo que originalmente el programa midió 121 bytes, la mayoría de los cuales pertenecían a la frase "Prueba de desaparición de caracteres realizada.", tal cual estaba en el programa original en C.

Aqui un screenshot de lo que hice, y si quieres hacerlo en tu máquina, sólo necesitas el programa debug, poner "a" y empezar a tipear las líneas sin incluir las dos primeras columnas. Luego le pones un nombre con: "n prog.com" e insertas la longitud en el registro CX con "rcx" y luego pones "23" (2x16+3=35), y lo escribes con "w", para luego poder ejecutarlo.





Enjoy~