Как скомпилировать код на Си с ассемблерными вставками? ambiguous operand size for и invalid character (0xc2) in mnemonic

short int as (char x, short int y, char z)
{
    short int v_as=0;
    asm (
    ".intel_syntax noprefix; "
    "mov al,z    ;"
    "cbw         ;"
    "sub a, 4    ;"
    "imul y      ;"
    "mov bx, ax  ;"
    "mov al, x   ;"
    "cbw         ;"
    "add bx, ax  ;"
    "adc dx, 0   ;"
    ";Вычисление знаменателя"
    "imul 7      ;"
    "mov cx, 1   ;"
    "idiv cx     ;"
    "sub ax, 6   ;"
    ";Деление"
    "mov ax, cx  ;"
    "mov bx, ax  ;"
    "idiv cx     ;"
    "dec ax      ;"
    ";Получение результата из Ассемблера- v_as"
    "mov v_as, ax    ;"
    ".att_syntax; "
    ); //конец ассемблерной вставки

}

Код выдает ошибки "ambiguous operand size for `sub'" и "invalid character (0xc2) in mnemonic". если это важно, то компилятор просто gcc обычный...


Ответы (0 шт):