文档详情

微机报告字符串匹配.doc

发布:2017-06-20约3.56千字共10页下载文档
文本预览下载声明
微机实验报告 实验三 循环程序的设计 一、实验目的 1、掌握提示信息的使用方法和键盘输入信息的用法; 2、掌握循环程序的设计方法。 二、实验内容 编写程序,从键盘分别输入两个字符串,进行比较,若相同,则显示‘MATCH’,否则,显示‘NO MATCH’。 实验原理 强迫CPU重复执行一指令序列的程序结构是循环程序。循环程序结构分成四部分: 初始化部分 循环处理部分 循环控制部分 结束部分 程序流程图 程序代码 CRLF MACRO MOV AH, 02H MOV DL, 0DH INT 21H MOV AH, 02H MOV DL, 0AH INT 21H ENDM DATA SEGMENT MESS1 DBINPUT STRING1:,0DH,0AH,$ MESS2 DBINPUT STRING2:,0DH,0AH,$ MESS3 DBNO MATCH,0DH,0AH,$ MESS4 DBMATCH,0DH,0AH,$ MAXLEN1 DB 81 ACTLEN1 DB ? STRING1 DB 81 DUP(?) MAXLEN2 DB 81 ACTLEN2 DB ? STRING2 DB 81 DUP(?) DATA ENDS STACK SEGMENT PARA STACK STACK STA DB 50 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA, ES:DATA, SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES, AX MOV AX,STACK MOV SS,AX MOV SP,TOP MOV AH,09H MOV DX,OFFSET MESS1 INT 21H MOV AH, 0AH MOV DX,OFFSET MAXLEN1 INT 21H CRLF MOV AH,09H MOV DX,OFFSET MESS2 INT 21H MOV AH, 0AH MOV DX,OFFSET MAXLEN2 INT 21H CRLF MOV SI,OFFSET ACTLEN1 MOV BX,OFFSET ACTLEN2 ; 字符串2长度单元首地址送BX MOV AL,[SI] ;字符串1长度送AL CMP AL,[BX] ;比较实际长度 JNZ NOMA ;不等就跳转 MOV CL,[BX] ;实际长度作为比较次数 COM: INC SI INC BX ;SI,BX每循环依次加1 MOV AL,[SI] CMP AL,[BX] JNZ NOMA DEC CL ;CL每循环依次减1 CMP CL,0 JNZ COM MOV AH,09H MOV DX,OFFSET MESS4 INT 21H JMP DEND NOMA: MOV AH,09H MOV DX,OFFSET MESS3 INT 21H DEND: MOV AX, 4C00H INT 21H CODE ENDS END START 程序调试 调试思路: 1、生成exe文件;2、观察初始化是否正常;3、观察字符串是否输入;4、观察比较字符串长度处是否跳转(相同不跳,反之,不同就跳,不匹配);5、循环体中看是否比较了字符串长度次数,是否有不匹配跳出循环体;6、显示结果是否正常。 两字符串是否匹配有三种情况:1、完全相同——MATCH;2、有个别字符不同——NO MATCH;3、字符串长度不同则——NO MATCH 调试过程: 通过MASM ZY.ASM 和LINK ZY.OBJ 命令即可生成exe文件; DEBUG ZY.EXE 进行调试,结合
显示全部
相似文档