实验4-字符处理程序设计

实验四 字符处理程序设计

一、实验目的

1. 学习字符处理的相关指令,加深对这些指令的理解和运用。

2. 掌握字符处理程序设计、编写及调试方法。

3. 掌握在程序设计中合理利用字符串的尾符。

二、实验准备

1. 复习教材中与字符处理指令相关的内容。

2. 已知字符串“aBCEFghi15OXyZ ”以0DH 作为结束标志,编写程序1:从头搜索字符串的结束标志,统计搜索的字符个数,并画出流程图。

3. 编写程序2:从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个字母,并画出流程图。例如输入首字母a ,则输出最后一个字母z ,输入第4个字母d 则输出倒数第4个字母w 。

4. 分析程序的结果,并准备好上机调试。

三、实验内容

1.已知字符串“aBCEFghi15OXyZ ”以0DH 作为结束标志,编写程序1:从头搜索字符串的结束标志,统计搜索的字符个数

实验代码如下:

DATA SEGMENT

X DB 'aBCEFghi150XyZ',0DH

Y DB ?

Z DB 0DH

DATA ENDS ;数据段

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV ES,AX ;将DATA 赋给ES

MOV DI,offset X ;将X 的首地址赋给DI

MOV AL,Z

MOV CL,0

CLD ;方向标志位清零

AGAIN:

SCASB ;搜索

JZ OUTPUT ;如果该位与0DH 相同则跳转到OUTPUT

INC CL ;CL+1

JNZ AGAIN ;如果该位与0DH 不同则继续

OUTPUT:

MOV Y,CL ;将字符个数送入Y 中

MOV AH,4CH

INT 21H

CODE ENDS

END START

统计的字符个数存放在Y 中,实验结果如下:

2. 编写程序2:从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个字母,并画出流程图。例如输入首字母a ,则输出最后一个字母z ,输入第4个字母d 则输出倒数第4个字母w 。

程序代码:

DATA SEGMENT

S DB "INPUT A CHAR:",0AH,0DH,"$" ;定义开头语

X DB 00H,"$"

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET S

MOV AH,9

INT 21H ;输出提示语

MOV AH,01H

INT 21H ;输入数据

MOV CL,0DBH

SUB CL,AL

MOV X,CL

MOV DX,OFFSET X

MOV AH,09H

INT 21H ;输出结果

MOV AH,4CH

INT 21H

CODE ENDS

END START

运行程序:

3. 修改程序2实现从键盘读入一个大写字母,输出字母表中倒数与该字母序号相同的那个大写字母;

程序代码:

DATA SEGMENT

S DB "INPUT A CHAR:",0AH,0DH,"$" ;定义开头语

X DB 00H,"$"

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET S

MOV AH,9

INT 21H ;输出提示语

MOV AH,01H

INT 21H ;输入数据

MOV CL,09BH

SUB CL,AL

MOV X,CL

MOV DX,OFFSET X

MOV AH,09H

INT 21H ;输出结果

MOV AH,4CH

INT 21H

CODE ENDS

END START

运行程序:

4. 从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个大写字母. 程序代码:

DATA SEGMENT

S DB "INPUT A CHAR:",0AH,0DH,"$" ;定义开头语

X DB 00H,"$"

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET S

MOV AH,9

INT 21H ;输出提示语

MOV AH,01H

INT 21H ;输入数据

MOV CL,09BH

SUB AL,20H ;先将小写字母换成大写字母

SUB CL,AL

MOV X,CL

MOV DX,OFFSET X

MOV AH,09H

INT 21H ;输出结果

MOV AH,4CH

INT 21H

CODE ENDS

END START

运行程序:

实验四 字符处理程序设计

一、实验目的

1. 学习字符处理的相关指令,加深对这些指令的理解和运用。

2. 掌握字符处理程序设计、编写及调试方法。

3. 掌握在程序设计中合理利用字符串的尾符。

二、实验准备

1. 复习教材中与字符处理指令相关的内容。

2. 已知字符串“aBCEFghi15OXyZ ”以0DH 作为结束标志,编写程序1:从头搜索字符串的结束标志,统计搜索的字符个数,并画出流程图。

3. 编写程序2:从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个字母,并画出流程图。例如输入首字母a ,则输出最后一个字母z ,输入第4个字母d 则输出倒数第4个字母w 。

4. 分析程序的结果,并准备好上机调试。

三、实验内容

1.已知字符串“aBCEFghi15OXyZ ”以0DH 作为结束标志,编写程序1:从头搜索字符串的结束标志,统计搜索的字符个数

实验代码如下:

DATA SEGMENT

X DB 'aBCEFghi150XyZ',0DH

Y DB ?

Z DB 0DH

DATA ENDS ;数据段

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV ES,AX ;将DATA 赋给ES

MOV DI,offset X ;将X 的首地址赋给DI

MOV AL,Z

MOV CL,0

CLD ;方向标志位清零

AGAIN:

SCASB ;搜索

JZ OUTPUT ;如果该位与0DH 相同则跳转到OUTPUT

INC CL ;CL+1

JNZ AGAIN ;如果该位与0DH 不同则继续

OUTPUT:

MOV Y,CL ;将字符个数送入Y 中

MOV AH,4CH

INT 21H

