Я попытался скомпилировать с GCC встроенным кодом сборки, который прекрасно скомпилирован с MSVC , но получил следующие ошибки для основных операций:
// var is a template variable in a C++ function
__asm__
{
mov edx, var //error: Register name not specified for %edx
push ebx //error: Register name not specified for %ebx
sub esp, 8 //error: Register name not specified for %esp
}
Просматривая документацию , охватывающую эту тему, я обнаружил, что, вероятно, мне следует преобразовать (даже если меня интересует только x86) Intel код сборки в стиле AT & T стиль.Однако после попытки использовать стиль AT & T я получил еще более странные ошибки:
mov var, %edx //error: Expected primary-expression before % token
mov $var, edx //error: label 'LASM$$s' used but not defined
Следует также отметить, что я пытался использовать LLVM-GCC , но он с треском провалился из-за внутренних ошибок после обнаружения встроенной сборки.
Что мне делать?