汇编学习笔记38

串操作的几个例子:

 

例1:

; 子程序名: STRLEN

; 功能: 测量字符串的长度。

; 入口参数: 字符串放在段值和偏移为DS: DI 所在的存储单元中

; 出口参数: AX = 字符串的长度

; 说明: 字符串以0结尾,长度不包含0

STRLEN PROC

PUSH CX

PUSH DI

CLD

XOR AL, AL

MOV CX, 0FFFFH

REPNZ SCASB

MOV AX, CX

NOT AX

DEC AX

POP DI

POP CX

RET

STRLEN ENDP

 

例2:

有两个等长字符串,分别存放在在STR1和STR2开始的存储单元中。编一程序检测两字符串是否相同,如果相同,FLAG单元置为0,否则置为-1

DATA SEGMENT

STR1 DB '….'

STR2 DB '……'

COUNT EQU $-STR2

FLAG DB ?

DATA ENDS

 

CODE SEGMENT

ASSUME CS: CODE, DS: DATA, ES: DATA

START: MOV AX, DATA

MOV DS, AX

MOV ES, AX

MOV SI, OFFSET STR1

MOV DI, OFFSET STR2

MOV CX, COUNT

REPZ CMPSB

XOR AL, AL

JZ NEXT

MOV AL, 0FFH

NEXT: MOV FLAG, AL

MOV AH, 4CH

INT 21H

CODE ENDS

END START

posted @ 2011-01-08 08:44  杨海龙  阅读(207)  评论(0编辑  收藏  举报