一道汇编语言程序的题,请懂的朋友帮忙!

从键盘上输入一个字符到AL,然后分析AL二进制信息中0的个数,结果存放到字节单元VAL
; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。
Code Segment
Assume CS:Code,DS:Code
VAL db ?
Press_Key db 13,10,13,10,'The complated. Press any key to exit...$'
Start: push cs
pop ds
mov ah,1
int 21h
mov cx,8 ;字节数消祥据,8位
xor bx,bx ;计数器置0,准备计数
@@Counting: shl al,1 ;左移1位
jc $+6 ;有进位,1计数
inc bl ;没有进位,0计数
jmp $+4
inc bh ;1计数
loop @@Counting
mov VAL,bl ;保存AL二进拿侍搏制信息中0的个数
; --------------------------谈乱-----------
Exit_Proc: lea dx,Press_Key ;提示操作完成,按任意键结束程序
mov ah,9
int 21h
mov ah,1
int 21h
mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束