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
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
Para comparar dos cadenas tienes que ir comparandolas caracter a caracter, ejemplo:
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.