键盘输入的小写字母转换成大写字母
时间:2026-01-19
时间:2026-01-19
微型计算机原理课程设计实验报告
学院:电气信息工程学院
班级:生医0901
姓名:曹佳浩
学号:3090505024
微型计算机原理课程设计实验报告
一、实验目的
结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对微型计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。学会使用全屏幕编辑程序—PE,弄懂汇编程序的上机过程以及如何运用DEBUG软件进行汇编程序的调试。
二、实验内容
1、响铃设计
为掌握响铃的使用方法。编写程序,从键盘接收输入字符,如是数字N则响铃N次;如不是数字,则不响。
2、将键盘输入的小写字母转换成大写字母的设计
为了解小写字母和大写字母在计算机中的表示方法,并学习如何进行转换。编写程序,接收键盘字符,并将其中的小写字母转变为大写字母,然
后显示在屏幕上。
3、字符串匹配设计
为掌握提示信息的设置方法及读取键入信息的方法。编写程序实现两个字符串比较。如相同,则显示“MATCH”,否则,显示“NO MATCH”。
4、计算N!的设计
为了解高级语言中的数学函数是怎样在汇编语言一级上实现的。编写计算N!的程序。数值N由键盘输入,结果在屏幕上输出。N的范围为0~65535。即刚好能被一个16位寄存器容纳。
5、学生成绩名次表设计
为进一步熟悉排序方法。编写程序,将0~100之间的30个成绩存入首址为1000H的存储区中。1000H+i表示学号为i的学生成绩。编写程序使得在
2000H开始的区域排出名次表。2000H+i为学号为i的学生的名次。
三、将键盘输入的小写字母转换成大写字母的设计
四、流程图
-3-
入口
段寄存器和堆栈初始化
BX 指向字符行缓冲区首址
偏移指针 SI 清零
INT 21H 的 01H 号子功能接受键入字符
Y 是∧-C 键? N Y 是回车键? N N 是小写字母? Y 小写字母的 ASCII 码值转化为 大写字母的 ASCII 码值
存入字符行缓冲区[BX+SI]单元
SI 加 1 指向下一单元
显示转换后的字符行缓冲区内容
返回 DOS
五、实验参考程序
DATA SEGMENT
BUF DB 82 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX ;段寄存器初始化
MOV BX,OFFSET BUF ;BX指向字符行缓冲区首址
KKK: MOV SI,00H ;指针SI清0
GGG: MOV AH,01H ;接收键入字符
INT 21H
CMP AL,03H
JZ PPP ;是CTRL-C键则转结束
CMP AL,0DH
JZ BBB ;是回车键则转BBB
CMP AL,61H
JB TTT
CMP AL,7AH
JA TTT ;不是小写字母转TTT
SUB AL,20H ;小写字母转化为大写字母
TTT: MOV [BX+SI],AL ;存入字符行缓冲区中
INC SI ;指针加1
JMP GGG
BBB: MOV [BX+SI],AL
MOV AL,0AH
MOV [BX+SI+1],AL ;加入换行符
MOV AL,'$'
MOV [BX+SI+2],AL ;再加一个'$'标志字符
MOV AH,09H
MOV DX,BX
INT 21H ;显示转换后的字符串 JMP KKK
PPP: MOV AH,4CH
INT 21H
CODE ENDS
END START
该程序段中的一些指令功能:
CMP:比较指令。将源操作数和目的操作数相减,结果不存储。影响标志位。
JZ:条件跳转指令。零标志ZF为1,则转移。
JB:条件跳转指令。低于、或不高于且不等于,则跳转。
JA:条件跳转指令。高于、或不低于且不等于,则跳转。
SUB:算术减法指令。将目的操作数减源操作数,结果送目的操作数。。 JMP:无条件转移指令。
该程序段中,SUB AL,20H,表示将输入字符的ASCII码减去20 从而实现将小写字母转换成大写。JMP KKK,无条件转移到KKK程序段,从而实现程序的循环,对输入的字符串中的下一个字符进行判断。
六、心得体会
通过这一个星期微机原理的课程设计,我对微机原理这门课程有了更进一步的了解。通过自己积极地查阅相关资料,请教老师,与同组的同学一起讨论,最终完成设计。
本学期做了许多微机原理的实验,这次要用汇编语言来实现大小写字母的转换,所以自己一开始感觉这会非常的简单。直到真正的理解相关原理,要编写程序实现的时候,才发现,自己对汇编程序的了解确实还不够,尤其是编程方面的能力有待提高。在不断地再次学习和理解过程中,我慢慢掌握了更多汇编语言的应用知识,更为值得骄傲的是,自己在参考程序的辅助下顺利编写出了大小写字母转换的程序。
把编写好的程序输入软件时候,出现了许多小问题,比如句子没有加逗号,没有定义变量等等。归纳起来都是因为编程掌握不牢固,写程序没有条理,加上自己粗心大意的恶习依旧没改正造成的,以后需要努力改正。
通过本次课程设计我学到了很多新的东西,极大地拓宽了我的知识面,锻炼了能力,综合素质也得到较大提高,我感到收获不小。但在设计中也发现了大量问题,有些在设计过程中已经解决,有些还需要在今后慢慢学习,只要学习就会有更多的问题,有更多的难 …… 此处隐藏:286字,全部文档内容请下载后查看。喜欢就下载吧 ……