Доброе утро, кто нибудь может перевести данную функцию в масм!? function Crypt(const p: String): String; var i: Integer; begin Result := ''; for i := 1 to Length(p) do Result := Result + Chr(Ord(p)+10); end;
Перевод очень сильно зависит от того, чем именно является тип String: в разных версиях Дельфей он разный, плюс на него влияют параметры компиляции. Проще, наверное, посмотреть, во что эту функцию превратил сам компилятор.
Код (Text): strlen proc pstr:dword mov eax,pstr @@: cmp dword ptr [eax],0 jz @f inc eax jmp @b @@: sub eax,pstr ret strlen endp Crypt proc p:dword invoke strlen,p add eax,p @@: cmp eax,p jz @f dec eax add byte ptr [eax],10 jmp @b @@: ret Crypt endp
и более короткий вариант и быстрый вариант Код (Text): Crypt proc p:dword mov eax, p jmp @@begin @@: add byte ptr [eax], 10 inc eax @@begin: cmp byte ptr [eax], 0 jnz @b ret Crypt endp