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