![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте!
Обнаружил на сайте http://www.delphisources.ru/pages/fa...ncryption.html исходник IDEA шифрования, пытаюсь перенести его на php. Встретилась вставка на ассемблере, которую не могу понять: Код:
function ROL(a, s: LongWord): LongWord; asm mov ecx, s //ecx больше нигде не используется. для чего? rol eax, cl //eax и cl тоже. для чего? end; и далее идет использование этой функции Код:
K1 := ROL(K1, K2) xor K2; не понимаю, для чего в ней нужен неиспользуемый параметр a? и вообще, функция вроде ничего не возвращает, а как тогда она используется? Буду премного благодарен за ответы! |
|
#2
|
||||
|
||||
|
cl это младший байт регистра ecx. в eax находиться значение параметра a. в нем же (eax) и будет находиться результат всей функциии ROL(a, s: LongWord): LongWord. для сдвига командой rol используются только 5 младших битов регистра cl. диапазон 0.31, думаю понятно почему.
Последний раз редактировалось NumLock, 08.04.2011 в 08:39. |
|
#3
|
|||
|
|||
|
спасибо!
только ассемблера не знаю абсолютно есть ли возможность проделать такую же операцию на php? подскажите, хотя бы в какую сторону копать) |
|
#4
|
||||
|
||||
|
http://angry-web.blogspot.com/2010/02/php.html
rol это сдвиг влево (как работает не проверял) |