Instrucción CMP, JE, JNE, LOOP
En esta ocasión introducimos un programa que incluye saltos, ciclos, este programa permite comparar una dos palabras y si estas coinciden.
Código:
org 100h ;directiva
include 'emu8086.inc'
mov si, 0 ;ponemos si en 0(asigna),el registro 'si' para poder utilizar cmp
comienzo:
mov al, msg2[0] ;copiar la primera letra de la palabra A al, del
cmp msg[si],"$" ;si es el fin de la cadena mandar a final,compara msg con msg2
je final ; brinca si es igual
;continuar
cmp msg[si], al ;comparar si encuentra la primera letra de la cadena en msg2
jne seguir ;brinca si es diferente
mov di, 1 ;poner en 1 = di
comprobar:
mov al, msg[di] ;compara en la [?] posicion (di, inc di)msg
mov bx, di ; bx = di
cmp msg2[si+bx], al ;posicion de la letra coincidente di(si+bx),comparar con(al) la cadena msg
jne seguir ;si no coincide mandar a seguir
inc di ;incrementar di para seguir recorriendo cadena
cmp msg[di],"$" ;si es el fin de la cadena y el programa llego
jz resultado ;aca quiere decir que la cadena es parte de la palabra
loop comprobar ;bucle para recorrer cadena
seguir:
mov di, 1
inc si ;para seguir recorriendo la palabra
loop comienzo ;bucle principal para recorrer palabra
resultado:
printn 'multi Coincide con multiplicacion'
jmp fin
final:
print 'No coindice '
fin:
mov ax, 4c00h
ret
msg db "mult$" ;subcadena a comparar
msg2 db "multiplicacion$" ;cadena
msg5 db "fin$"
Resultado:
No hay comentarios:
Publicar un comentario