File:  [Qemu by Fabrice Bellard] / qemu / tests / hello-i386.c
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:35:03 2018 UTC (3 years, 3 months ago) by root
Branches: qemu, MAIN
CVS tags: qemu1001, qemu1000, qemu0151, qemu0150, qemu0141, qemu0140, HEAD
qemu 0.14.0

    1: #include <asm/unistd.h>
    2: 
    3: static inline volatile void exit(int status)
    4: {
    5:   int __res;
    6:   __asm__ volatile ("movl %%ecx,%%ebx\n"\
    7: 		    "int $0x80" \
    8: 		    :  "=a" (__res) : "0" (__NR_exit),"c" ((long)(status)));
    9: }
   10: 
   11: static inline int write(int fd, const char * buf, int len)
   12: {
   13:   int status;
   14:   __asm__ volatile ("pushl %%ebx\n"\
   15: 		    "movl %%esi,%%ebx\n"\
   16: 		    "int $0x80\n" \
   17: 		    "popl %%ebx\n"\
   18: 		    : "=a" (status) \
   19: 		    : "0" (__NR_write),"S" ((long)(fd)),"c" ((long)(buf)),"d" ((long)(len)));
   20: }
   21: 
   22: void _start(void)
   23: {
   24:     write(1, "Hello World\n", 12);
   25:     exit(0);
   26: }

unix.superglobalmegacorp.com