Hola a todos:
Les dejo este otro programita en ensamblador espero les sirva de ayuda
;=================================================
;= PROGRAMA QUE LEE DOS CADENAS EN DOS VARIABLES Y LAS COMPARA =
==================================================
.model small
.stack
.data
cadena1 db 10 dup(' '),'$'
cadena2 db 10 dup(' '),'$'
mensaje1 db 10,13,'Escribe la primera cadena:$'
mensaje2 db 10,13,'Escribe la segunda cadena:$'
msj1 db 10,13,'Las cadenas SI son iguales$'
msj2 db 10,13,'Las cadenas NO son iguales$'
.code
.startup
mov ah,06h ; peticion de recorrido de la pantalla
mov al,00h ; indica la pantalla completa
mov ax,@data
mov ds,ax
mov dx,offset mensaje1
mov ah,09h
int 21h
;============================================================
lea SI,cadena1
mov cx,10
regresa:
mov ah,07h
int 21h
cmp al,13
je termina
mov [SI],al
inc SI
mov dl,al
mov ah,02h ;- Para imprimir por pantalla un caracter
int 21h
loop regresa
;================================================================
termina:
mov dx,offset mensaje2
mov ah,09h
int 21h
lea SI,cadena2
mov cx,10
;================================================================
regresa2:
mov ah,07h
int 21h
cmp al,13
je termina2
mov [SI],al
inc SI
mov dl,al
mov ah,02h ;- Para imprimir por pantalla un caracter
int 21h
loop regresa2
;=================================================================
termina2:
push ES
mov AX,DS
mov ES,AX
mov cx,10
lea SI,cadena1
lea DI,cadena2
repe cmpsb
JNE no_igual
jmp igual
pop ES
;======================================================
no_igual:
lea DX,msj2
jmp fin
;======================================================
igual:
lea DX,msj1
;=======================================================
fin:
mov ah,09h
int 21h
.exit
end
Les dejo este otro programita en ensamblador espero les sirva de ayuda

;=================================================
;= PROGRAMA QUE LEE DOS CADENAS EN DOS VARIABLES Y LAS COMPARA =
==================================================
.model small
.stack
.data
cadena1 db 10 dup(' '),'$'
cadena2 db 10 dup(' '),'$'
mensaje1 db 10,13,'Escribe la primera cadena:$'
mensaje2 db 10,13,'Escribe la segunda cadena:$'
msj1 db 10,13,'Las cadenas SI son iguales$'
msj2 db 10,13,'Las cadenas NO son iguales$'
.code
.startup
mov ah,06h ; peticion de recorrido de la pantalla
mov al,00h ; indica la pantalla completa
mov ax,@data
mov ds,ax
mov dx,offset mensaje1
mov ah,09h
int 21h
;============================================================
lea SI,cadena1
mov cx,10
regresa:
mov ah,07h
int 21h
cmp al,13
je termina
mov [SI],al
inc SI
mov dl,al
mov ah,02h ;- Para imprimir por pantalla un caracter
int 21h
loop regresa
;================================================================
termina:
mov dx,offset mensaje2
mov ah,09h
int 21h
lea SI,cadena2
mov cx,10
;================================================================
regresa2:
mov ah,07h
int 21h
cmp al,13
je termina2
mov [SI],al
inc SI
mov dl,al
mov ah,02h ;- Para imprimir por pantalla un caracter
int 21h
loop regresa2
;=================================================================
termina2:
push ES
mov AX,DS
mov ES,AX
mov cx,10
lea SI,cadena1
lea DI,cadena2
repe cmpsb
JNE no_igual
jmp igual
pop ES
;======================================================
no_igual:
lea DX,msj2
jmp fin
;======================================================
igual:
lea DX,msj1
;=======================================================
fin:
mov ah,09h
int 21h
.exit
end