aboutsummaryrefslogtreecommitdiff
path: root/gnu-efi/gnu-efi-3.0/apps/trivial.S
diff options
context:
space:
mode:
Diffstat (limited to 'gnu-efi/gnu-efi-3.0/apps/trivial.S')
-rw-r--r--gnu-efi/gnu-efi-3.0/apps/trivial.S43
1 files changed, 43 insertions, 0 deletions
diff --git a/gnu-efi/gnu-efi-3.0/apps/trivial.S b/gnu-efi/gnu-efi-3.0/apps/trivial.S
new file mode 100644
index 0000000..40bc68f
--- /dev/null
+++ b/gnu-efi/gnu-efi-3.0/apps/trivial.S
@@ -0,0 +1,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