ITEEDU

例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

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