|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
не понимаю асм в pascal
Здравствуйте!
Обнаружил на сайте 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 это сдвиг влево (как работает не проверял) Пишу программы за еду. __________________ |