Показать сообщение отдельно
  #1  
Старый 13.10.2008, 11:21
darksoftware darksoftware вне форума
Прохожий
 
Регистрация: 03.09.2008
Сообщения: 20
Репутация: 10
Лампочка Ror / Rol в Delphi

Видел где-то код функций lrotr и lrotl, но тот код был довольно нестабилен, что я заметил, использовав его при портировании EnRUPT и написании VigerePlus 3.1.

Вот их простая замена. Для rol просто меняем инструкцию ror -> rol


function ROR_u32 (X: LongWord; N: byte): LongWord;
asm
MOV EAX, X
MOV CL, N
ROR EAX, CL
end;

function ROR_u8 (X, N: byte): byte;
asm
MOV AL, X
MOV CL, N
ROR AL, CL
end;

function lrotr8 (X: LongWord): LongWord;
asm
MOV EAX, X
ROR EAX, 8
end;
Ответить с цитированием