![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Видел где-то код функций 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; Последний раз редактировалось darksoftware, 13.10.2008 в 11:25. |