大小写字母转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言课程设计
1.设计的目的和任务
(1)目的:课程设计是本科教学全过程中重要环节。其目的是培养计算机专业学生运用所学知识解决计算机应用领域内实际问题能力,进一步提高学生汇编语言综合编程能力,程序调试技能。
(2)任务:能够按照设计题目完成相应设计;撰写设计报告。
完成设计任务,撰写设计报告,上交源程序和可执行程序,源程序加注释
3.设计地点
自己的计算机
4.主要仪器设备(实验用的软硬件环境)
普通微机一台;汇编语言环境(基于DOS环境:EDIT、MASM、LINK、DEBUG;基于Windows环境)
5.设计内容
实现小写字母向大写字母的转换,主要利用小写字母比大写字母大20H的关系,实现大写字母向小写字母的转换,将大写字母的ASCII值加上20H就可以换成小写字母。键盘输入,显示输出。
从键盘上输入一串字符,若是小写字符则转换成大写字符在下一行输出,若是大写字符则转换成小写字符在下一行输出,若都不是则原样在下一行输出。
程序流程图如下:
6.源程序
DA TA SEGMENT
P1 DB 100
P2 DB 0
ARRAY DB 100 DUP(?) ;置100个字节的缓冲区存放数据DA TA ENDS
CODE SEGMENT ;代码段
ASSUME CS:CODE,DS:DA TA
START:
LEA BX,ARRAY ;将ARRAY的首地址给BX
MOV AX,CS
MOV DS,AX
MOV DX,OFFSET P1 ;将P1的偏移量给DX
MOV AH,0AH ;调用中断21的0A号功能从键盘接收字符
INT 21H
MOV BX,0
MOV BL,P2
MOV ARRAY[bx],’$’;送$至字符串尾
MOV DI,0FFFFH
NEXT: INC DI ;DI自加
CMP ARRAY[DI],’$’;比较
JE NEIT ;相等,转到EXIT
CMP ARRAY[DI],41H ;ARRAY[DI]中的字符与A比较
JL NEXT ;小于则转
CMP ARRAY[DI],5AH ;与Z比较
JG NEXT1 ;大于则转
ADD ARRAY[DI],20H ;加20H大写转小写
JMP NEXT
NEXT1:
CMP ARRAY[DI],’$’;比较
JE EXIT ;相等则转
CMP ARRAY[DI],61H ;ARRAY[DI]中的字符与a比
JL NEXT ;小于则转
CMP ARRAY[DI],7AH ;与z比较
JG NEXT ;大于则转
SUB ARRAY[DI],20H ;减20h,小写转大写
JMP NEXT
EXIT:
MOV P1,0DH ;回车换行
MOV P2,0AH
MOV AH,09H
INT 21H
MOV AH,4CH ;程序结束
INT 21H
CODE ENDS
END START
6.问题讨论与分析
通过这次实验,总结出了该如何分析和编写程序:1,画出整个程序的流程图,理解整个程序流程的思想。画流程图的方式更让人很直
接的理解程序的整体流程,而不会被代码说干扰。2,对流程各节点(函数或过程)的理解。3,再把流程和流程的各个节点串起来理解整个程序,可能的话最好写出读书笔记。4,再编写该程序进行操练。只有在我们这个程序之后才知道到底你理解了多少,掌握了多少。
通过这次实验,我深刻的了解到了理论联系实际的重要性了。有点程序我们看着简单,但是自己设计起来却感觉无从下手,所以我们应该多给自己锻炼的机会。更加深入地了解和运用我们所学的知识。
参考文献
1、詹仕华等编.《汇编语言程序设计》.北京:中国电力出版社. 2008.2
2、詹仕华等编.《汇编语言程序设计习题解答及课程实验、设计辅导》.北京:中国电力出版社. 2008.2
3、王爽编.《汇编语言》. 北京:清华大学出版社,2003.5
4、曹加恒等编.《新一代汇编语言课程设计》. 北京:高等教育出版社,2003.6
5、杨路明等编.《汇编语言程序设计》. 长沙:中南大学出版社,2005.8