Вообще-то если все делать правильно, то ASM и С отлично друг с другом дружат. Сейчас втянулся и только на смешанном и пишу...
Для начала, приведенный текст С-шным никак не назвать... Для того чтобы компилятор все нормально переварил нужно указывать входные-выходные аргументы, изменяемые регистры и прочие...
А если совсем по правильному делать, то сперва нужно почитать документацию. Есть достаточно подробное описание С-шной модели, т.е. как устроен стек, как им пользоваться из асм-ра, как правильно передавать и получать аргументы...
Sorry, за повторы инет - собака тормозит...
Кстати, в описание С модели также описано какие регистры и для чего нужно использовать. Если сам описание не найдеш, то могу закачать куда-нибудь...
Короче резюме:
Учите мат.часть, и все у Вас будет хорошо