微机原理字符串匹配_第1页
微机原理字符串匹配_第2页
微机原理字符串匹配_第3页
微机原理字符串匹配_第4页
微机原理字符串匹配_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大学学生实验报告( 2010 2011 学年第 二 学期 )课程名称:微型计算机原理与接口技术 开课实验室:205 2011年 5 月 30 日 年级、专业、班电信091学号姓名成绩实验项目名称字符匹配程序指导教师教师评语 教师签名: 年 月 日一、实验目的、要求1掌握提示信息的使用方法及键盘输入信息的用法。二、实验原理及基本技术路线图或实验内容1. 编写程序,实现两个字符串比较。如果两个字符串中有一个字符相同,显示“MATCH”,否则,显示“NO MATCH”。2. 程序框图 段寄存器及堆栈初始化 显示“请输入字符串1”使用INT 21H的0A号子功能,接收键入的字符串显示“请输入字符串2”

2、指针SI指向串1的首字符SI指向的字符串和串2中所有字符作比较 Y 相等? N SI+1,指向串1中下一字符 N 串1中的字符已取完? Y显示“NO MATCH” 显示“MATCH” 返回DOS三、所用仪器、材料和软件 软件名称为:MASM FOR Windows 集成实验环境2009.7四、实验方法、步骤 根据实验的目的在该环境中编写出源代码,在进行调试、运行后,看能否得出结果。五、源码程序编制及分析注释程序清单及注释CRLF MACRO ;宏定义 MOV AH,02H ;AH=02H MOV DL,0DH ; DL=0DH INT 21H ;系统功能调用来输出个回车字符 MOV AH,02

3、H ;AH=02H MOV DL,0AH ;DL=0AH INT 21H ;系统功能调用来输出一个换行符 ENDM ;宏定义结束DATA SEGMENT ;数据段定义MESS1 DB MATCH,0DH,0AH,$ ;定义8个存储单元的数据MESS2 DB NO MATCH,0DH,0AH,$ ;定义11个存储单元的数据MESS3 DB INPUT STRING1:,0DH,0AH,$ ;定义17个存储单元的数据 MESS4 DB INPUT STRING2:,0DH,0AH,$ ;定义17个存储单元的数据MAXLEN1 DB 81 ;字符串1的缓冲区最大字符数 ACTLEN1 DB ? ;字

4、符串1的实际输入字符的个数STRING1 DB 81 DUP (?) ;用来存储字符串1的81个单元MAXLEN2 DB 81 ;字符串2的缓冲区最大字符数ACTLEN2 DB ? ;用来存放字符串2的实际字符个数 STRING2 DB 81 DUP (?) ;用来存储字符串2的81个单元DATA ENDS ;数据段定义结束STACK SEGMENT STACK ;堆栈段定义STA DB 50 DUP (?) ;在堆栈段定义50个空字符TOP EQU LENGTH STA ;TOP=50STACK ENDS ;堆栈段定义结束CODE SEGMENT ;代码段定义ASSUME CS:CODE,D

5、S:DATA,ES:DATA,SS:STACK ;段分配START: MOV AX,DATA ; MOV DS,AX ;将数据段的段地址赋给DS MOV ES,AX ;将数据段的段地址赋给ES MOV AX,STACK ; MOV SS,AX ;将堆栈段的段地址赋给SS MOV SP,TOP ;SP=50 MOV AH,09H ;AH=09H MOV DX,OFFSET MESS3 ; INT 21H ;输出INPUT STRING1: MOV AH,0AH MOV DX,OFFSET MAXLEN1 INT 21H ;(DS:DX)=最大字符数,(DS:DX+1)=实际的字符数 CRLF M

6、OV AH,09H MOV DX,OFFSET MESS4 INT 21H ;输出INPUT STRING2: MOV AH,0AH MOV DX,OFFSET MAXLEN2 INT 21H ;(DS:DX)=最大字符数,(DS:DX+1)=实际的字符数 CRLF ;宏调用 CLD ;DF=0,则串操作有低地址向高地址方向进行 MOV SI,OFFSET STRING1 ;将字符串1的偏移地址赋给SI MOV CL,SI-1 ;将字符串1的字符实际个数赋给CL MOV CH,00H ;CH=00HKKK: MOV DI,OFFSET STRING2 ;将字符串2的偏移地址赋给DI PUSH

7、CX ;将CX中的值即为字符串1的字符个数压入堆栈 MOV CL,DI-1 ;将字符串2的字符个数赋给CL MOV CH,00H ;CH=00H MOV AL,SI ;取出字符串1的第一个字符给AL MOV DX,DI ;将字符串2的第一个字符赋给DX REPNZ SCASB ;CX!=0(没有查完)和ZF=0(不相等)时重复 JZ GGG ;ZF=1,表示已经搜到了相等的字符,则转出 INC SI ;SI=SI+1 POP CX ;弹出原先字符串1中剩下未被进行比较的字符个数 LOOP KKK ;CX-1!=0则继续返回到子过程KKK MOV AH,09H MOV DX,OFFSET MESS2 INT 21H ;否则CX=0时的系统功能调用将显示NO MATCH JMP PPP ;将跳转到PPPGGG: MOV AH,09H MOV DX,OFFSET MESS1 INT 21H ;系统功能调用将显示MATCHPPP: MOV AX,4C00H INT 21H ;系统功能调用显示控制台的操作界面CODE ENDS ;代码段结束END START ;伪指令结束六、实验结果、分析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论