GCC: putchar (char) na montagem inline

Transbordar,

Como posso implementar o procedimento putchar (char) usando somente assembly in-line? Eu gostaria de fazer isso no assembly x86-64. A razão para eu fazer isso é implementar meu próprio padrão-lib (ou pelo menos parte dele). Aqui está o que eu tenho até agora:

void putchar(char c)
{   
    /* your code here: print character c on stdout */
    asm(...);
}   

void _start()
{   
    /* exit system call */
    asm("mov $1,%rax;"
        "xor %rbx,%rbx;"
        "int  $0x80"
    );  
}

Eu estou compilando com:

gcc -nostdlib -o putchar putchar.c

Obrigado por me ajudar!

questionAnswers(3)

yourAnswerToTheQuestion