Ругается на asm

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
syb
незнакомец
Сообщения: 2
Зарегистрирован: 21.03.2016 13:24:13

Ругается на asm

Сообщение syb »

Проект работал, и тут я решил часть кода перетащить в поток. Лазарь стал ругаться на IdGlobalProtocols а именно на ассемблеровскую вставку.Работаю под w7-64

Код: Выделить всё

function ROL(AVal: LongWord; AShift: Byte): LongWord;
{$IFDEF DONTHAVENATIVEX86}
function ROL(AVal: LongWord; AShift: Byte): LongWord;
begin
   Result := (AVal shl AShift) or (AVal shr (32 - AShift));
end;

function ROR(AVal: LongWord; AShift: Byte): LongWord;
begin
   Result := (AVal shr AShift) or (AVal shl (32 - AShift)) ;
end;

{$ELSE}

// Arg1=EAX, Arg2=DL
function ROL(AVal: LongWord; AShift: Byte): LongWord;
asm
  mov  cl, dl -ЗДЕСЬ ГОВОРИТ НЕ ЗНАЕТ ЧТО ТАКОЕ CL
  rol  eax, cl
end;

function ROR(AVal: LongWord; AShift: Byte): LongWord;
asm
  mov  cl, dl
  ror  eax, cl
end;
{$ENDIF}     

Что это может быть?
Аватара пользователя
bormant
постоялец
Сообщения: 408
Зарегистрирован: 21.03.2012 11:26:01

Сообщение bormant »

Это может быть стиль ассемблера AT&T, полечить при помощи {$ASMMODE Intel}, директив, подразумевающих ее, или ключика командной строки -Rintel.
http://www.freepascal.org/docs-html/pro ... -90001.2.3
syb
незнакомец
Сообщения: 2
Зарегистрирован: 21.03.2016 13:24:13

Сообщение syb »

Спасибо , помогло . А где бы почитать полный список директив?
Аватара пользователя
bormant
постоялец
Сообщения: 408
Зарегистрирован: 21.03.2012 11:26:01

Сообщение bormant »

Руководство программиста, глава 1: http://www.freepascal.org/docs-html/prog/prog.html
То есть, там же, но чуть повыше :D
shyub
постоялец
Сообщения: 112
Зарегистрирован: 25.11.2014 22:15:19

Сообщение shyub »

Вот здесь на русском языке: http://av-mag.ru/doc/fpc-programmer-manual.htm
Ответить