51-м Кейлом не пользовался, но в ARM-овском проблемм не возникало. В хэлпе есть главы "Inline Assembly" и "Interfacing C to Assembler". Там более-менее ясно всё прописано. Главное - знать ран-тайм модель компилятора: в каких регистрах передаются параметры в функцию, в каких возвращается значение, как производятся операции с памятью. Ну, и в операциях со стэком, понятное дело, нужно разобраться.
Не думаю, что для 51-го различия столь уж кардинальны.
Объявляется же функция и вызывается совершенно обычным для С образом.
Если зададите вопрос конкретнее, может, и ответ получите более конкретный.