萌新求助,判断闰年,自己写的,运行输入后出现divide error,求大佬指教

valar094 2021-04-04 09:25:11
DATAS SEGMENT
bin dw 2 dup(?)
Y db 0dh,0ah,'This is a leap year! $'
N db 0dh,0ah,'This is not a leap year! $'
DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX

mov si,4
mov bx,0



input:
mov ah,1
int 21h
sub al,30h
mov cl,4
shl bx,cl
mov ah,0
add bx,ax
mov bin,bx
dec si
cmp si,0
ja input
mov ax,bin
judge1:
mov bx,4

div bx
cmp ax,0
jne judge1
cmp dl,0
jne next1
mov ax,bin
judge2:
mov bx,100

div bx
cmp ax,0
jne judge2
cmp dl,0
jne next2
mov ax,bin
judge3:
mov bx,400

div bx
cmp ax,0
jne judge3
cmp dl,0
je next2
next1:
lea dx,n
mov ah,9
int 21h
mov ah,4ch
int 21h
next2:
lea dx,y
mov ah,9
int 21h
mov ah,4ch
int 21h
CODES ENDS
END START
...全文
590 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2021-04-04
  • 打赏
  • 举报
回复
手机上看的,不大确切,可能是 dx里有值(有些调试程序会清 dx等为 0有些不会,dos是不会的
),每个 div 前加个 xor dx, dx 指令试试?
valar094 2021-04-04
  • 打赏
  • 举报
回复
求大佬指教。。。。。
valar094 2021-04-04
  • 打赏
  • 举报
回复
debug的时候发现0888除4结果竟然是4222,然后无限循环,一只停在了judge1这一步上

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