主题:如何向前压缩???????????
在内存中已定义好一个容量为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
这是我写的程序,为什么不行????????
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