设计题目: 汇编语言程序设计说明书 字符串转换程序 学 院:计算机科学与技术 专 业:计算机科学与技术 班 级:_计科xx__ 学 号:_xx__ 学生姓名:_xx___ 指导教师:__xx____
20xx年 5 月 25 日
目 录
一、设计题目及设计目标................................................................................ 错误!未定义书签。
1.1设计题目.............................................................................................. 错误!未定义书签。
1.2设计目标.............................................................................................. 错误!未定义书签。
二、系统分析和设计........................................................................................ 错误!未定义书签。
2.1 设计思路............................................................................................. 错误!未定义书签。
2.1.1 算法思想.................................................................................. 错误!未定义书签。
2.1.2 主要技术.................................................................................. 错误!未定义书签。
2.1.3 主程序流程图.......................................................................... 错误!未定义书签。
2.2过程功能描述...................................................................................... 错误!未定义书签。
2.2.1 加密过程.................................................................................. 错误!未定义书签。
2.3过程详细设计...................................................................................... 错误!未定义书签。
三、程序实现方法............................................................................................ 错误!未定义书签。
3.1加密过程的编码实现.......................................................................... 错误!未定义书签。
3.2解密过程的编码实现.......................................................................... 错误!未定义书签。
3.3上机编译与调试.................................................................................. 错误!未定义书签。
3.3.1编辑源程序............................................................................... 错误!未定义书签。
3.3.2汇编源程序............................................................................... 错误!未定义书签。
3.3.3用LINK程序产生.EXE文件.................................................... 错误!未定义书签。
3.3.4程序的调试............................................................................... 错误!未定义书签。
四、程序运行与测试........................................................................................ 错误!未定义书签。
4.1运行结果.............................................................................................. 错误!未定义书签。
4.1.1主界面运行结果....................................................................... 错误!未定义书签。
4.1.2显示加密后的数据................................................................... 错误!未定义书签。
4.1.3显示解密后的数据................................................................... 错误!未定义书签。
4.1.4退出程序................................................................................... 错误!未定义书签。
4.2检错测试.............................................................................................. 错误!未定义书签。
五、设计总结.................................................................................................... 错误!未定义书签。 参考文献............................................................................................................ 错误!未定义书签。
设计题目及设计目标:
设计题目 字符串转换程序
设计目标
要求;1.从键盘输入字符串,将结果显示在屏幕上。
2.将其中的大写字母转换为小写字母。
3.将小写字母转换为大写字母。
4.将数字转化为空格。
5.按“q”键退出程序。
系统分析和设计
设计思路
算法思想
此程序主要算法思想是不断取每一个字符进行比较,当是大写字母、小写字母、数字就进行相应的转换。
主要技术
DOS中断调用:INT 21H 指令
0AH功能 键盘输入到缓冲区,DX=缓冲区首址 DX=缓冲区 最大字符DX+1=实际输入的字符数
02 H功能 显示输出,DL=输出字符
主程序流程图 过程功能描述
主模块start:键盘输入字符串到缓冲区,然后根据取的每一个字符调用各个模块。
LOOP1:取缓冲区一个字符并进行判断是大写字母或者小写字母或者空格或者特殊字符。
Transform1:大写字母的ASII码值转换为小写字母的ASII码值 Transform2:数字的ASII码值转换为空格的ASII码值 Out:输出特殊字符或者其他字符转换后的字符在屏幕上 Exit:按q退出程序
程序实现方法
DATA SEGMENT
MAX DB 50
CODE SEGMENT
ASSUME CS:CODE DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MAX
MOV AH,0AH ;键盘输入到缓冲区,DX=缓冲区首址
INT 21H ;DX=缓冲区 最大字符DX+1=实际输入的字符数
LEA SI,MAX+2
MOV CH,0
MOV CL,MAX+1 ;CL作为计数存放输入的字符总数
MOV AH,02H
MOV DL,0AH
INT 21H ;显示输入,换行
LOOP1:MOV AL,[SI]
CMP AL,7BH
JAE OUT ;取的字符为特殊字符,跳转到OUT
CMP AL,61H
JB TRANSFORM1 ;取的字符不为小写字母
CMP AL,71H
JE EXIT ;取的字符为”q“,跳转到EXIT
SUB AL,20H ;取的字符为小写字母,转换为大写字母的ASII码值 JMP OUT
TRANSFORM1:CMP AL,5BH
JAE OUT ;取的字符为特殊字符
CMP AL,41H
JB TRANSFORM2 ;取的字符不为大写字母
ADD AL,20H ;取的字符为大写字母,转换为大写字母的ASII码 JMP OUT
TRANSFORM2:
CMP AL,3AH
JAE OUT ;取的字符为特殊字符
CMP AL,30H
JB OUT ;取的字符为特殊字符
MOV AL,20H ;取的字符为数字,转换为空格的ASII码值 OUT:MOV AH,02H
MOV DL,AL ;显示输出,DL=输出字符
INT 21H
INC SI
LOOP LOOP1
EXIT: ;按“q”退出程序
MOV AH,4CH
INT 21H
CODE ENDS
END START
上机编译与调试
编辑源程序
编辑汇编语言源程序即建立.ASM文件。例如要建立一个文件名为EXAM.ASM的源文件,首先应调用编辑程序,进入编辑状态。这时就可输入、修改源程序。最后保存为.ASM文件即可。
程序的调试
程序运行与测试
测试数据:输入aaaAAA111!!!
运行
运行结果正确,输出AAAaaa !!!
成功把大写字母转换小写字母,小写字母转换大写字母,数字转换空格,其他字符不变。
设计总结
这次试验主要是结合平时老师教给我的方法,紧密联系课本的知识,通过前几次试验总结,再自己参考相关文献设计得出。通过这次
试验对汇编这门程序设计语言有了基本深入的了解,对知识的掌握更加深刻,特别是对字符串存放在内存单元有了更清楚地了解。 参考文献
1.王爽.汇编语言(第三版).清华大学出版社, 2013。
2. 周荷琴.微型计算机原理与接口技术(第五版).中国科技大学出版社,2013。
第二篇:汇编语言程序设计 实验报告书
汇编语言程序设计实验报告书
学号: 姓名: 学习中心: