| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > Delphi+Assembler (xor) |
| Автор: takep 16.6.2008, 16:03 |
| function encrypt(str:string; len,key:dword):string;assembler; asm pushad ;сохранение регистров на всякий случай mov ecx,len ;в счётчик цикла пихаем длину строки mov ebx,key ;в рандомный другой регист пихаем ключ шифрования lea esi,[str] ; прописываем в esi адрес первого симовла строки lea edi,[result] ;в edi адрес переменной результата @cyc: lodsd ; в EAX идет очередной символ из ebx; SI++ xor eax,ebx ; stosd ; в резалт пишем аккумулятр loop @cyc popad ;воссатавливаем зачения регистров end; вся соль в том, что оно не пишет в result. в чем ошибки? (функция ксорит посимвольно строку по ключу) |
| Автор: W4FhLF 16.6.2008, 16:35 | ||
Он пишет, но ты переписываешь |
| Автор: takep 16.6.2008, 16:51 |
| я сначала без пушада делал, всеравно нифига. не в нем дело. и что, получается, комманда асемблера медленнее чем делфи? |
| Автор: W4FhLF 16.6.2008, 17:11 | ||
Ну запихни то, что тебе надо явно:
Делфи компилирует программы в точно такой же ассемблер, а иногда они получаются даже быстрее собственноручно написанного ассемблере кода, ибо компилятор знает о процессоре немало(хотя в случае делфи маловато) |
| Автор: ama_kid 8.7.2008, 20:57 | ||
не знаю, насколько актуально (все-таки полмесяца прошло
|