Um tempo atrás, rolou nas interwebs um belíssimo programa BASIC de uma linha para C64, que gera um labirinto aleatório com duas míseras instruções, um PRINT e um GOTO. O negócio fez tanto sucesso que chegou a virar livro.
Pois bem, me chega um cavalheiro chamado Jim Leonard, hacker casca-grossa também conhecido como Trixter, e lança o desafio: fazer o mesmo programa em assembler 8088, para PC*, com o mínimo de bytes possível.
Aí os recordes vão se sucedendo: 25 bytes, 15,13, 12. 11… dez! A essa altura o povo já estava apelando para truques que não são coisa de Jesus, tais como instruções não-documentadas que só funcionam em CPUs Intel, presumir estado dos registradores na entrada, entre outras ignomínias.
Segue o código assembler vencedor. Tirem as crianças da sala:
init: scasb salc and al,''-'/' add al,'/' int 29h jmp init
* PCs clássicos, por favor, tipo XT original ou Tandy 1000. Seu PC, não. Seu PC é velho. Mas há os que crêem que PCs podem ser clássicos. Esse assunto vai dar pano pra manga…