Как интегрировать файл ASM obj с программой на C ++? - PullRequest
4 голосов
/ 09 октября 2011

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

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

  1. Как мне в первую очередь добавить файлы ASM obj в VS2010?
  2. Как вызвать функцию в коде ASM из части кода C ++?
  3. Предположим, я создал функцию (в ASM), которая вычисляет значение и сохраняет его в налоговом регистре. Допустим, это называется compute. Смогу ли я получить возвращаемое значение в C ++, используя что-то вроде: int val=compute();?

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

Все эти примеры имеют то, что вам нужно:

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 ++.

0 голосов
/ 09 октября 2011

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

...