Busca la funcion que necesitas!
FASM - Comparar dos cadenas
Este código FASM lo hize estudiando obviamente ensamblador (lenguaje de bajo nivel), lo que hace es comparar dos cadenas y decirte si son iguales o son diferentes, esto se puede hacer haciendo
repe cmps
Pero ya que FASM o almenos mi FASM no soportaba la función tuve que crear un código y se los comparto para que a algun novato como yo en ensamblador le sirva de algo!.
include 'win32ax.inc'
;***********************
; Programador: Linkgl *
; indetectables.net *
; funcion-linkgl.blogspot.com *
; 29/11/10 *
; Comparar cadenas *
;***********************
.data
cadena1 db 'linkgl',0 ;cadenas a comparar
cadena2 db 'linkgl',0
.code
inicio:
MOV EAX,0 ;acomodamos nuestros registros a 0
MOV EDX,0
MOV ECX,0
MOV ESI,0
LEA ESI,[cadena1] ;obtenemos la cadena 1
bucle:
LODSB ;la cortamos y la almacenamos toda en EDX
CMP AL,0
JE continuar
ADD EDX,EAX
INC ECX
JMP bucle
continuar:
PUSH EDX ;metemos edx a la pila
MOV EDX,0
MOV ESI,0
LEA ESI,[cadena2]
bucle2: ;hacemos lo mismo con la otra cadena
LODSB
CMP AL,0
JE comparar
ADD EDX,EAX
INC ECX
JMP bucle2
comparar:
POP EBX ;sacamos el valor de EDX de la pila a EBX
cmp EDX,EBX ;Comparamos
je iguales ;si son iguales pues saltamos a iguales
invoke MessageBoxA,0,"No son iguales","by linkgl",0
invoke ExitProcess,0
iguales:
invoke MessageBoxA,0,"Son iguales","by linkgl",0
invoke ExitProcess,0
.end inicio
No hay comentarios:
Publicar un comentario