10.1 字符串的处理程序
优质
小牛编辑
132浏览
2023-12-01
第10章 应用程序的设计
在前面各章节中,我们侧重介绍了汇编语言程序设计中各组成部分的作用,本章的重点是对前面所学知识的综合运用。希望通过各种不同类型的例子,使读者能够掌握用汇编语言编程的基本技巧。
10.1 字符串的处理程序
字符或字符串是一类重要的非数值计算的处理对象。许多编辑软件都具有字符串查找、替换、大小写的转换、单词的自动识别等功能,网络上的信息搜索也是现在一种常用的功能等,这些功能的实现无疑都要涉及到字符串的处理功能。
为了方便对字符串的处理,各种常用的编程环境也都给予了足够的支持。如:C语言编程环境提供了大量处理字符串的标准函数,象strlen、strcmp和strcpy等函数;C++、VC或VB等编程环境提供了字符串类String等。这些函数或类大大方便了程序员的编程。
在计算机系统内,为了加快字符串的处理,在其指令系统中设置了多条处理字符串的指令,其详细内容请参阅第5.2.11节中的介绍。
下面我们将通过几个例子来学习汇编语言处理字符串的方法。
例10.1 编写一个求字符串长度的子程序Strlen,要求字符串的首地址为入口参数,且以ASCII码0为结束符,CX为出口参数,其存放该字符串的长度。
解: | |||
.MODELSMALL,C | |||
.DATA | |||
buff | DB "This is a example.", 0 | ||
.CODE | |||
Strlen | PROC USES AX BX,String:PTR BYTE | ||
MOV | BX, String | ||
XOR | CX, CX | ||
MOV | AL, [BX] | ||
.WHILE AL!=0 | |||
INC | CX | ||
INC | BX | ||
MOV | AL, [BX] | ||
.ENDW | |||
RET | |||
Strlen | ENDP | ||
.STARTUP | |||
INVOKE Strlen,ADDR buff | |||
.EXIT 0 | |||
END |