jueves, 14 de marzo de 2019

2. Arreglos

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

3. Colores Modificado 9

Modificación del programa # 9 " Colores " Por mi compañero Ambrocio isaias Laureano CR EQU 13 ;Declaro retorno de carro LF...