Mais um blog inútil.

Abril 16, 2009

Arvorezinha em amd64

Filed under: Arvorezinha,Assembly — dongs @ 0:33

Viva sirs. Aparentemente o pessoal esqueceu-se desta arch por ja haver uma em x86. Este código é essencialmente igual ao do falso, excepto que as chamadas ao kernel são feitas com a instrução syscall em vez de int 0x80. Eis o código:

SECTION .data
     star db '*'
     newline db 10
SECTION .text
     global _start
_start:
     mov r8,  5
     lea r9, [r8-4]
     mov rdx, r9
     mov rdi, r9
     mov rax, r9
_loop1:
     mov rbx, r9
_loop2:
     mov rsi, star
     syscall
     dec rbx
     jnz _loop2
     inc r9
     mov rsi, newline
     syscall
     cmp r9, r8
     jbe _loop1

     mov al, 60
     dec rdi
     syscall

Resultado:

[dcoder@localhost useless]$ make
yasm -f elf64 arvore_amd64.asm
ld arvore_amd64.o -o arvore_amd64
rm *.o
[dcoder@localhost useless]$ ./arvore_amd64
*
**
***
****
*****
[dcoder@localhost useless]$

Comentar

widgeon
widgeon
widgeon
widgeon