Насчет передачи параметров. Тут дело в следующем. Такой способ испоьзуется если в проекте стоит флажок Use ICCA90 1.x calling conventions (у меня версия 2.28). Вы уточните в соответствии с Compiler Reference Guide для Вашей версии.
Насчет включения асм файлов в проект. У меня никогда проблем не было. Поочему у Вас такое происходит непонятно. Может быть все что угодно, например, имена каталога в пути к файлу, написанные кириллицей. А может еще что-то. Сам код вроде правильный. Может имена функции не совпадают в разных модулях. В общем, надо экспериментировать, ошибка рано или поздно обнаружится. Но может имеет смысл функцию просто в Си реализовать. Я не думаю, что она получится намного длиннее Вашей на асм.