Aquí les dejo una forma sencilla de comparar dos cadenas carácter a carácter...

Código: Seleccionar todo

include 'E:\ASM\FASMP\INCLUDE\win32ax.inc'
.code
start:
 stdcall hStrcmp,"Indetectables.net","Indetectables.com.ar"

 cmp ecx,0
 jne diferentes
 je iguales


 iguales:
 invoke MessageBox,0,"¡Son iguales!",0,0
 invoke ExitProcess,0

 diferentes:
 invoke MessageBox,0,"¡Son diferentes!",0,0
 invoke ExitProcess,0

.end start

proc hStrcmp,cCadenaA,CadenaB
  ; Usage  hStrcmp,'Hi friend','Hi friend2'  /// RETURN VALUE = ECX

  xor ecx,ecx
  xor eax,eax
  xor ebx,ebx

  compstr:
     mov eax,[cCadenaA]  ; Save First String
     mov ebx,[CadenaB]   ; Save Second String
     mov al, byte[eax]
     mov bl, byte[ebx]

     cmp al,0    ; if = 0 exit func
     JE endstr   ; if = 0 exit func

     cmp bl,0
     je endstr

     cmp al,bl
     jne failedstr
     inc [cCadenaA]
     inc [CadenaB]
  jmp compstr

  failedstr:
   mov ecx,-1
   push ecx
   ret

  endstr:
   mov ecx,0
   push ecx
   ret
endp  
...
Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
Blog: http://www.seginformatica.net
Twitter: https://twitter.com/#!/p0is0nseginf
Buenas p0is0n-123, este tema es viejo pero que le vamos a hacer.

Te dejo aquí una instrucción mágica que seguro te ayuda la próxima vez que vayas a comparar dos cadenas: [Enlace externo eliminado para invitados]

Además la página esa está muy buena como tabla de referencia de instrucciones en asm x86
Responder

Volver a “Fuentes”