Eu inicializei a variável "buffer" no segmento .bss, mas poderia tê-lo feito em .data; o segmento .bss permite reservar espaço para variáveis não-inicializadas. Para maiores informações sobre as diferenças entre .data e .bss consulte o verbete ".bss" na wikipédia inglesa.
Sobre o seu programa, envie-o para o meu email que darei uma olhadinha!
[]s,
Fórum