Arvorezinha
O _intensdown_ no mirc disse que hoje tiveram a fazer na escola em VB um programinha que davam um certo valor, e o gajo desenhava estilo uma arvore em ascii. Por exemplo, dava o valor 5, e aquilo desenhava:
* ** *** **** *****
Como ando ca pica toda do cracking do assembly e tal, tentei fazer isso em assembly, e aqui está o resultado de 3 horas de work:
;this asm can never fail section .data estrela db '*' len equ $-estrela newline db 0xa final dd 5 counter1 dd 0 counter2 dd 5 section .text global main ;must be declared for linker (ld) main: ;tell linker entry point _ciclo1: mov eax, [counter1] mov ebx, [final] cmp eax, ebx je _fim ; se o contador2 == final sai-se mov dword [counter2],0 ; mete o contador2 a 0 _ciclo2: mov eax,[counter2] cmp eax,[counter1] jle _estrela ; se o contador2 for menor que o 1 entao : estrelinha, senão é uma newline ; newline mov edx,len mov ecx,newline mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov eax,[counter1] inc eax mov dword [counter1], eax ; incrementa o contador 1 jmp _ciclo1 _estrela mov edx,len mov ecx,estrela mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov eax,[counter2] inc eax mov dword [counter2],eax ; incrmenta o contador 2 jmp _ciclo2 _fim: mov eax,1 ;system call number (sys_exit) int 0x80 ;call kernel
[bud@daemon tree]$ make nasm -f elf -l tree2.lst tree2.asm gcc -o tree tree2.o [bud@daemon tree]$ ./tree * ** *** **** ***** [bud@daemon tree]$
Podem fazer download do sores aqui.
You lie. Não foi hoje que fizemos isto, foi na semana antes das férias do natal porque cheguei atrasado à aula.
codigo de nivel excita um gajo ao nível suficiente pra gerar aguadilha de cú nas horas
[...] do grande sucesso que foi o post da Arvorezinha em x86 assembly, fiquei sempre com ela fisgada para fazer isso em outros tipos de processador diferentes. Hoje [...]
[...] do portugal-a-rippar, parece que um tal de Dumpster, em menos de 35 minutos conseguiu ripar a minha arvorezinha de x86 e trocar os nomes das variaveis e labels. Nem o titulo se dignou a mudar, chamou-lhe arvorezinha [...]