输入数字然后输出
请大神帮忙看看我的代码哪里错了
DATAS SEGMENT
;此处输入数据段代码
intig db 0ah,0dh,'Please input a number:$'
outtig db 0dh,0ah,'The result is:$'
flag db 0
D DW 0
A DB 0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV D,0
lea dx,intig
mov ah,9
int 21h
L1: MOV AH,01H
INT 21H
CMP AL,'0'
Jl L2
CMP AL,'9'
Jg L2
MOV BL,AL
SUB BL,30H
MOV AX,10
MUL D
MOV BH,0
ADD D,BX
JMP L1
L2:
lea dx,outtig
mov ah,9
int 21h
mov ax,d
mov dx,0
mov bx,10000
div bx
mov d,dx
cmp dl,0
jz l3
mov dl,al
mov ah,2
int 21h
mov flag,1
l3:
mov ax,d
mov dx,0
mov bx,1000
div bx
mov d,dx
cmp flag,0
jnz l4
cmp dl,0
jz l5
l4:
mov dl,al
mov ah,2
int 21h
l5:
mov ax,d
mov dx,0
mov bx,100
div bx
mov d,dx
cmp flag,0
jnz l6
cmp dl,0
jz l7
l6:
mov dl,al
mov ah,2
int 21h
l7:
mov ax,d
mov dx,0
mov bx,10
div bx
mov d,dx
cmp flag,0
jnz l8
cmp dl,0
jz l9
l8:
mov dl,al
mov ah,2
int 21h
l9:
mov dx,d
mov ah,9
int 21h
MOV AH,4CH
INT 21H
CODES ENDS
END START