lunes, 1 de abril de 2019

Programa detector de subcadenas

En esta entrada veremos el código de lo que es un detector de subcadenas en Ensamblador.

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 noacepta ; brinca si en efecto es el final de la cadena
;si no continuo con las siguientes lineas
cmp msg[si], al ;comparar si encuentra la primera letra de la cadena en msg2
jne seguir ;brica si es diferente
;si no continuo con la ejecucion

mov di, 1 ;poner en 1 di

comprobar:
mov al, msg2[di] ;extraigo el siguiente caracter de msg2
mov bx, di ;igualo bx=di
cmp msg[si+bx], al ;consiguo el caracter ubicado en la posicion si+bx y lo comparo con al (al contiene el caracter de msg2)
jne seguir ;si no coincide mandar a seguir
;si no continuo con las siguientes lineas

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:
print "Si lo contiene"
jmp final ;brinco al final

noacepta:
print "No la contiene"
jmp final ;brinco al final



final:
ret

msg db "tecnologico$"
msg2 db "logi$"

Resultado:

No hay comentarios:

Publicar un comentario