Сдесь проблем никаких нет. Довольно много функций из стандартной библиотеки
'C' написанно именно на ассемблере.
Тут самое главное правильно правильно подготовить
.obj файл из
.asm и
.lib из
.obj.
Для того, что бы добавить файл
.lib к своему проекту можно поступать двумя разными способами:
1 - сообщить линкеру о добавляемой библиотеке через его параметры в командной строке. Обычно библиотека дописывается в свойствах проекта.
2 - добавить в тексте программы (обычно в самом начале)такую строку:
#pragma comment(lib,"my.lib")
Что также является указанием для линкера.
Прототипы вызывающих из библиотеки функций, конечно же должны быть прописанны. Что бы избежать разных недоразумений лучше прописывать их примерно таким способом:
int __cdecl my_func_asm(int a, int b);
Сдесь явно указывается способ вызова функции как
__cdecl, теперь компилятор в любом случае будет гинерировать код для вызова данной функции с использованием стандартного
C-го соглашения.
Кстати, функция на
asm должна использовать именно данное соглашени для получения параметров, возвращения результата и так же востанавливать после себя состояние определенных регистров.
Кстати: из этой темы получилась бы неплохая статья.