تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
دالة FastCompareMem
#1
SMP3 كتب : السلام عليكم و رحمة الله و بركاته

دالة FastCompareMem مكتوبة بالأسمبلي لمقارنة متغيرين في الذاكرة (مقارنة مؤشرين) ..

ترجع الدالة بالقيمة True ان كانت المقارنة ايجابية (P1=P2)

ترجع الدالة بالقيمة False ان كانت المقارنة سلبية (P1<>P2)
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;


rose
" اللهم أحسن خاتمتنا وأخرجنا من الدنيا علي خير"
أعضاء أعجبوا بهذه المشاركة : the9am3 , farfes , Cyperior , Newhak
#2
يعطيك العافية اخي خالد

ممكن ايضا استخدام
 
MOV ESI, [EAX]
MOV EDI, [EDX]
MOV ECX, LEN
CLD
REPE CMPSB
أعضاء أعجبوا بهذه المشاركة : the9am3 , farfes , TeRcO , Cyperior , Newhak


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 2 ) ضيف كريم