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

Вниз

КОД из ASM в Delphi   Найти похожие ветки 

 
Fman   (2007-05-28 20:38) [0]

Уважаемые кодеры, помагите переписать в функцию следующий asm-код
Входные данные
AL (word)
CL (байт)
строка 24 байта

MOV CX,WORD PTR DS:[EAX+1]
MOV DL,BYTE PTR DS:[EAX]
ADD CX,3
INC DL
PUSH ECX
PUSH EDX

LEA ESI,DWORD PTR SS:[ESP+10]  // Както сюда нужно передать строку [x24 байт]
MOV EDI,1B
L002:
MOV DL,BYTE PTR DS:[ESI]
ADD DL,CL
XOR DL,AL
MOV BYTE PTR DS:[ESI],DL
INC ESI
DEC EDI
JNZ L002

На выходе функция должна выдать ESI


 
Anatoly Podgoretsky ©   (2007-05-28 20:49) [1]

> Fman  (28.05.2007 20:38:00)  [0]

В таком случае не возможно, правила использования АСМ требуют что бы содержимое ESI осталось неизменным.


 
Fman   (2007-05-28 20:54) [2]

Хм... а можно этот алгоритм как-нибудь на дельфи изобразить?


 
Anatoly Podgoretsky ©   (2007-05-28 20:59) [3]

> Fman  (28.05.2007 20:54:02)  [2]

Конечно можно,
1. убрать использование сегментных регистров
2. сохранить при входе EDI/ESI - восстановить при выходе
3. результат вернуть через EAX

И конечно надо определить функцию, пока здесь просто кусок кода.


 
Сергей М. ©   (2007-05-29 08:21) [4]


> AL (word)


???????


> MOV CX,WORD PTR DS:[EAX+1]


Это никак не вяжется со входными условиями "AL (word)"

Ну и еще куча других нестыковок.

Это что, реализация алгоритма шифрования или где ?

Опиши детально конечную задачу ..


 
MBo ©   (2007-05-29 10:53) [5]

>помагите переписать в функцию следующий asm-код
Наверно, проще сказать, что должна делать функция, и сразу написать ее на Дельфи


 
oxffff ©   (2007-05-29 12:00) [6]

const EncryptedSize=$1B;

type
    EncryptedData=array[1..EncryptedSize] of byte;

procedure EnCrypt(var data:EncryptedData;Adder,Xorer:byte);
var i:integer;
begin
for i:=1 to length(data) do
  begin
  data[i]:=data[i]+Adder;
  data[i]:=data[i] xor Xorer;
  end;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
15-1184013347
Petr V. Abramov
2007-07-10 00:35
2007.08.05
положительные стороны совка....


15-1184252469
ocean
2007-07-12 19:01
2007.08.05
Page Maker


15-1183732420
oldman
2007-07-06 18:33
2007.08.05
Для любителей Linux.


3-1177490026
zero
2007-04-25 12:33
2007.08.05
Долго выполняеться запрос


2-1183794325
Kolan
2007-07-07 11:45
2007.08.05
Событие СразуПослеСозданияФормы как получить?