14d1135e4Sbellard #include <asm/unistd.h> 24d1135e4Sbellard 349cdaea1SCatalin Patulea static inline 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 114a6648f4SBlue 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))); 2049cdaea1SCatalin Patulea return status; 214d1135e4Sbellard } 224d1135e4Sbellard 23*553a5a60SFam Zheng void _start(void); 24bb326a37Sbellard void _start(void) 254d1135e4Sbellard { 264d1135e4Sbellard write(1, "Hello World\n", 12); 274d1135e4Sbellard exit(0); 284d1135e4Sbellard } 29