Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

ASM и DELPHI   Найти похожие ветки 

 
rihtich   (2006-05-23 05:40) [0]

Здравствуйте
Помогите разобраться с ASM, объясните, что делает следующая функция:

  procedure decritt(var s:string; key:integer);
   asm
   mov ecx, key
   mov dl, cl
   shr ecx, 20
   mov dh, cl
 
   mov esi, s
   mov esi, [esi]
   or  esi, esi    // nil string
   jz  @OUT
   
   // now esi points to the first character of the string
   
   mov ah, 10111000b
 
   mov ecx, length(s)
   or  ecx, ecx
   jz  @OUT
 @IN:
   mov al, [esi]
   xor al, ah
   rol al, 3
   xor al, dh
   sub al, dl
 
   mov [esi], al
   inc esi
   ror ah, 3
   dec ecx
   jnz @IN
 @OUT:
   end; // decritt


 
balepa ©   (2006-05-23 07:44) [1]

Не отсюда ли взято ?
И это не функция, а процедура
http://andrq.org/forum/viewtopic.php?t=660&lighter=


 
БарЛог ©   (2006-05-23 08:21) [2]

> mov ecx, key
Народ, а чем отличается ecx от cx?
В нем два слова чтоли?

ЗЫ Отстал от жизни.


 
Marser ©   (2006-05-23 08:31) [3]

> [2] БарЛог ©   (23.05.06 08:21)
> > mov ecx, key
> Народ, а чем отличается ecx от cx?
> В нем два слова чтоли?

Да. 32-разрядный регистр.


 
balepa ©   (2006-05-23 08:32) [4]


> БарЛог ©   (23.05.06 08:21) [2]


32-битные EAX – EDX появились с введением 32-битной архитектуры в 80386. Кроме этого, отдельные байты в 16-битных регистрах AX – DX тоже имеют свои имена и могут использоваться как 8-битные регистры. Старшие байты этих регистров называются AH, BH, CH, DH, а младшие — AL, BL, CL, DL

"Ассемблер для DOS, Windows и Unix"
1999 Издательство «ДМК Пресс»


 
БарЛог ©   (2006-05-23 08:44) [5]

Так и думал, спасибо :)



Страницы: 1 вся ветка

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.061 c
1-1146918985
pirate
2006-05-06 16:36
2006.06.18
Out of memory


2-1149105731
Тимофеич
2006-06-01 00:02
2006.06.18
работа с текстом


2-1148765656
IAH
2006-05-28 01:34
2006.06.18
Как динамически менять имя метода/свойста?


15-1148298698
Gryegh
2006-05-22 15:51
2006.06.18
GPRS перестало работать! Что делать?


2-1149168121
Revan
2006-06-01 17:22
2006.06.18
Listbox