Ejercicios en Ensamblador
Ejercicio 1: Escribir un código que verifique si dos cadenas son iguales
org 100h
comienzo:
mov si, x
mov al, msg2[si]
cmpmsg[si], al ;comparar letra por letralas cadenas, si uno no coincide manda
directamente a fin y termina el programa
jne fin:
cmpmsg[si], "$" ;si es el final y el programa llega aca, quiere decir que son
iguales
jz final:
inc x
loopcomienzo
final:
mov dx, offset msg3
mov ah, 9
int 21h
fin:
ret
msgdb "helloworld $"
msg2 db "helloworld $"
msg3 db "Son iguales $"
xdw 0
Ejercicio 2: Escribir un código que verifique siuna cadena es subcadena de otra.
Por ejemplo: “la Mu” es subcadena de “Hola Mundo”.
La cadena: “233″ es subcadena de la cadena “2122432234″
org 100h
mov si, 0 ;ponemos si en 0
comienzo:
moval, msg2[0] ;copiar la primera letra de la palabra a al
cmpmsg[si],"$" ;si es el fin de la cadena mandar a final
jz final
cmpmsg[si], al ;comparar si encuentra la primera letra de la cadena
jneseguir
mov di, 1 ;poner en 1 di
comprobar:
mov al, msg2[di]
movbx, di
cmpmsg[si+bx], al ;posicion de la letra coincidente + di, comparar con la cadena
jne seguir ;si no coincide mandar a seguir
incdi ;incrementar di para seguir recorriendo cadena
cmp msg2[di],"$" ;si es el fin de la cadena y el programa llego aca quiere decir
que la cadena es parte de la palabra
jz resultado
loop comprobar;bucle para recorrer cadena
seguir:
incsi ;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
msgdb "Hola Mundo$"
msg2 db "ola$"
msg3 db "Si es subcadena$"
Ejercicio 3: Escribir un código queverifique que todas los caracteres de una cadena se encuentran en
otra.
Por ejemplo: todas las letras de la cadena “casa” se encuentran en “escaso”. Pero no todas las letras de
“cerro” se en cuentran...
Regístrate para leer el documento completo.