键盘输入十进制数输出二进制
data segment
a dw 0
input db 'please input the 10 number:$'
ero db 'error!please input again!$'
data ends
cod segment
assume cs:cod,ds:data
start:mov ax,data
mov ds,ax
call receive
call enter
call disp
mov ah,4ch
int 21h
receive proc
mov bx,0
mov dx,offset input
mov ah,9
int 21h
mov bx,0
next: mov ah,1
int 21h
cmp al,0dh
jz return
cmp al,30h
jb err
cmp al,3ah
jb num
jmp err
num: sub al,30h
jmp save
err: call enter
mov dx,offset ero
mov ah,9
int 21h
jmp next
save:mov cl,3
mov a,0
mov a,bx
shl bx,cl
mov cl,1
shl a ,cl
adc bx,a
add bx,ax
jmp next
return: ret
receive endp
enter proc
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
ret