搜索
您的当前位置:首页汇编语言课程设计

汇编语言课程设计

来源:飒榕旅游知识分享网


青海师范大学

课程设计报告

2010~2011学年第二学期

目录

1

的·················································3 2

求·················································3

3、题目 ··························································3 4、设计思路························································3 5、程序流程图·······················································4 6、设计源程序·······················································5 7、动画示意图·······················································8 8

结····························································8

9、‘参考文献····························8

大小写字母转换

一、课程设计的目的

《汇编语言课程设计》是软件工程专业集中实践性环节之一,是学习完《汇编语言》课程后进行的一次全面的综合练习。其目的是:

培养学生熟练掌握汇编语言指令系统,深化和巩固指令系统和编程方法,提高学生的编程应用能力。为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。 二、课程设计的要求

1) 具备初步的独立分析和解决问题的能力;

2) 初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能; 3) 提高综合运用所学的理论知识和方法的能力;

4) 训练用系统的观点和软件开发一般规范进行软件开发,培养科学的工作方法和作

风;

5) 设计的题目要求达到一定工作量,并具有一定的深度和难度; 6) 编写出课程设计说明书。 三、题目

输入大写字母,转换成小写字母;输入小写字母转换成大写字母;非字母,发出警告声。

四、课程设计报告内容

设计思路:

课程设计要求进行大小写字母的转换。其实字母大小写的区别在于他们的ASCII码范围,它们之间的转换其实就是加减相应的ASCII码值。在判断输入的字母是大写的还是小写的(即判断输入符号ASCII码在41H~5AH还是在61H~7AH内)之后,决定判断是加上还是减去ASCII码值。另外如果输入的不是字母(输入字符对应ASCII码值不在41H~5AH或61H~7AH内),则需要报警提示,这不但涉及到用汇编语言实现发声的方法,而且对计算机硬件的了解也有要求,因此原理部分加入了部分有关声音产生的硬件知识。

五、 程序设计流程图

开始 array首地址→bx

从键盘接受字符 1 字母 N Y 退出

图2-1程序流程图

输入 大写转小写 小写转大写 报警 回车换行输出 结束

六、设计源程序

code segment ;代码段 assume cs:code,ds:code

org 100h ;从100h开始 start: jmp begin ;跳到begin

p1 db 100 p2 db 0

array db 100h dup(?) begin:

lea bx,array mov ax,cs

mov ds,ax mov dx,offset p1 mov ah,0ah int 21h

xor bx,bx mov bl,p2 mov array[bx],'$' mov di,0ffffh next: inc di cmp array[di],'$' je exit cmp array[di],41h jl exit1 cmp array[di],5ah jg next1 add array[di],20h jmp next

next1: cmp array[di],'$' je exit ;置100个字节的缓冲区存放数据

;将array的首地址给bx ;置cs-->ds ;将p1的偏移量给dx

;调用中断21的0a号功能从键盘接收字符 ;将bx清零 ;p2-->bl

;送'$'至字符串尾 ;-1-->di ;di自加 ;比较

;相等,则跳到exit执行

;(A~Z-->41h-5ah a~z-->61h-7ah)与A比较;小于,则跳 ;与Z比较 ;大于,则跳 ;加20h,大写转小写 ;比较

;相等,则跳到exit执行

cmp array[di],61h ;(A~Z-->41h-5ah a~z-->61h-7ah)与a比较 jl next ;小于,则跳 cmp array[di],7ah ;与z比较 jg exit1 ;大于,则跳 sub array[di],20h ;减20h,小写转大写 jmp next disp: loop next

exit: mov p1,0dh mov p2,0ah mov ah,09h int 21h jmp begin exit1: mov p1, 0dh mov p2, 0ah

call sound call sound call sound call sound jmp begin

mov ah,4ch int 21h

sound proc push ax push dx mov dx, cx in al,61h

and al,11111100b trig: xor al,2 ;回车换行 ;调用发声子程序 ;程序结束 ;使第0,1位为0

;使第1位翻转 PB的低两位为3,即使输出有

out 61h,al mov cx,bx delay:loop delay dec dx jne trig pop dx pop ax ret sound endp code ends end begin

七、 运行结果分析:

当输入字母串ABCDEFabcdef后,按回车键转换为abcdefABCDEF,结果如下图所示:

图2-2 程序运行结果

当输入非英文字母时,按下回车键后发出滴滴的报警声,实现程序功能。 八、总结

《汇编语言课程设计》是软件工程专业集中实践性环节之一,是学习完《汇编语言》课程后进行的一次全面的综合练习。通过这次汇编语言课程设计让我初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能,提高综合运用所学的理论知识和方法的能力, 初步具备的独立分析和解决问题的能力。

这次课程设计,使我能熟练掌握汇编语言指令系统,深化和巩固指令系统和编程方法,提高学生的编程应用能力。为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。

九、参考文献:

[1]《汇编语言程序设计》,朱耀庭等编著,北京:清华大学出版社

[2] 姚燕南,薛钧义主编.《微型计算机原理》第四版.西安电子科技大学出版社. [3] 潘峰主编.《微型计算机原理与汇编语言》第三版.电子工业出版社. [4] 雏逢兴编著.《计算机硬件技术基础》高等教育出版社.

[5] 王永山等编著.《微型计算机原理与应用》西安电子科技大学出版社.

[6] 舒贞权等编著.《Intel 8086/8088系列微型计算机原理》西安交通大学出版社.

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

Top