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
uj5u.com熱心網友回復:
debug的時候發現0888除4結果竟然是4222,然后無限回圈,一只停在了judge1這一步上uj5u.com熱心網友回復:
求大佬指教。。。。。uj5u.com熱心網友回復:
手機上看的,不大確切,可能是 dx里有值(有些除錯程式會清 dx等為 0有些不會,dos是不會的),每個 div 前加個 xor dx, dx 指令試試?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272375.html
標籤:匯編語言
上一篇:Python version <3.5 do not support starred expressions in dicts
