El problema que tengo es que si el resultado de la suma es de dos dijitos solo me muestra el primero ejemplo:
si sumo 4 + 9 = 13
del resultado solo me muestra el 3
Nota: si el resultado de la suma es de un dijito lo muestra bien; ejemplo 3 + 3 = 6
agradezco mucho su atencion y de antemano Gracias a todos.
Les dejo aqui el codigo, por cierto el ensamblador que estoy utilizando es TASM
Código:
pila segment stack "stack"
dw 64h dup(?)
pila ends
data segment
var db "ingrese numero",13,10,"$"
resul db 0
data ends
code segment
assume cs:code, ds:data, ss:pila
inicio:
mov ax,data
mov ds,ax
mov cl,0
jmp mostrar
datos:
cmp cl,2
je formato
mov ah,01h
int 21h
sub al,30h
add resul,al
inc cl
jmp mostrar
formato:
mov ah,02h
mov dl,10
int 21h
mov ah,02h
mov dl,13
int 21h
jmp imprimir
imprimir:
mov ah,0
mov al,resul
mov cl,10
div cl
;add al,30h
;add ah,30h
mov bl,ah
mov dl,al
add dl,30h
mov ah,02h ;IMPRIME DECENA
int 21
mov dl,bl
add dl,30h
mov ah,02h ;IMPRIME UNIDAD
int 21h
jmp fin
mostrar:
mov ah,09h
mov dx, offset var
int 21h
jmp datos
fin:
mov ax,4c00h
int 21h
code ends
end inicio
end datos
end formato
end imprimir
end mostrar
end fin
EI: juntando mensajes.
bueno de tanto checar el codigo no habia algun error; pero para que me funcionara tube que volver a copiar la parte de la etiqueta imprimir y ya funciono.
Nota: son varias veces que pasa que cuando escribo codigo no funciona pero si lo vuelvo a reescribir entonces ya funciona alguien tiene alguna idea porque????
Bueno gracias a todos y Saludos