微机原理__字符匹配程序实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

太原理工大学现代科技学院

课程实验报告专业班级

学号

姓名

指导教师

一、实验目的

掌握提示信息的使用方法及键盘输入信息的用法。

二、实验内容

1、编写程序,实现两个字符串比较。如果两个字符串中有一个字符相同,显示“MATCH”,否则,显示“NO MATCH”。

2、程序框图

三、所用仪器与软件

仪器:电脑一台

软件:Masm for Windows 集成实验环境 2009、7

四、实验方法、步骤

1、编写程序代码

2、运行程序,修改错误代码

3、再次运行代码直至运行出正确结果

五、源码程序编制及分析注释

CRLF MACRO 宏定义

MOV AH,02H AH=02H

MOV DL,0DH DL=0DH

INT 21H 系统功能调用,输出回车字符

MOV AH,02H AH=02H

MOV DL,0AH DL=0A

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 定义最大长度为81个字节ACTLEN1 DB ?

STRING1 DB 81 DUP (?) 定义STRING1长度为81 MAXLEN2 DB 81 定义最大长度为81

ACTLEN2 DB ?

STRING2 DB 81 DUP (?) 定义STRING2长度为81

DATA ENDS 数据段结束

STACK SEGMENT STACK 定义堆栈段

STA DB 50 DUP (?) 定义50个数据储存单元

TOP EQU LENGTH STA 给TOP赋值50

STACK ENDS 堆栈段结束

CODE SEGMENT 定义代码段

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK 定义段基址

START: MOV AX,DATA

MOV DS,AX 把DATA的首地址赋给DS

MOV ES,AX 把DATA的首地址赋给ES

MOV AX,STACK

MOV SS,AX 把STACK的首地址赋给SS

MOV SP,TOP 给SP赋值50

MOV AH,09H AH=09H

MOV DX,OFFSET MESS3 把MESS3的偏移地址赋给DX

INT 21H 系统功能调用

MOV AH,0AH AH=0AH

MOV DX,OFFSET MAXLEN1 把MAXLEN1的偏移地址赋给DX

INT 21H 系统功能调用

CRLF

MOV AH,09H AH=09H

MOV DX,OFFSET MESS4 把MESS4的偏移地址赋给DX

INT 21H 系统功能调用

MOV AH,0AH AH=0AH

MOV DX,OFFSET MAXLEN2 把MAXLEN2的偏移地址赋给DX

INT 21H 系统功能调用

CRLF

CLD

MOV SI,OFFSET STRING1 把STRING1的偏移地址赋给SI

MOV CL,[SI-1] 把SI-1内的内容赋给CL

MOV CH,00H CH=00H

KKK: MOV DI,OFFSET STRING2 把STRING2的偏移地址赋给DI PUSH CX 将CX压入堆栈

MOV CL,[DI-1] 将DI-1内的的内容赋给CL

MOV CH,00H CH=00H

MOV AL,[SI] 将SI内的内容赋给AL

MOV DX,DI 将DI赋给DX

REPNZ SCASB 寻找第一个相同字符

JZ GGG ZF=0执行GGG否则顺序执行

INC SI SI自加1

POP CX 弹出CX

LOOP KKK 跳转到KKK循环

MOV AH,09H

MOV DX,OFFSET MESS2

INT 21H 系统功能调用

JMP PPP 跳转到PPP

GGG: MOV AH,09H

MOV DX,OFFSET MESS1

INT 21H 输出MESS1

PPP: MOV AX,4C00H

INT 21H 带返回码结束

CODE ENDS 代码段结束

END START 整个程序结束

六、实验结果与分析

实验结果如下:

(1)两个字符串中没有字符相同:

(2)两个字符串中有两个字符相同:

相关文档
最新文档