Programa usando ciclos y saltos

En esta entrada les mostrare un progrma cuya estructura basada en ciclso y saltos nos permitira determinar si la pareja de palabras que ingresamos es la misma o si es diferente.

Dentro del código se encuentra la documentación donde podremos ver el funcionamiento de variables, métodos e interrupciones.

Determina si las dos palabras es la misma palabra

org 100h
include 'emu8086.inc'
mov si, 0    ;ponemos si en 0
   
comienzo:
mov al, msg2[0]   ;copiar la primera letra de la palabra A al

cmp msg[si],"$"   ;si es el fin de la cadena mandar a final
jz final      ; brinca si es igual

cmp msg[si], al   ;comparar si encuentra la primera letra de la cadena
jne seguir    ;brica si es diferente

mov di, 1         ;poner en 1 di  

comprobar:
  mov al, msg2[di]
  mov bx, di
  cmp msg[si+bx], al     ;posicion de la letra coincidente + di, comparar con la cadena
  jne seguir             ;si no coincide mandar a seguir  

inc di                 ;incrementar di para seguir recorriendo cadena

cmp msg2[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:  
  inc si       ;para seguir recorriendo la palabra

loop comienzo   ;bucle principal para recorrer palabra

resultado:
  mov dx, offset msg3    ;copiar msg3 a dx
  mov ah, 9              ;preparar ah con 9 para la interrupcion 21h
  int 21h                ;mostrar contenido en dx  
  
final:
ret   

msg db "tecnologico$"
msg2 db "tec$"

msg3 db "Si se encuentra$"

Comentarios

Entradas más populares de este blog

Macros y procedimientos de EMU8086.INC

1.7 Compiladores, proceso de ensamblado y ligado

Simuladores de Lenguaje Ensamblador Online.