data segment
save dw 8 dup(0)
data ends
code segment
assume cs:code,ds:code
start:mov cl,4
mov ax,data
mov ds,ax
next:mov ah,1
int 21h
cmp al,0dh
jz exit
cmp dl,39h
jbe num
cmp al ,'F'
Jbe big_char
sub al,57h
jmp save
num:sub al,30h
jmp save
big_char:sub al,37h
save:shl save,cl
add save,al
jmp next
exit:move ah,4ch
int 21h
------解决方案--------------------------------------------------------
看错了 数据域够长 cmp dl,39h 处理数字这一句写错寄存器了吧 改AL 其他应该没错。。。我现在验证不了 我只是提个建议