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.
Well it looks like you're trying to link an ELF file as a normal binary. Look in the wiki, or just assemble the fasm file as a binary. And use 'global', not 'public'
Your program doesn't print anything useful because you don't use the return value of the get_vendor() function.
Also, "public" is correct, "global" is wrong. And no, you can't assemble as binary and then link it with a C program. If you're ld for Windows you'd probably want to assemble it as MS COFF instead of elf, though.
Conway's Law: If you have four groups working on a compiler, you'll get a 4-pass compiler. Melvin Conway
About the first code: Your buffer is WAY to small. It's only 4 bytes. You write past the end of it. Fix that and then start stripping out parts from the function until it doesn't crash.
Conway's Law: If you have four groups working on a compiler, you'll get a 4-pass compiler. Melvin Conway
Sorry, it works fine with MS COFF ( and COFF ) , the only problem is that the bootloader loads only 2 sectors but my kernel is too big ( 10 sectors ) ^^"