delphi4arab منتديات دلفي للعرب

نسخة كاملة : دالة FastCompareMem
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم و رحمة الله و بركاته

دالة 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
;