例10.4 编写一个把字符串中空格和TAB压缩掉的子程序Compress,字符串String是以ASCII码0为结束符。

解:
.MODEL SMALL, C
.DATA

SPACE

EQU 20H

TAB

EQU 9H

Buff

DB "12 3 4   Ab  cdef", 0
.CODE
Compress PROC USES AX BX SI DS, String:FAR PTR BYTE
LDS SI, String ;SI用于扫描字符串的指针
MOV BX, SI ;BX用于存放结果的指针
.REPEAT

MOV

AL, [SI]

INC

SI

.IF AL!=SPACE && AL!=TAB

MOV [BX], AL
INC BX

.ENDIF

.UNTIL AL==0
RET
Compress ENDP
.STARTUP
INVOKE Compress, ADDR Buff
.EXIT 0
END

从上面四个例子,我们不难看出处理字符串的一般方法,感兴趣的读者可自行编写实现字符串变小写、整体拷贝、逆转和查找等功能的子程序,甚至还可以建立起自己的字符串处理库文件。