OP : , :
#ifdef _MSC_VER
# define ASM(asm_literal) \
__asm { \
asm_literal \
};
#elif __GNUC__ || __clang__
# define ASM(asm_literal) \
"__asm__(\"" \
#asm_literal \
"\" : : );"
#endif
, , .
float abs(float x) {
ASM( fld dword ptr[x] );
ASM( fabs );
ASM( fstp dword ptr[x] );
return x;
}
, GCC clang AT & T/UNIX, MSVC Intel ( ). , , GCC/clang Intel. __asm__(".intel_syntax noprefix");/__asm__(".att_syntax prefix"); ( reset , , , , C). :
#ifdef _MSC_VER
# define ASM(asm_literal) \
__asm { \
asm_literal \
};
#elif __GNUC__ || __clang__
# define ASM(asm_literal) \
"__asm__(\".intel_syntax noprefix\");" \
"__asm__(\"" \
#asm_literal \
"\" : : );" \
"__asm__(\".att_syntax prefix\");"
#endif
Or you can also compile using GCC / clang using a flag -masm=intelthat includes global syntax.
Ps0ke source
share