No es por ser estricto, pero tengo que tus errores son:
-llamas a dx despues de apuntarle un mensaje (lo que me hace un poco de gracia)
-vuelves a hacer lo mismo
-segun mi compilador, no has escrito el necesario org 100h, lo que no se pueden mostrar los mensajes
-guardas datos para volver y no los recoges
he transformado tu codigo para NASM. No se si es lo que esperabas, pero pide
dos numeros de una cifra y, finalmente los suma:
org 100h
jmp start
mensaje1 DB 10,13,'Introducir primer operando: $'
mensaje2 DB 10,13,'Introducir segundo operando: $'
mensaje3 DB 10,13,'Resultado: $'
start:
MOV dx,mensaje1
mov ah,9
int 21h
MOV ah, 01h
INT 21h
SUB al,'0'
xor ah,ah
mov bx,ax
MOV dx,mensaje2
mov ah,9
int 21h
MOV ah, 01h
INT 21h
ADD bl,al
mov dx,mensaje3
mov ah,9
int 21h
cmp bl,3ah
jb menor
mov dl,"1"
mov ah,2
int 21h
sub bl,10
menor:
mov dl,bl
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h
mov dl,13
mov ah,2
int 21h
RET