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