Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I use this multiboot header and I think grub2 DO initialize the VBE for me because I really get a 800*600 (or 1024*768 when I change the videomode field in multiboot_header)qemu window after I boot my kernel.But When I begin to debug, I found that flags in multiboot_info is 0x1267, the bit[11] is not set,so I can't get the VBE information.what's wrong?
Firstly, I do not see your entry point being defined anywhere. I presume it is 'start' and therefore you initially start executing 16384 bytes of garbage. Secondly, what ABI is your compiler using? You are pushing ebx to the stack and therefore assuming the cdecl calling convention, but your compiler may not expect this (especially if you are using the system compiler on a 64-bit machine). Also, you do not anywhere stop the compiler using e.g. mmx or sse functionality, which you haven't set up for.