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 can see at least three things wrong with your code.
You're using multiple __asm__ statements, giving the compiler freedom to rearrange (and break) them as it sees fit.
You're lying to the compiler about the side effects. The compiler will make false assumptions that will break your code.
You're attempting to call the BIOS from within your kernel, which is most likely already in protected mode and therefore can no longer access the BIOS.
I'd fix the order of the operands first.
Then put in the "$"s.
Then ....
Actually, i'd learn how to program assembler using AT&T syntax. Guess what - Google will help here.
A second word of advice to the OP (even though my first has been ignored). People are soon going to get very tired of these questions that demonstrate a lack of required knowledge. These forums are not programming tutorials for beginners.