Programación General > ASM (Ensamblador)

 [problema] division en TASM

(1/1)

Samus428:
buenas , tengo un problemita con una división ojala me puedan dar una mano con este problema , llevo varios días sin poder dar solución , tengo una aplicación en TASM  q debe hallar el multiplo de 3 en una serie de números , el problema radica es que cunado hago la división el programa se me paraliza y no tengo la mas mínima idea porque , aquí dejo el código por si alguien me puede dar una mano , Gracias


--- Código: ASM --- .model small.stack 1000h.data positivos db '                                   $'negativos db '                                   $' msj1 db 13,10,'Tirame un numero: ','$'msj2 db 13,10,'ES MULTIPLO DE 3 : ','$'msj3 db 13,10,'NO ES MULTIPLO DE 3 : ','$'var1 db ?cont db 0  .code.startup call limpiamov ah,09hlea dx, msj1 ;desplegar numero 1:int 21h call leer ;lee primer numerosub al,30h ;restar 30h para obtener el numeromov var1,al ;lo guardo en var1mov ah,09h mov cl,almov cont,1  ciclo:                          ;push cont                        mov al ,cont                        mov bl,3                        div bl ; aqui es donde me pone problemas , si comento esta linea el programa corre                                                        cmp ah,'0'                                                je multiplo                        jne nomult                                        multiplo :                                mov ah,09h                                lea dx, msj2 ;desplegar numero 2:                                int 21h                                                                mov dl,cont ;mover al a dl para imprimir                                add dl,30h ;sumar 30 para obtener caracter                                mov ah,02h ;imprimir caracter                                int 21h                                inc cont                                                        nomult:                                mov ah,09h                                lea dx, msj3 ;desplegar numero 2:                                int 21h                                          mov dl,cont ;mover al a dl para imprimir                                add dl,30h ;sumar 30 para obtener caracter                                mov ah,02h ;imprimir caracter                                int 21h                                         inc cont                                        ;pop c                loop ciclo  .exit limpia proc nearmov ah,00hmov al,03hint 10hretlimpia endp leer proc nearmov ah,01h;leer caracter desde el tecladoint 21h;lee primer caracterretleer endp end  

cualquier ayuda se agradece !

Navegación

[0] Índice de Mensajes

Ir a la versión completa