![]() |
#2
xiaomarn2010-10-26 11:42
|

DSEG SEGMENT
VAR1 DB "ABCDEF T YQ0"
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG ,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
LEA SI,VAR1
NEXT:
CMP BYTE PTR DS:[SI],00H
JZ EXIT
CMP BYTE PTR DS:[SI],20H
JNZ DISP1
DISP:
MOV BX,SI
INC BX
MOV AL,DS:[BX]
MOV BYTE PTR DS:[BX-1],AL
CMP BYTE PTR DS:[BX+1],00H
JNZ DISP
DISP1:
INC SI
JMP NEXT
EXIT:
MOV AH,4CH
INT 21H
CSEG ENDS
END START
这是我写了一个,好像是个死循环,求高手解答!还有就是这个问题如果中间有很多个空格,该怎么写程序呢? VAR1 DB "ABCDEF T YQ0"
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG ,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
LEA SI,VAR1
NEXT:
CMP BYTE PTR DS:[SI],00H
JZ EXIT
CMP BYTE PTR DS:[SI],20H
JNZ DISP1
DISP:
MOV BX,SI
INC BX
MOV AL,DS:[BX]
MOV BYTE PTR DS:[BX-1],AL
CMP BYTE PTR DS:[BX+1],00H
JNZ DISP
DISP1:
INC SI
JMP NEXT
EXIT:
MOV AH,4CH
INT 21H
CSEG ENDS
END START