asm 파일에서 함수를 정의하고이 함수를 Cpp 파일/함수에서 호출하려고합니다. 또한 64 비트 플랫폼에서 프로젝트를 컴파일해야합니다.C++에서 asm 호출
어셈블리 코드에 대해 많이 알지 못해서 저에게 도움을주십시오. 어떤 도움을 주시면 감사하겠습니다.
감사
asm 파일에서 함수를 정의하고이 함수를 Cpp 파일/함수에서 호출하려고합니다. 또한 64 비트 플랫폼에서 프로젝트를 컴파일해야합니다.C++에서 asm 호출
어셈블리 코드에 대해 많이 알지 못해서 저에게 도움을주십시오. 어떤 도움을 주시면 감사하겠습니다.
감사
는 코드는 도움이 될,하지만 당신은 일반 C++ 함수 내에서 인라인 어셈블리를 배치 할 경우이 같은 ASM 블록에 배치하여 그렇게 할 수 있습니다
void myClass::myFunc() {
// cpp code
int a = 0;
// ...
// asm code
__asm {
mov eax, ebx;
// ...
};
// more cpp code
// ...
}
을 This file은 CPUID로 작업을 수행하는 ffdshow의 ASM 파일입니다. 그것은 모두 x64와 x86입니다. YASM은 그것을 조립하는 데 사용됩니다.
오늘날 대부분의 사람들은 ASM 코드를 작성하는 것이 아니라 내장 함수를 사용합니다. 모든 SSE/AVX/등의 고유 기능이 있습니다. 저레벨의 ring0 인 경우에도 마찬가지입니다. 내장 함수 (Intrinsic functions)는 컴파일러가 추가 최적화를 할 수있게 해주고 32 비트와 64 비트 빌드간에 공유됩니다.
인라인 asm은 32 비트 전용입니다 (Visual Studio). 64 비트 ASM은 별도의 파일에 있어야합니다. – egur
안녕 스미스 먼저 도움을 주셔서 감사합니다. 그러나 우리는 x64에서 컴파일 할 수 없으므로 일반 C++ 함수 내에 인라인 어셈블리를 배치하고 싶지 않습니다. 64 비트 용 asm/s 파일에서 어셈블리 코드를 분리해야합니다. – vsoni