elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 00:49  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Ayuda con comparacion con un "ENTER"
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con comparacion con un "ENTER"  (Leído 616 veces)
RAFA_LAMB

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con comparacion con un "ENTER"
« en: 25 Noviembre 2011, 03:24 »

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


En línea
.:UND3R:.


Desconectado Desconectado

Mensajes: 1.960


Ingeniería inversa


Ver Perfil WWW
Re: Ayuda con comparacion con un "ENTER"
« Respuesta #1 en: 25 Noviembre 2011, 05:15 »

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


En línea

mDrinky

Desconectado Desconectado

Mensajes: 277


Miauuuuuuuuuuuuu dice el gato XD


Ver Perfil WWW
Re: Ayuda con comparacion con un "ENTER"
« Respuesta #2 en: 25 Noviembre 2011, 15:29 »

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

Código
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.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines