trivial.S revision 1.1 1 1.1 jakllsch /* $NetBSD: trivial.S,v 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