键盘输入十六进制显示10进制
data segment
input db 'please input the 16 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,4
shl bx,cl
add bl,al
jmp next
return: ret
receive endp
enter proc
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
ret
enter endp
disp proc
mov dx,0
mov ax,bx
mov cx,10000