.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