Из-за того, что MSVC10 не позволяет использовать встроенные инструкции ASM при ориентации на архитектуру x64, я ищу любые способы обойти такие ограничения. Из Google я узнал, что написание и компиляция отдельных модулей ASM, а затем связывание с ними и вызов их из C ++ - это один из способов, однако я понятия не имею, как бы я это сделал. Есть ли другие способы, кроме использования встроенных функций компилятора? Или как можно писать / компилировать / связывать отдельные модули ASM в VS2010?
Использование ASM при компиляции x64 C ++ с MSVC10
Ответы (1)
Вы можете использовать отдельную программу на ассемблере, которая будет компилировать полные исходные файлы ассемблера в объектные файлы. Пока вы следуете правильным соглашениям о вызовах, вы можете предоставлять прототипы функций для использования в C ++, связывая вместе созданные C ++ и ASM объектные файлы.
Я использую yasm. Он использует синтаксис Intel, поддерживает x64 windows и интеграцию с VS2010. Он имеет полезный макрос и включает функции. Должен признаться, что мне не приходилось использовать его с VS2008, когда интеграция работала немного иначе, но он должен хорошо работать с VS2010.
person
CB Bailey
schedule
25.08.2010