实验四字符串的匹配与替换程序设计

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

3.4 实验四字符串的匹配与替换程序设计
一、实验目的1)掌握串操作指令的使用方法。

2)掌握串处理程序的设计方法。

3)熟练使用各种程序结构。

二、实验内容3)编写程序把从键盘输入的以回车为结束符的字符串中的小写字母转换为大写字母并按相反的顺序输出。

DATA SEGMENT ;数据段定义
BUFF DB 10, ?, 10 DUP(?) ;最多接收10个字符,最后的回车算一个字符
DOLLAR DB ? ;多预留一个字节,最后加'$'符号(虽然不一定会加在这) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA ;约定段地址
START: MOV AX,DATA
MOV DS,AX ;把数据段地址告诉DS
MOV DX,OFFSET BUFF
MOV AH,0AH
INT 21H ;上述3句调用10号DOS中断,输入字符串
MOV SI,OFFSET BUFF+1 ;BUFF+1保存的就是真是输入的字符数
XOR CX,CX ;CX清零
MOV CL,[SI] ;设置循环次数
LP: INC SI ;SI自增
MOV AL,[SI] ;把SI地址指向的字节传给AL
CMP AL,'a'
JB NEXT ;如果小于'A'则跳转
CMP AL,'z'
JA NEXT ;如果大于'Z'则跳转
SUB AL,20H ;在'A'~'Z'范围内,加20H变成小写
MOV [SI],AL ;赋回给内存空间
NEXT:LOOP LP
MOV BYTE PTR [SI+1],'$' ;字符串最后加个'$'便于用9号功能输出 MOV AH,2 ;换行开始
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H ;换行
MOV DX,OFFSET BUFF+2
MOV AH,9
INT 21H ;调用9号DOS中断,显示首地址为DS:DX的字符串
MOV AH,4CH
INT 21H
CODE ENDS
END START
4)编写程序在字符串STRING1中指定位置插入字符串STRING2。

DSEG SEGMENT
STR1 DB '1234658236'
N1 EQU $-STR1 ;定义出STR1的长度
STR2 DB '4567355'
N2 EQU $-STR2 ;定义出STR2的长度
STR DB N1+N2 DUP(?),'$';定义出新字符串STR的长度,最后以'$'结束,以便用9号功能显示
DSEG ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DSEG
BEGIN: MOV AX,DSEG
MOV DS,AX
LEA SI,STR1
LEA DI,STR2
LEA BX,STR ;设置三个地址指针指向三个字符串 MOV CX,N1
NEXT1: MOV AL,[SI]
MOV [BX],AL
INC SI
INC BX
LOOP NEXT1 ;把STR1复制到STR
MOV CX,N2
NEXT2: MOV AL,[DI]
MOV [BX],AL
INC DI
INC BX
LOOP NEXT2 ;把STR2复制到STR
LEA DX,STR
MOV AH,9
INT 21H ;9号功能显示
MOV AH,4CH
INT 21H ;程序结束,返回
Code ENDS
END BEGIN
四、实验步骤1) 按程序流程图编制实验程序。

2) 输入源程序。

3) 汇编、连接程序,执行程序,检查结果。

4) 程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。

5) 用D命令检查执行结果。

五、实验报告的要求
1)列出源程序。

2)对程序中用到的寄存器说明其功能。

3)总结算术运算和代码转换程序的设计方法。

4) 说明怎样使用DEBUG进行程序调试的。

调试过程中所遇到的问题是如何解决的。

相关文档
最新文档