#include ssize_t write(int fd, const void *buffer, size_t length) { ssize_t result; __asm__ ( "movq %0, %%rdi\n" "movq %1, %%rsi\n" "movq %2, %%rdx\n" "movq $1, %%rax\n" "syscall" : "=a"(result) : "g"(fd), "g"(buffer), "g"(length) : "rdi", "rsi","rdx"); return result; }