ITEEDU

第10章 应用程序的设计

在前面各章节中,我们侧重介绍了汇编语言程序设计中各组成部分的作用,本章的重点是对前面所学知识的综合运用。希望通过各种不同类型的例子,使读者能够掌握用汇编语言编程的基本技巧。

10.1 字符串的处理程序

字符或字符串是一类重要的非数值计算的处理对象。许多编辑软件都具有字符串查找、替换、大小写的转换、单词的自动识别等功能,网络上的信息搜索也是现在一种常用的功能等,这些功能的实现无疑都要涉及到字符串的处理功能。

为了方便对字符串的处理,各种常用的编程环境也都给予了足够的支持。如:C语言编程环境提供了大量处理字符串的标准函数,象strlen、strcmp和strcpy等函数;C++、VC或VB等编程环境提供了字符串类String等。这些函数或类大大方便了程序员的编程。

在计算机系统内,为了加快字符串的处理,在其指令系统中设置了多条处理字符串的指令,其详细内容请参阅第5.2.11节中的介绍。

下面我们将通过几个例子来学习汇编语言处理字符串的方法。

例10.1 编写一个求字符串长度的子程序Strlen,要求字符串的首地址为入口参数,且以ASCII码0为结束符,CX为出口参数,其存放该字符串的长度。

解:

.MODEL?SMALL, 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