英语字母表计算机,计算机汇编课程设计CCCC.pdf_给定一个英文ascii码文件,统计文件中英文字母的频率,以十进制形式输出。,wwwwwxxxxx...
1.给定一个英文ASCII码文件,统计文件中英文字母的频率,以十进制形式输出。
2.用递归计算n!(n≥50), 以十进制数输出 输入一个不小于50的整数n,用递归计算n!, 以十进制数输出
3.存储器系统设计
言程序设计;在计算机原理和汇编语言程序设计知识的讨论中培养创新意识,提
高分析、发现、研究和解决问题的能力;培养综合分析问题解决问题和调试程序
的能力
素质:
注重提高学生思想水平、政治觉悟、道德品质、文化素养等的培养。通过课
程设计中的分析讨论辩论培养分析沟通交流素质,建立计算机原理和汇编语言程
序设计的思维模式,提升理解计算机原理和汇编语言程序设计的基本素质。通过
课程设计,提升团队合作,交流沟通素质。
1.3实验原理
程序首先打开文件,并进行读取,对文件中的内容(字符串)进行逻辑判断,
根据不同字母对应不同的ASCI码值来统计不同字母出现的次数;在程序中,
i读到ASCⅡ码值为0的字符时说明字符串结束。
2设计准备
2.1设计环境
Masm for windows集成实验环境
2.2设计原则
、书写的所冇汇编语言代码应遵守灰喑语言规范。
、语言描述直接、清晰,保持代码简洁,避免语句复杂。
修改后要及时删除旧代码,而不只是将其注释掉。
风格要保持一致,使代码布局清晰,增强可读性。
注释要通俗易懂,不产生歧乂,避免加上并非必须的注解。注释使用的语句
要简洁,表达要清晰、准确,不要使人产生歧义,不可喧宾夺主。
3程序设计思想
3.1总体设计
为实现相应的功能,程序应具备打开文件、读取文本内容、对文本内容进行
分类统计等功能。程序应具备下面的流程图:
开始
打开文件
读取文本内容
对字符内容进行判别
计各字母个数
错误处理
输出&结東
为实现相应的功能,程序应按照以下的步骤进行:
(1)置数据段寄存器,初始化变量
(2)读打开指定文件:
若打开成功,则读取文件中的数据
若打开失败,则显示打开失败的提示信息
(3)成功读打开文件后:
先保存文件代号,再从文件中读取一个字符
若读取字符失败,则显示读取字符失败的提示信息;
右读取成功,并且未读取到文件结束符,则继续进行读取下一个字符的操作
(4)读取文件中字符成功后,将文件内容推入栈中,并输出:
先置缓冲区地址,调用缓冲区调用;
读字符,若读出错,则转读出错代码;
判断文件是否结束,若结束,置文件结束符于栈中;
若文件未结束,取所读字符置栈中;
(5)对所读字符ASCⅡ码进行比较判断并统计字符数
若所读字符的ASCI码值小于A或大于z,跳转继续比较下一个字符;
若所读字符的ASCI码值在Z和a之间,跳转继续比较下一个字符;
若读取字符的ASCI码值与az,或者AZ中某个字符ASCI码值相等,则
该字符个数加1
(6)统计结束后,显小输出统计出的对应字母个数
4实现过程
4.1读取文件代码段
读打开指定文件,若打开成功,则读取文件中的数据,若打开失败,则显示
打开失败的提示信息;成功读打开文件后:先保存文件代号,再从文件中读取
个字符;若读取字符失败,则显示读取字符失败的提示信息;若读取成功,并且
未读取到文件结束符,则继续进行读取下一个字符的操作;
MOV AXDATAS
MOV DS.AX
MOV DXOFFSET FNAME
MOV AX3DOOH
;读打开指定文件
INT 21
JNC OPEN
:打开成功,发生跳转
MOV SLOFFSET ERRORT
CALL DMESS
UMP OVER
OPEN
MOV BXAX
保存文件句柄
GO: CALL READ CHAR跳转代码段,从文件中读一个字符
JC READ ERROR
读取错误,跳转至指定代码段
CMP ALEOF
是否读到文件结束符
JZ TYPE OK
程序转移
CALL PUNCH
JMP GO
4.2将文件压入栈中,并输出
读取文件中字符成功后,将文件内容推入栈中,并输出:先置缓冲区地址,
调用缓冲区调用:读字符,若读出错,则转读出错代码;判断文件是否结束,若结
束,置文件结束符于栈中;若文件未结束,取所读字符置栈中;
READ CHAR PROC
MOV CX1
要读取的字节数
MOV DX, OFFSET BUFFER置缓冲区地址
MOV AH,3FH
;读文件
INT 21H
」CR1
读出错,程序转栘
CMP AX, OⅩ
判断文件是否结束
MOV ALEOF
JB R2
MOV AL BUFFER
R2. CLC
RI: RET
READ CHAR ENDP
DMESS PROC
MOV DL, ISIT
INC SI
OR DLDL
JZ DMESS2
MOV AH.02H
INT 21H
显示一个字符
JMP DMESSI
DMESS2: RET
DMESS ENDP
4.3对所读字符Asc|码进行比较判断并统计字符
对所读字符ASC∏码进行比较判断并统计字符数若所读字符的ASC∏码值
小于A或大于z,跳转继续比较下一个字符;若所读字符的ASCI码值在Z和a
之间,跳转继续比较下一个字符;若读取字符的ASCI码值与az,或者AZ中
某个字符ASCI码值相等,则该字符个数加1;对于不在字母序列内的字符
PUNCH PROC
PUSH DX
MOV DL, AL
MOV AH. 02H
显示一个字符
INT 21H
POP DX
MOV CL41H
;(A)
LEA DLARRAY
MOV CHAL
CMP CH CL
B OTHER
若|F<41H(A) OTHER++
CMP CHSAH
」 A HIGHER2
若F>5AH(乙继续比较
1: CMP CH CL
JE CHAR
对应字母个数++
」 A LOOP1
LOOP1
INC CL
ADD DL 1
JMP H1
HIGHER2
MOV CL, 61H
;(a)
LEA DLARRAY
MOV CHAL
CMP CHCL
JB OTHER
若<61H(a), OTHER++
CMP CH 7AH
」A○THER
若F>7AH(2), OTHER++
H2: CMP CH, CL
JE CHAR
对应字母个数++
JA LOOP2
LOOP2
INC CL
ADD DL 1
JMP H2
CHAR
Ⅹ OR CHCH
MOV CH, [DI]
INC CH
MOV [DI, CH
OTHER
INC OTHERS
比较结束
5运行结果
5.1文本文件内容
aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnnnnooooop
ppppqqyygrrrrrssssstttttuuuuuvvvvvwwwwwxxxxxyyyyyzZZzz%0*%o
52运行结果截图
先显示文件内容,然后显示各字符出现的字数
Fo: DOSBox 0.74, Cpu speed: 30C0 cycles, Frameskip 0, Pro
haaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjjjkkkkklllllmmmmmnnnmnooooopppppl
rqgrrrrrssssstttttuuuuuwwwWAwDoooO更yZz乙zz米
umb』"u
If a: 5 umber uf i: 05
Number uf c: 5
Number uf d: 5
mber of 05 fumber of f: 5 number af g: 5
Number of h: 5
Number of i: 5 Number of j: 05 umber af k: o5 Number of l: 5
umber of m: 05 umber of d: (5 umber af u: 0-
Tumber of pi t
ber of q: 05
Humber of r: 05
Number af s: (5
Number of t: 5
aber of u: 5 fumber of v: 5
Number of l:的
Number of x: 5
Number of y: 05
iumber of z: 05
Press any key to continue
6心得体会
6.1问题及解决办法
(1)找不到文件,显示 file not found
解决办法:根据显示可知,岀现这种情况的原因是找不到文件,可能岀现的原因
有:一代码出错,导致无法找到文件或是打廾文件;二是文件未创建成功;三是
文件创建的位置出现错误,即文件的路径出现错误。最后经过排査发现,是文件
创建位置出现错误,应该将TEST文件存储在masm软件安装包的bin目录下。
(2)对非字母字符的处理遇到问题,导致结果出错
解决办法:在一个一个处理字丹的过程中,根据各字符的 ASCII码值来进行判
断,若在A~Z和a~z之间,则相应的字符数量加1。对于除字母以外的字符原本
没有统计,但是岀现了错误,后来,将这些宇符仝部算作其他字符进行处理统计,
就不再出现错误。
(3)汇编语言编与程序最容易出现错误的地方就是数据在各种寄存器之间的转
换,这点就要求我们对汇编语言的相关概念非常清晰。
6.2总结与感悟
这次的汇编课设还是很有难度的,一方面是对知识掌握的不牢固,二是实践
少,所以真正开始编程的时候还是漏洞百出的,错误不断的。从开始的不知道如
何开始,然后慢慢的分析需求,设计模块,慢慢的脑中冇·个大概的结构。编写
的过程中也是一直出现很多问题,退到问题的时候马上去解决,不懂得就去查,
在这种遇到问题解决问题的反复循环中,自己的能力也得到了巨大的提升,对知
识的掌握也得到了巩固与强化。
在我看来,汇编语言是在接触的编程语言里最难以理解、难以记忆掌握的
门语言,而且学习的时间很短,所以在短时间内能有这么大的提升都是通过实践
得到的。通过课设我们能学到很多东西,不仅仅是知识,还有分析问题解决问题
的能力,独立思考的能力。这次的题目是小组配合完成的,所以在协作配合方面
也学到了很多,怎么通过合作将一道题完成好,也是一个每位成员不断努力的过
程
这次的汇编课设三人一组,第一题独立完成,第三第四题也都在很大程度上
参与完成,所以这次的汇编课设收获还是很大的。
8
7参考资料
7.1参考资料
[]沈美明BMPC汇编语言设计程序第2版清华大学出版社,2001
附录A:(源代码)
DATAS SEGMENT
FNAME DB TEST txt,0
ERROR1 DB 'File not found,07H.0
ERROR2 DB Reading error, 07H,0
STR|NG1 DB 'Number of$';各类字符提示信息
STRING2DB∵:$
ARRAY DB26DUP(0),字母个数数组
OTHERS DB O
BUFFER DB?;数据缓冲区
EOF DB 032H
DATAS ENDS
CODES SEGMENT
ASSUME CS: CODES, DS: DATAS
START
MOV AXDATAS
MOV DS.AX
MOV DXOFFSET FNAME
MOV AX3D00H;读打开指定文件
INT 21H
JNC OPEN打开成功
MOV SLOFFSET ERROR1
CALL DMESS
UMP OVER
OPEN:
MOV BXAX保存文件句柄
GO: CALL READ CHAR从文件中读一个字符
JC READ ERROR读取错误
CMP ALEOF是否读到文件结束符
JZ TYPE OK
CALL PUNCH
」MPGo
针对平台资源文件扩展名格式的温馨提醒:
当您下载的资源文件扩展名是 pdf 但无法被系统软件识别时,请尝试将下载文件扩展名改成 zip 然后尝试解压试试哦,一般就可以从压缩包解压出正确的您需要下载的真实文件哦
平台温馨提示:当前资源暂未得到用户星级评定,请依据资源描述,自行判定是否需要下载该资源哦
英语字母表计算机,计算机汇编课程设计CCCC.pdf_给定一个英文ascii码文件,统计文件中英文字母的频率,以十进制形式输出。,wwwwwxxxxx...相关推荐
- c语言编写英语词典软件,C语言课程设计一种简单的英文词典排版系统的实现.doc...
C语言课程设计一种简单的英文词典排版系统的实现 目 录 课程设计评语2 目 录3 1.课程论文题目4 2.程序设计思路4 3.功能模块图5 4.数据结构设计5 5.算法设计6 6.程序代码13 7.程 ...
- 付费计算机毕业论文毕业设计课程设计
付费资料 驱动器 F 中的卷是 资料 卷的序列号是 6B36-8880 F:/论文/计算机毕业设计 的目录 [.] [..] -商贸有限公司销售管理系统(论文+源代码+答辩PPT).rar 1.ppt ...
- 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),《计算机组成原理》课程设计报告材料...
<计算机组成原理>课程设计报告材料 (28页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实用文档电子信息学院实验报告书课程 ...
- 计算机组成原理电子时钟设计与实现,《计算机组成原理》课程设计报告-基于VHDL数字电子钟设计与实现.doc...
<计算机组成原理>课程设计报告-基于VHDL数字电子钟设计与实现 长沙理工大学 <计算机组成原理>课程设计报告 XXX 学 院 计算机与通信工程 专 业 网络工程 班 级 网络 ...
- 计算机课程教改论文,高职计算机教改的课程设计研究论文
高职计算机教改的课程设计研究论文 如今越来越多的学生涌入到高职院校学习,其中计算机属于最受学生欢迎的专业.计算机专业需要学生掌握计算机软硬件基础知识.操作技能等.然而由于传统计算机课程教学方法难以促使 ...
- 《计算机组成原理》课程设计---微程序设计
<计算机组成原理>课程设计---微程序设计 一.目的和要求 二.实验环境 三.具体内容 1.分析TEC-2机的功能部件组成,分析TEC-2机支持的指令格式等. (一)AM2901芯片的内部 ...
- java技术计算机机房管理系统文档,计算机机房管理系统课程设计报告
计算机机房管理系统课程设计报告 课课 程程 设设 计计 题题 目目 计算机机房管理系统 学学 院院 专专 业业 信电分院计算机科学与技术 班班 级级 计算机 1101 姓姓 名名 指导教师指导教师 2 ...
- 华中科技大学计算机课程设计,华中科技大学计算机学院操作系统课程设计资料报告材料[1].doc...
<华中科技大学计算机学院操作系统课程设计资料报告材料[1].doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<华中科技大学计算机学院操作系统课程设计资料报 ...
- 计算机控制技术的课程设计,《计算机控制技术》课程设计(撰写模板).doc
中文题目黑体二号,居中 黑体初号,居中 <计算机控制技术> 课程设计 英文题目Arial二号,大写,居中 题目名 黑体小三,居中 学生姓名 学院名称 专业名称 指导教师 年 月 日 < ...
最新文章
- c语言初学 循环 的灵活使用小案例
- 几种常用的图像处理函数库
- mybatis 默认参数名#{0}、#{arg0}、#{param1},以及@Param
- vs dll lib 使用记录
- 领域应用 | 偷偷告诉你,那些二次元萌妹都有个叫知识图谱的爸爸
- php上传同一张图片,两种php实现图片上传的方法_PHP
- 电子学会Python(二至五级)
- PostgreSQL的时间/日期函数使用
- linux 如何查看远程代码分支,linux看git 创建分支、删除本地分支、查看远程分支、本地分支例子...
- 登录和注销、基于Session的购物车案例、验证码的使用、防止表单重复提交
- python学习===复制list
- c语言 复制到编辑页面 乱码,富文本编辑器的复制word到浏览器发生乱码(vue+wangEditor)...
- 106短信发送失败的原因
- 激光三角测量物体高度
- 2006高端IT技术图书点评(首发《中华读书报》)
- python随机种子怎么用_python设置随机种子实例讲解
- python课程设计,学了python后你可以做的案例(词云,折线图,饼图…)
- kitex 中 consistent hashing 的实现
- 大数据云计算学习路线
- 固晶机及其系统(LED封装、芯片半导体封装,摄像头精密贴装)
热门文章
- 如何快速做出分泌蛋白过程操作动画(有趣的的开发过程)
- java动态代理中的invoke方法是如何被自动调用的
- java计算机毕业设计药房药品采购集中管理系统源码+数据库+系统+lw文档+部署
- 还不懂K8S各核心架构组件?来白嫖啊~
- 中国紫菜产业发展现状及趋势分析,紫菜养殖产量持续增长「图」
- SHA256加密之显示明文密码的处理方法
- 射影几何----二次曲线的三角形调和定理【原创】
- 77种互联网盈利创新模式(1)
- 简单易行的matplotlib中英文混排(设置中文为宋体,英文为times new roman)
- 【自然语言处理】Transformer 讲解