summaryrefslogtreecommitdiff
path: root/apps/trivial.S
blob: 40bc68fedaab3b05a3d5f7c31ac0a2ea43eab7b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
	.text
	.align 4

	.globl _start
_start:
#if 0
        pushl %ebp
        movl %esp,%ebp
        pushl %ebx		# save ebx
        movl 12(%ebp),%eax	# eax <- systab
	movl 24(%eax),%ebx	# ebx <- systab->FirmwareVendor
	pushl %ebx
        movl 44(%eax),%ebx	# ebx <- systab->ConOut
        pushl %ebx
        movl 4(%ebx),%eax	# eax <- conout->OutputString
        call *%eax
        movl -4(%ebp),%ebx	# restore ebx
        leave
        ret

#else

        pushl %ebp
        movl %esp,%ebp
        pushl %ebx
	call 0f
0:	popl %eax
	addl $hello-0b,%eax
	pushl %eax
        movl 12(%ebp),%eax	# eax <- systab
        movl 44(%eax),%ebx	# ebx <- systab->ConOut
        pushl %ebx
        movl 4(%ebx),%eax	# eax <- conout->OutputString
        call *%eax
        movl -4(%ebp),%ebx
        leave
        ret

	.section .rodata
	.align 2
hello:	.byte 'h',0,'e',0,'l',0,'l',0,'o',0,'\n',0,'\r',0,0,0

#endif