在内存中已定义好一个容量为20字节的数组,请将数组中为0的项找出,统计0的个数,并删除数组中所有为0的项,将后续项向前压缩.

这是我写的程序,为什么不行????????


BUFF DB 2H,33H,0H,12H,22H,63H,25H,0H,90H,13H,45H,21H,36H,85H,56H,66H,44H,69H,70H,80H

    MOV AX,DSEG
    MOV DS,AX
    MOV ES,AX
    MOV SI,OFFSET BUFF
    MOV CL,4
    MOV DH,4
LOOP3:
    CMP CL,0
    JZ OVER
    MOV AL,[SI]
    CMP AL,0
    JE LOOP1
    LOOP LOOP2
LOOP1:
    INC SI
    MOV DL,CL
    DEC CL
    SUB DH,DL
    ADD DH,1
    JMP LOOP4
LOOP2:
    INC SI
    JMP LOOP3
LOOP4:
    MOV SI,SI+1
    CMP DH,0
    JE LOOP3
    LOOP LOOP4
OVER:
    MOV AH,4CH
    INT 21H