我的 div 有点问题,我需要一些帮助来解决这个问题,我在 TASM 中有一个应用程序,我必须在一系列数字中找到 3 的倍数,问题是当我做一个 div 时程序冻结并且我不知道为什么。
我的代码是:
.model small
.stack 1000h
.data
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 limpia
mov ah,09h
lea dx, msj1 ;desplegar numero 1:
int 21h
call leer ;lee primer numero
sub al,30h ;restar 30h para obtener el numero
mov var1,al ;lo guardo en var1
mov ah,09h
mov cl,al
mov cont,1
ciclo:
;push cont
mov al ,cont
mov bl,3
div bl ;this is where the prog freezes , if you comment this line the prog runs
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
loop ciclo
.exit
limpia proc near
mov ah,00h
mov al,03h
int 10h
ret
limpia endp
leer proc near
mov ah,01h;leer caracter desde el teclado
int 21h;lee primer caracter
ret
leer endp
end