Как интегрировать файл ASM obj с программой на C++?

Я хочу интегрировать код ASM и C++ в Visual Studio 2010. По сути, я хочу использовать определенные подпрограммы, созданные в ASM, в своем коде C++.

Итак, я хочу знать:

  1. Как мне в первую очередь добавить файлы ASM obj в VS2010?
  2. Как вызвать функцию в коде ASM из части кода C++?
  3. Предположим, что я делаю функцию (в 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++.

Не проще ли использовать встроенный ассемблер?

Другие вопросы по тегам