CODE ENDS

END START

统计的字符个数存放在Y 中,实验结果如下:

2. 编写程序2:从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个字母,并画出流程图。例如输入首字母a ,则输出最后一个字母z ,输入第4个字母d 则输出倒数第4个字母w 。

程序代码:

DATA SEGMENT

S DB "INPUT A CHAR:",0AH,0DH,"$" ;定义开头语

X DB 00H,"$"

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET S

MOV AH,9

INT 21H ;输出提示语

MOV AH,01H

INT 21H ;输入数据

MOV CL,0DBH

SUB CL,AL

MOV X,CL

MOV DX,OFFSET X

MOV AH,09H

INT 21H ;输出结果

MOV AH,4CH

INT 21H

CODE ENDS

END START

运行程序:

3. 修改程序2实现从键盘读入一个大写字母,输出字母表中倒数与该字母序号相同的那个大写字母;

程序代码:

DATA SEGMENT

S DB "INPUT A CHAR:",0AH,0DH,"$" ;定义开头语

X DB 00H,"$"

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET S

MOV AH,9

INT 21H ;输出提示语

MOV AH,01H

INT 21H ;输入数据

MOV CL,09BH

SUB CL,AL

MOV X,CL

MOV DX,OFFSET X

MOV AH,09H

INT 21H ;输出结果

MOV AH,4CH

INT 21H

CODE ENDS

END START

运行程序:

4. 从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个大写字母. 程序代码:

DATA SEGMENT

S DB "INPUT A CHAR:",0AH,0DH,"$" ;定义开头语

X DB 00H,"$"

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET S

MOV AH,9

INT 21H ;输出提示语

MOV AH,01H

INT 21H ;输入数据

MOV CL,09BH

SUB AL,20H ;先将小写字母换成大写字母

SUB CL,AL

MOV X,CL

MOV DX,OFFSET X

MOV AH,09H

INT 21H ;输出结果

MOV AH,4CH

INT 21H

CODE ENDS

END START

运行程序:


相关内容

  • 实验五 子程序设计实验(设计性实验)汇编语言
  • 实验五 子程序设计实验(设计性实验) 一.实验要求和目的 1.熟悉汇编语言程序设计结构: 2.熟悉汇编语言子程序设计方法: 3.熟悉利用汇编语言子程序参数传递方法: 4.熟悉汇编语言字符串处理基本指令的使用方法: 5.掌握利用汇编语言实现字符串的输入输出程序设计方法: 6.掌握数制转换程序实现方法. ...

  • 编译原理实验指导书(2015)
  • LIAOCHENG UNIVERSITY 编译原理 实验指导书 聊城大学计算机学院 2011年3月 目 录 <编译原理>课程实验教学大纲 ............................. 1 实验一 词法分析器的设计 .............................. ...

  • 中南大学 汇编语言实验报告
  • 计算机原理与汇编 实 验 报 告 学生姓名 学 号 专业班级 指导教师 贺建飚 学 院 信息科学与工程学院 完成时间 2014年6月 实验一 二进制转十六进制 一.实验目的 (1) 掌握循环程序的设计方法. (2)掌握汇编语言源程序的编辑.汇编.连接及调试过程. (3)进一步熟悉利用DEBUG程序修 ...

  • [高级语言程序设计]
  • <高级语言程序设计>教学大纲 王林平 编 一.总则 1. 教学目的与要求 (1)教学目的 <高级语言程序设计>是学习研究计算机及其应用的一门很重要的专业基础课程.它为<数据结构>.<操作系统>等其它专业基础课或专业课程奠定程序设计的基础,又是其它专业课 ...

  • 2013年微机原理课程设计题目-汇总
  • 1. 根据键盘输入的一个数字显示相应的数据螺旋方阵.如输入4,则显示. 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 共需要显示4^2=16个数字. 要求:①根据键盘输入的数字(3-20),显示相应的数据方阵. ② 画出设计思路流程图,编写相应程序. 2. 显示日期或 ...

  • 图书管理系统实验报告
  • <数据库原理及应用> 课程设计报告 --图书管理系统 班级: 学号: 姓名:XXXX 指导老师: 课程设计时间:2014年1月6日至 1月10日 目录 一.需求分析 1.数据库需求分析-------------.3 2.数据流图----------------.4 3.数据字典----- ...

  • 一种快速实用的车牌字符识别方法
  • 文章编号:1008-0570(2010)01-2-0211-02 图像处理 一种快速实用的车牌字符识别方法 A Quick and Practical Method of the License Plate Recognition (兰州交通大学) 李珺党建武 LI Jun DANG Jian-wu ...

  • 学生成绩管理系统
  • 广东工业大学实验报告 ______________学院________________专业_____班 成绩评定_______ 学号__________姓名__________(合作者____号____) 教师签名_______ 实验 一 题目 数据库系统设计 第___周星期___第___节 一. ...

  • 〈数据结构〉上机实验指导
  • 数据结构实验指导书 陈宏明 张亚红 寇海洲编 淮阴工学院计算机系 二OO 五年九月 目 录 实验一 线性表及其应用----- --------2 实验二 实验三 实验四 实验五 实验六 栈和队列及其应用-------------5 二叉树及其应用--------------7 图及其应用------ ...