Einzelnen Beitrag anzeigen

brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#2

Re: [asm] Variablenwerte vergleichen

  Alt 29. Mär 2006, 10:46
Ich hatte dir bei der gleichen Sache schonmal geholfen.

Du vergleichst hier POINTER die sind eben nicht gleich. Sie zeigen nur auf ein array.
Du musst jedes Element in diesem array vergleichen, wie du es auch mit einem normalen array machen würdest.

Code:
asm
  pushad
  mov ebx, Image1[0] //Pixelarray
  mov edx, Image2[0]
  mov ecx, DWORD PTR [count] //wobei count = image1.width*image1.height*bytesperpixel (24bit = 3)

  jmp @@inschleife
@@weiter:
  mov ax, [ebx]
  cmp ax, byte ptr [edx] //erstes byte ist gleich
  jne @@nichtgleich
  dec ecx
  inc ebx
  inc edx
@@inschleife:
  test ecx, ecx
  jnz @@weiter
@@gleich:
  xor eax, eax
  inc eax
  popad
  ret
@@nichtlgleich:
  xor eax, eax
  popad
  ret
end;

wobei das noch langsamer ist als compremem wie ich dir das vorgeschlagen hatte
schau dir einfach mal comparemem an (assembler repeat cmp)
  Mit Zitat antworten Zitat