如何删除数组中的值????
TITLE 1017
DATA SEGMENT
COUNT DW 0
CNT DW ?
TMP DW ?
DATA ENDS
EXTR SEGMENT
LIST DW 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
EXTR ENDS
CODE SEGMENT
ASSUME DS:DATA
ASSUME CS:CODE
ASSUME ES:EXTR
REMOVE PROC
PUSH CX
PUSH DI
DO:
MOV BX, DI
ADD DI, 2
MOV AX, ES:[DI]
MOV ES:[BX], AX
LOOP DO
POP DI
POP CX
RET
REMOVE ENDP
START:
MOV AX, DATA
MOV DS, AX
MOV AX, EXTR
MOV ES, AX
MOV CX, ES:LIST
MOV CNT, CX
MOV AX, 2
MOV DI, ES:OFFSET LIST[2]
SUB DI, 2
TEST AX, 0FFFFH
JZ EXIT
A:
ADD DI, 2
CMP AX, ES:[DI]
LOOPNE A
PUSH CX
PUSH DI
DO:
MOV BX, DI
ADD DI, 2
MOV AX, ES:[DI]
MOV ES:[BX], AX
LOOP DO
POP DI
POP CX
LOOP A
EXIT:
MOV AH, 4CH
INT 21H
CODE ENDS
END START
AX存放一个数值(2),LIST是一个数组。
上面的程序是将LIST中与AX相同的值删除。
不知道为什么不行。