02-06-2013, 01:49 PM
السلام عليكم و رحمة الله و بركاته
دالة FastCompareMem مكتوبة بالأسمبلي لمقارنة متغيرين في الذاكرة (مقارنة مؤشرين) ..
ترجع الدالة بالقيمة True ان كانت المقارنة ايجابية (P1=P2)
ترجع الدالة بالقيمة False ان كانت المقارنة سلبية (P1<>P2)
دالة FastCompareMem مكتوبة بالأسمبلي لمقارنة متغيرين في الذاكرة (مقارنة مؤشرين) ..
ترجع الدالة بالقيمة True ان كانت المقارنة ايجابية (P1=P2)
ترجع الدالة بالقيمة False ان كانت المقارنة سلبية (P1<>P2)
PHP كود :
function FastCompareMem(P1, P2: Pointer; Length: Integer): Boolean;
asm
PUSH ESI
MOV EAX,[EAX]
MOV EDX,[EDX]
MOV ESI,ECX
@NEXTCOMP:
MOV CL,[EAX]
MOV CH,[EDX]
INC EAX
INC EDX
CMP CL,CH
JNE @FALSE
DEC ESI
JNE @NEXTCOMP
JMP @TRUE
@FALSE:
MOV EAX,FALSE
JMP @FIN
@TRUE:
MOV EAX,TRUE
@FIN:
POP ESI
end;