Home | History | Annotate | Line # | Download | only in apps
trivial.S revision 1.1.1.1.6.2
      1 /*	$NetBSD: trivial.S,v 1.1.1.1.6.2 2014/05/22 11:40:57 yamt Exp $	*/
      2 
      3 	.text
      4 	.align 4
      5 
      6 	.globl _start
      7 _start:
      8 #if 0
      9         pushl %ebp
     10         movl %esp,%ebp
     11         pushl %ebx		# save ebx
     12         movl 12(%ebp),%eax	# eax <- systab
     13 	movl 24(%eax),%ebx	# ebx <- systab->FirmwareVendor
     14 	pushl %ebx
     15         movl 44(%eax),%ebx	# ebx <- systab->ConOut
     16         pushl %ebx
     17         movl 4(%ebx),%eax	# eax <- conout->OutputString
     18         call *%eax
     19         movl -4(%ebp),%ebx	# restore ebx
     20         leave
     21         ret
     22 
     23 #else
     24 
     25         pushl %ebp
     26         movl %esp,%ebp
     27         pushl %ebx
     28 	call 0f
     29 0:	popl %eax
     30 	addl $hello-0b,%eax
     31 	pushl %eax
     32         movl 12(%ebp),%eax	# eax <- systab
     33         movl 44(%eax),%ebx	# ebx <- systab->ConOut
     34         pushl %ebx
     35         movl 4(%ebx),%eax	# eax <- conout->OutputString
     36         call *%eax
     37         movl -4(%ebp),%ebx
     38         leave
     39         ret
     40 
     41 	.section .rodata
     42 	.align 2
     43 hello:	.byte 'h',0,'e',0,'l',0,'l',0,'o',0,'\n',0,'\r',0,0,0
     44 
     45 #endif
     46