Помогите пожалуйста реализовать циклический сдвиг на n бит с помощью asm в Code Blocks...компилятору GCC нужен особый синтаксис:
http://www.ibiblio.org/gferg/ldp/GCC-In ... HOWTO.htmlя не разбираюсь в ассемблере, поэтому возникли трудности.
Посмотрите пожалуйста, правильно ли написана функция:
UINT_32 TGost::ROL(UINT_32 X, BYTE n)
{
asm("movl $X, %eax \N \T"
"rotl %eax, $n \N \T"
"movl %eax, $X"
);
return UINT_32(X);
}
P.S. побитовый XOR:
asm
( // исключающее ИЛИ ( S = S xor N2)
"movl $N2, %eax \N \T"
"xorl %S, %eax"
);
Правильно ли написано?
Эти участки программы компилируется, но в целом 2 ошибки:
Error: junk `N Trotl %eax' after register
Error: junk `N Txorl %S' after register
не знаю, в чём проблема, google не помог. Спасибо.