Ayuda con comparacion con un "ENTER"

Iniciado por RAFA_LAMB, 25 Noviembre 2011, 03:24 AM

0 Miembros y 1 Visitante están viendo este tema.

RAFA_LAMB

Lo que sucede es que deseo comparar una cadena ingresada. Esta cadena sera "ELSE" pero si el usuario ingresa "ELSE*" o algun otro caracter distinto hasta el final, me debe de decir que no es una palabra correcta. Para saber esto supongo que tengo que comparar el ultimo caracter con un "enter" pero no se como hacer eso. Mi codigo es el siguiente:

       CLD
   MOV AL,
   MOV CX,1
   LEA DI,RESER1+4
   REPNE SCASB
   JNE X1
   JE EEE

En MOV AL, "Aqui debe de ir el valor de enter
RESER1+4 es donde guardo "ELSE"

Espero puedan ayudarme

.:UND3R:.

Sería más factible tomar como primera instancia el número de caracteres y compararlo con 4 (número de caracteres de la palabra "ELSE") si no se cumple automáticamente se dirige a la función de palabra incorrecta, en caso contrario compara cada letra con cada letra de ELSE.

Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

fary

Para comparar dos cadenas tienes que ir comparandolas caracter a caracter, ejemplo:

Código (asm) [Seleccionar]
proc Comparar,cadena1,cadena2
        ;Si son iguales  EAX = 1
        ;Si son diferentes EAX = 0
        mov esi,[cadena1]
        mov ecx,[cadena2]
        dec ecx
        bucle:
            inc ecx
            lodsb
            cmp byte[ecx],al
            jne diferentes
            cmp al,0
            je comprovar
            jmp bucle
        comprovar:
            cmp byte[ecx],0
            je iguales
            jne diferentes
        diferentes:
            mov eax,0
            ret
        iguales:
            mov eax,1
            ret
     endp


saludos.
Un byte a la izquierda.