Как интегрировать файл ASM obj с программой на C++?
Я хочу интегрировать код ASM и C++ в Visual Studio 2010. По сути, я хочу использовать определенные подпрограммы, созданные в ASM, в своем коде C++.
Итак, я хочу знать:
- Как мне в первую очередь добавить файлы ASM obj в VS2010?
- Как вызвать функцию в коде ASM из части кода C++?
- Предположим, что я делаю функцию (в ASM), которая вычисляет значение и сохраняет значение в налоговом реестре. Скажем, это называется compute. Смогу ли я получить возвращаемое значение в C++, используя что-то вроде:
int val=compute();
?
2 ответа
Решение
Все эти образцы имеют то, что вам нужно:
http://msdn.microsoft.com/en-us/library/t13a3526%28v=VS.80%29.aspx
Вам нужно будет позволить Visual Studio автоматически "конвертировать" их в новый формат проекта, но я только что попробовал это на примере PRIMESSTEP2, и это сработало.
Все, что вам нужно, это прототип функции, такой как:
void sieve(void); // prototype for Sieve of Eratosthenes function
И тогда вы можете реализовать их в ASM, и они будут связаны друг с другом. Вы возвращаете значения, помещая их в регистр EAX, и они будут передаваться как возвращаемое значение в C / C++.