Nie bardzo działam biegle w asmeblerze a muszę zmienić tylko kawałek kodu na 64-bit czy może ktoś mi pomóc ?
function StrLPos(const Str1, Str2: PChar; Len1, Len2: integer): PChar; assembler; register;
// EAX = Str1, EDX = Str2, ECX = Len1,
{$ASMMODE intel}
asm
PUSH EDI
PUSH ESI
PUSH EBX
OR EAX,EAX
JE @@2
MOV ESI, Len2
INC ECX
OR EDX,EDX
JE @@2
OR ESI, ESI
JE @@2
SUB ECX, ESI
JBE @@2
MOV EDI,EAX
LEA EBX,[RSI-1]
MOV ESI,EDX
@@1:
LODSB
REPNE SCASB
MOV EAX,ECX
JNE @@2
PUSH EDI
MOV ECX,EBX
REPE CMPSB
POP EDI
MOV ECX,EAX
MOV ESI,EDX
JNE @@1
LEA EAX,[RDI-1]
JMP @@3
@@2: XOR EAX,EAX
@@3: POP EBX
POP ESI
POP EDI
end;
function StrLScan(const Str: PChar; Chr: Char; Len: integer): PChar;assembler; register;
// EAX = Str, DL=Chr, ECX = Len
{$ASMMODE intel}
asm
PUSH EDI
MOV EDI, EAX
MOV AL,DL
REPNE SCASB
MOV EAX,0
JNE @@1
MOV EAX, EDI
DEC EAX
@@1: POP EDI
end;
z góry dzięki