14d1135e4Sbellard #include <asm/unistd.h> 24d1135e4Sbellard 3*4a6648f4SBlue Swirl static inline volatile void exit(int status) 44d1135e4Sbellard { 54d1135e4Sbellard int __res; 64d1135e4Sbellard __asm__ volatile ("movl %%ecx,%%ebx\n"\ 74d1135e4Sbellard "int $0x80" \ 84d1135e4Sbellard : "=a" (__res) : "0" (__NR_exit),"c" ((long)(status))); 94d1135e4Sbellard } 104d1135e4Sbellard 11*4a6648f4SBlue Swirl static inline int write(int fd, const char * buf, int len) 124d1135e4Sbellard { 134d1135e4Sbellard int status; 144d1135e4Sbellard __asm__ volatile ("pushl %%ebx\n"\ 154d1135e4Sbellard "movl %%esi,%%ebx\n"\ 164d1135e4Sbellard "int $0x80\n" \ 174d1135e4Sbellard "popl %%ebx\n"\ 184d1135e4Sbellard : "=a" (status) \ 194d1135e4Sbellard : "0" (__NR_write),"S" ((long)(fd)),"c" ((long)(buf)),"d" ((long)(len))); 204d1135e4Sbellard } 214d1135e4Sbellard 22bb326a37Sbellard void _start(void) 234d1135e4Sbellard { 244d1135e4Sbellard write(1, "Hello World\n", 12); 254d1135e4Sbellard exit(0); 264d1135e4Sbellard } 27