您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页字符处理程序设计

字符处理程序设计

来源:筏尚旅游网


一、实验目的

1.学习字符处理的相关指令,加深对这些指令的理解和运用。 2.掌握字符处理程序设计、编写及调试方法。 3.掌握在程序设计中合理利用字符串的尾符。 二、实验准备

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

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

DATA SEGMENT

X DB 'aBCEFghi15OXyZ',0DH Y DB ? Z DB 0DH

DATA ENDS ;定义数据段

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA

MOV DS,AX ;将DATA的值赋给DS MOV ES,AX ;将DATA的值赋给ES

MOV DI,offset X ;将内存单元X的首地址赋给DI

实验四 字符处理程序设计

MOV AL,Z

MOV CX,0 ;将CX寄存器清零 CLD ;方向标志位清零 again:

SCASB ;搜索

JZ OUTPUT ; 如果该位与0DH相同则跳转到OUTPUT INC CX ;没跳转则CX加一

JNZ again ;如果该位与0DH不同则继续执行again OUTPUT:

MOV Y,CL ;将CL的值送到内存单元Y中 MOV AH,4CH INT 21H CODE ENDS END START

START 将内存单元首地址赋给DI CX清零 置CLD=0 CX++ 比较与dx是否相等 F T CL赋给Y END

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

DATA SEGMENT

TS DB \"PLEASE INPUT A CHAR:\;定义开头语 X DB 00H,\"$\" DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DS,AX

MOV DX,OFFSET TS MOV AH,9 INT 21H MOV AH,01 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

START 输出提示语 输入数据 将DB赋给CL 将CL-AL的值放于X中 输出结果 END

4.实现从键盘读入一个大写字母,输出字母表中倒数与该字母序号相同的那个大写字母 DATA SEGMENT

TS DB \"PLEASE INPUT A CHAR:\;定义开头语 X DB 00H,\"$\" ;用于存放输出的数据 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DS,AX

MOV DX,OFFSET TS

MOV AH,9

INT 21H ;调用9号中断,输出开头语 MOV AH,01

INT 21H ;调用一号中断,输入数据 MOV CL,09BH

SUB CL,AL ;根据输入数据得出最终结果 MOV X ,CL ;将结果存在内存单元X中 MOV DX , OFFSET X MOV AH , 09H

INT 21H ;输出结果 MOV AH,4CH INT 21H CODE ENDS

END START ;结束

START 输出提示语 输入数据 将9B赋给CL 将CL-AL的值放于X中 输出结果 END

5.从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个大写字母 DATA SEGMENT

TS DB \"PLEASE INPUT A CHAR:\;定义开头语 X DB 00H,\"$\" ;用于存放输出的数据 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA MOV DS,AX

MOV DX,OFFSET TS MOV AH,9

INT 21H ;调用9号中断,输出开头语 MOV AH,01

INT 21H ;调用一号中断,输入数据 MOV CL,0DBH

SUB CL,AL ;将结果先转换成倒数 MOV AL,20H

SUB CL,AL ;根据输入数据得出最终结果 MOV X ,CL ;将结果存在内存单元X中 MOV DX , OFFSET X MOV AH , 09H

INT 21H ;输出结果 MOV AH,4CH INT 21H CODE ENDS

END START ;结束

START 输出提示语 输入数据 将DB赋给CL 将CL-AL的值减去20H 结果放于X中 END

四.程序中用到的寄存器:

1.DX用来存放内存单元数据的首地址

2.AL的一个用处是用来存放输入进来的数据 3.第一题中的CX用于计数 4.其余寄存器用来存放数据

五.上机调试过程中遇到的问题是如何解决的?

上机时不知道9号,1号中断的调用,我查阅BIOS功能调用表学习

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务