diff options
Diffstat (limited to 'gnu-efi/gnu-efi-3.0/apps/trivial.S')
-rw-r--r-- | gnu-efi/gnu-efi-3.0/apps/trivial.S | 43 |
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 |