2010-01-19 3 views
2

나는 이것을 짧지 만 강조 할 것입니다. Visual Studio에서 64 비트 코드를 만들 때 _asm 블록이 완전히 제거되었습니다. 내 질문은 프로젝트에서 호출 할 수있는 코드에서 어셈블리를 사용하는 방법에 대한 정보를 어디에서 찾을 수 있는가입니다. 어셈블리 파일과 마찬가지로 필자는 C++ 소스에서 직접 호출 할 수있는 "최적화 된"함수가 있다고 가정합니다.Visual Studio의 임베디드 어셈블리 파일

답변

2

한 가지 방법은 어셈블러 함수에 대한 C 템플릿을 작성한 다음 /FAs을 사용하여 해당 어셈블러 소스를 생성하는 것입니다 함수 템플릿. 그런 다음 C 템플릿 소스 대신 생성 된 어셈블러 소스를 사용하고 거기에서 빌드 할 수 있어야합니다. 그렇게하면 오류가 발생하기 쉬운 모든 ABI 자료를 자동으로 처리 할 수 ​​있습니다.

2

외부 어셈블리 파일을 작성하는 경우 컴파일러의 호출 규칙을 지원하는지 확인해야합니다. 그것의 너무 어려운. 물론 내장 함수를 사용하여 컴파일러에서 몇 가지 레지스터 및 명령어 순서를 변경하도록 할 수 있습니다.