16-09-2022, 03:18 PM
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;