ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:392KB ,
资源ID:2281061      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2281061.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计简易的编码解码程序new.doc)为本站会员(dreamzhangning)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

微机原理课程设计简易的编码解码程序new.doc

1、武汉理工大学微机原理课程设计说明书- I -摘 要计算机程序设计语言是人机交流的重要工具,在众多的程序设计语言中,汇编语言是一种强有力的语言,它能透彻的反映,巧妙而充分地运用计算机硬件的功能及特点,便于编程人员根据自己的需要灵活地编制高级语言能实现的无法实现的各种程序,随心所欲的控制计算机的运行。汇编语言是计算机能提供的最快而又最有效的语言,也是能够利用计算机所有硬件特性的唯一语言。所以,掌握好汇编语言对于我们很重要,通过本次程序设计提高我们对汇编语言的运用能力。今天在计算机被广泛应用的信息时代,信息本身就是财富。大量的信息用数据的形式存放在计算机系统里。信息的传输则是通过公共信道。这些计算机

2、系统和信道是不设防的,很脆弱的,很容易受到攻击和破坏,因而我们需要一种措施来保护我们的数据,防止被一些用心不良的人盗取或破坏。因此,我们需要一种强有力的安全措施来保护我们的机密数据不被盗取或破坏。数据的加密和解密从宏观上讲是很简单,很容易理解的。加密和解密的一些方法也是很直接的,很容易掌握,可以很方便的对机密数据进行加密和解密。本程序的设计利用了汇编语言来实现数据的加密和解密。对数据进行加密会使数据的存储更安全。解密后的数据我们还可以重新利用。数据加密和解密功能的实现是利用对数据的 ASCII 码进行加减运算,使它改写为另一组数据,隐藏了原数据,使他人不能看到,从而保证了原数据的安全。程序运行

3、中每一项操作都有提示,根据提示可选择是否继续向下运行,若选择“N ”,数据将被重新输入。而且有良好的运行界面,设计人性化。程序运行结束后可选择退出,程序则会自动关闭窗口,不退出则会继续运行。在加密和解密的运行中用到了 INT 21H 指令。01H 号功能为等待等待从标准设备输入一个字符,将该字符的 ASCII 码送给 AL,并在标准输出设备上显示该字符。02H 号功能将DL 中的一个字符显示在标准输出设备上。09H 号功能为在标准输出设备上显示某个字符串。0AH 号功能为输入字符串。并且字符串以“$”为结尾。本程序易于操作且简单,用户可以很方便的对机密数据进行加密和解密。程序具有可选择性,用户

4、可以根据提示进行操作。运行界面简洁友好,用户可以清楚的看到数据被加密后和解密后的状态。关键词:子程序调用;汇编语言;数据的加密解密;INT 21H 命令;武汉理工大学微机原理课程设计说明书- II -目 录摘 要 .I简易数据加密解密程序 .- 1 -一、设计题目及设计目标 .- 1 -1.1 设计题目 .- 1 -1.2 设计目标 .- 1 -二、设计原理 .- 2 -2.1 程序中的关键技术 .- 2 -DOS 中断调用 - 2 -2.2 程序流程图 .- 2 -三、设计步骤 .- 8 -四、调试记录及结果分析 .- 9 -4.1 主界面运行结果 - 9 -4.2 显示加密后的数据 - 9

5、 -4.3 显示解密后的数据 - 10 -4.4 退出程序 - 11 -五、问题及解决方法 .- 12 -设计总结 .- 13 -参考文献 .- 14 -附录 .- 14 -武汉理工大学微机原理课程设计说明书- 1 -简易数据加密解密程序一、设计题目及设计目标1.1 设计题目设计数据的加密解密程序,能够对用户所输数据进行加密和解密。1.2 设计目标能够对用户所输的数据进行加密,并在加密之前能给用户选择是否要对所户是否要退出输入的数据进行加密,在加密数据完成后,会提示用户是否要对所加密的数据进行解密,是否要对刚加密的数据进行解密,最后提示用户是否要退出程序。拥有良好简洁的操作界面和简单明了的使用

6、方法,功能模块图如图 1.1 所示。图 1.1 功能模块图数据加密解密主菜单退出程序解密数据加密数据武汉理工大学微机原理课程设计说明书- 2 -二、设计原理2.1 程序中的关键技术DOS 中断调用INT 21H 指令(1)01H 号功能功能:等待从标准设备输入一个字符,将该字符的 ASCII 码送给 AL,并在标准输出设备上显示该字符。入口参数:无。出口参数:AL 的内容为输入字符的 ASCII 码。(2)09H 号功能:功能:在标准输出设备上显示某个字符串。入口参数:DX 的内容为要显示的字符串的首地址。出口参数:无2.2 程序流程图主程序流程图(图 2.1) 、菜单选择流程图(图 2.2)

7、 、显示字符串流程图(图 2.3) 、输入字符串流程图图 (2.4 ) 、加密程序流程图(图 2.5) 、加密过程程序流程图(图 2.6) 、解密程序流程图(图 2.7) 、解密过程程序流程图(图 2.8) 、解密过程程序流程图(图 2.9)设置数据段地址取 HEADMSG 首地址送入 DX开始调用子程序 DISPCHS调用子程序 AROUND结束武汉理工大学微机原理课程设计说明书- 3 -图 2.1 主程序流程图图 2.2 菜单选择流程图图 2.3 显示字符串流程图取 HEADMSG1 首地址送入 DX调用子程序 DISPCHS输入 1/2/31? 2? 3?调用子程序jiami调用子程序j

8、iemi调用子程序 exitAROUND 开始AROUND 结束9 号功能调用显示字符串返回主程序DISPCHS 开始DSPCHS 结束武汉理工大学微机原理课程设计说明书- 4 -取 HEADMSG2 首地址送入 DX调用DISPCHSJIAMI 开始调用 INFORMATIONLEA SI,JIALEA DI,INPUTJIAMI 结束调用 JIAMIGC图 2.4 输入字符串流程图图 2.5 加密程序流程图1 号功能调用输入字符串INPUTSI24HINFORMATION 开始INPUTSIALINC SI结束AL=0DH?武汉理工大学微机原理课程设计说明书- 5 -图 2.6 加密过程程

9、序流程图JIAMIGC 结束取 HEADMSG31 首地址送入 DXALDIALAL-09HJIAMIGC 开始SIALINC SIINC DIAL=39H? AL=5AH? AL=7AH?ALAL-19H ALAL-19HAL=$?AXDIAXAX+01HSIAX调用DISPCHSLEA DX,JIA调用DISPCHS调用 AROUND武汉理工大学微机原理课程设计说明书- 6 -取 HEADMSG2 首地址送入 DX调用DISPCHSJIEMI 开始调用 INFORMATIONLEA SI,JIELEA DI,INPUTJIEMI 结束调用 JIEMIGC图 2.7 解密程序流程图ALDIA

10、LAL+09HJIEMIGC 开始SIALINC SIINC DIAL=39H? AL=5AH? AL=7AH?ALAL+19H ALAL+19HAL=$?AXDIAXAX-01HSIAX取 HEADMSG32 首地址送入 DX调用DISPCHS2武汉理工大学微机原理课程设计说明书- 7 -图 2.8 解密过程程序流程图图 2.9 解密过程程序流程图2JIEMIGC 结束调用DISPCHS调用 AROUND取 HEADMSG4 首地址送入 DX调用子程序 DISPCHS输入字符Y/y? N/n?MOV AH,4CHINT 21H调用 AROUNDEXIT 开始EXIT 结束武汉理工大学微机原理

11、课程设计说明书- 8 -三、设计步骤设计的题目为数据的加密解密程序设计,主要能实现对数据的加密解密功能。第一步:对要实现的功能进行大体分析,画出程序的总流程图。第二步:将这些功能的实现分别用子程序编写来实现。第三步:规划程序的主程序,界面以及如何调用子程序。第四步;编写代码,上机调试和运行程序。最后完善程序,考虑到在程序实现过程中,在有限的时间里,把用户界面即菜单的选择用简单的子程序调及分支语句来实现,达到优化的目的。武汉理工大学微机原理课程设计说明书- 9 -四、调试记录及结果分析4.1 主界面运行结果主界面运行结果包括合适的界面大小,操作提示信息。其运行结果如图 4.1 用户界面所示: 图

12、 4.1 用户界面4.2 显示加密后的数据根据程序信息的提示,选择输入 1,输入加密数据,然后输入数据,加密后的数据会显示在屏幕上。其运行结果如图 4.2 加密后的数据所示。武汉理工大学微机原理课程设计说明书- 10 -图 4.2 加密后的数据4.3 显示解密后的数据根据程序信息的提示,,选择输入 2,解密数据,然后输入数据,解密后的数据显示在屏幕上。其运行结果如图 4.3 解密后的数据所示。 武汉理工大学微机原理课程设计说明书- 11 -图 4.3 加密后的数据4.4 退出程序根据程序信息的提示,选择输入 3,退出程序,程序会提示用户,是否要退出程序,选Y,则退出了该程序,选择输入n,将返回

13、菜单 ,如图 4.4。图 4.4 退出程序武汉理工大学微机原理课程设计说明书- 12 -五、问题及解决方法 1、在编写代码时,遇到了很多问题,其中字符串的输入和显示都没怎么接触过,所以更要去查资料 ,我在经过翻阅资料和读相关的例子后,终于找到要用的功能。2、写完代码,进入到程序的调试阶段,在这里遇到很多的问题。(1)在定义显示的标题时候,因为是字符串,而在其后没用$结束,出现错误。解决方案:解决这一问题,因为是运用 9 号功能调用,其结尾的那一个字符必须是$,只需在其结尾加上$就可以。(2)在用到接收的单个字符时,直接用寄存器来存储,当要调用时,就没发现已不存在了,调试时就出现了错误。解决方案

14、:为了解决这个问题,我们可以开辟一个内存空间,把输入的单个字符存入里面,连回车字符也存入,当要调用时,就把这空间的首个单元取出便可。(3)在运用比较 CMP 的跳转时,当超过 128 个字节时,编译时就会出错。解决方案:解决这个问题可以在跳转语句和被跳转的语句之间加个中间量,这样就可以在编译时没问题了。另外还遇到一些常见的书写错误。武汉理工大学微机原理课程设计说明书- 13 -设计总结短暂而又充实的汇编语言课程设计结束了,在这一周中我学到了更多的知识,我很好的将理论与实践结合起来,努力的完成了相应的课程设计任务。在课程设计中,设计程序、调试程序来让我们消化所学习的理论知识,并在调试中理会理论和

15、实践中的差别,我感觉这一周的课程设计令我受益匪浅,上课所学习到的很多摸棱两可的知识都在不断的摸索中清晰起来。另外当遇到不懂的问题时会即时的查找资料,在解决问题的同时不仅提升了自己,而且还在短暂的时间里学到了更多的知识。经过这次汇编语言课程设计,使我对汇编语言有了更进一步的了解,查找资料时看到一些案例使用汇编语言不仅可以动画显示,还能做一些系统管理功能等等,这些精彩的案例,改变了我以前对汇编语言枯燥、过时的认识,增加了学习汇编语言的兴趣。相对与高级语言来说,汇编语言可以充分的利用计算机的硬件特性,用以编制对时间和空间要求很高的程序,在需要直接控制硬件的场合,汇编语言是无可替代的。我 们 原 来

16、对 于 微 机 原 理 课 程 的 学 习 , 由 于 课 时 有 限 , 汇 编 中 很 多 内 容 都 没 有 学 习 , 像DOS 只 是 简 单 的 提 了 一 下 , 而 与 BIOS 有 关 的 知 识 还 没 有 涉 及 。 我 运 用 平 时 所 学 的 一 些 基础 知 识 解 决 了 课 程 设 计 的 问 题 , 深 感 欣 慰 、 高 兴 。 通 过 本 次 的 课 程 设 计 , 我 又 对 微 机 原理 中 的 知 识 有 了 一 定 的 加 深 。 并 知 道 了 在 当 今 的 信 息 技 术 如 此 发 达 的 世 界 中 , 我 们 必 须运 用 多 种 渠

17、 道 , 去 学 习 研 究 。 并 要 很 好 的 运 用 计 算 机 和 一 些 软 件 , 只 有 这 样 , 我 们 才 能更 好 地 、 精 确 地 、 快 速 地 解 决 问 题 。武汉理工大学微机原理课程设计说明书- 14 -参考文献1丁辉、陈书谦.汇编语言程序设计.北京:电子工业出版社,20062齐志儒、高福祥.汇编语言程序设计.沈阳:东北大学出版社,2002 3李珍香.汇编语言课程设计案例精编.北京:中国水利水电出版社,20044沈美明.IBM-PC 汇编语言程序设计.北京:清华大学出版社 ,20005贺亚茹.汇编语言程序设计.北京:科学出版社,20056卜艳萍、周伟.汇编语

18、言程序设计教程.北京:清华大学出版社,20047温玉杰.Intel 汇编语言程序设计(第四版).北京:电子工业出版社,2004附录DATA SEGMENT ;定义数据段 HEADMSG DB ,0DH,0AH DB +-+,0DH,0AHDB | WELCOME TO RUN OUR PROGRAM! |,0DH,0AHDB | THIS POOR PROGRAMMER IS MADE BY MYSELF! |,0DH,0AHDB | 1 DO YOU WANT TO ENCRYPTE THE DATA? |,0DH,0AHDB | 2 DO YOU WANT TO TRANSLATE THE

19、 DATA? |,0DH,0AHDB | 3 DO YOU WANT TO QUIT THIS PROGRAM? |,0DH,0AHDB +-+,0DH,0AH,$HEADMSG1 DB 0DH,0AH,PLEASE MAKE A CHOISE:,$ HEADMSG2 DB 0DH,0AH,PLEASE INPUT THE DATA:,$HEADMSG31 DB 0DH,0AH,AFTER ENCRYPTING:,$ HEADMSG32 DB 0DH,0AH,AFTER TRANSLATING:,$HEADMSG4 DB 0DH,0AH,DO YOU WANT TO EXIT THIS PRO

20、GRAM?(Y/N):,$INPUT DB 100 DUP (0) JIA DB 100 DUP (0) JIE DB 100 DUP (0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA DX,HEADMSG ;输出头信息组的偏移地址 CALL DISPCHSXOR DX,DX武汉理工大学微机原理课程设计说明书- 15 -CALL AROUNDAROUND PROC NEAR ;菜单选择程序LEA DX,HEADMSG1 ;提示 PLEASE MAKE A CHOISE CALL D

21、ISPCHSXOR SI,SIMOV AH,01H ;输入比较INT 21HCMP AL,31HJE J1CMP AL,32HJE J2CMP AL,33HJE EXJMP AROUNDJ1:CALL JIAMIJ2:CALL JIEMIEX:CALL EXITRET AROUND ENDPDISPCHS PROC NEAR ;显示字符串子程序 MOV AH,09H INT 21H RET DISPCHS ENDPINFORMATION PROC NEAR ;字符串输入程序FOR: ;循环输入单个字符MOV AH,01HINT 21HCMP AL,0DHJE FINISHEDMOV INPUT

22、SI,ALINC SI JMP FOR FINISHED: MOV INPUTSI,24HRET INFORMATION ENDPJIAMI PROC NEAR ;加密选择程序XOR DX,DXLEA DX,HEADMSG2 ;输出 PLEASE INPUT THE DATACALL DISPCHSCALL INFORMATIONXOR DI,DIXOR SI,SILEA SI,JIALEA DI,INPUTCALL JIAMIGC武汉理工大学微机原理课程设计说明书- 16 -RET JIAMI ENDPJIAMIGC PROC NEAR ;加密过程程序 GC1:XOR AX,AXMOV AL

23、,DICMP AL,39HJZ T1CMP AL,5AHJZ T2CMP AL,7AHJZ T3CMP AL,$JZ ORDER1XOR AX,AXMOV AX,DIADD AX,01HMOV SI,AXINC DIINC SIJMP GC1T1:SUB AL,09HCBWMOV SI,AXINC DIINC SIJMP GC1T2:SUB AL,19HCBWMOV SI,AXINC DIINC SIJMP GC1T3:SUB AL,19HCBWMOV SI,AXINC DIINC SIJMP GC1ORDER1:XOR DX,DXLEA DX,HEADMSG31 ;输出 AFTER ENCR

24、YPTING CALL DISPCHSXOR DX,DXLEA DX,JIA ;输出加密后字符串武汉理工大学微机原理课程设计说明书- 17 -CALL DISPCHSCALL AROUND RET JIAMIGC ENDPJIEMI PROC NEAR ;解密菜单程序XOR DX,DXLEA DX,HEADMSG2 ;输出 PLEASE INPUT THE DATACALL DISPCHSCALL INFORMATIONXOR SI,SILEA SI,JIELEA DI,INPUTCALL JIEMIGCRETJIEMI ENDPJIEMIGCPROC NEAR ;解密过程程序GC2:MOV

25、AL,DICMP AL,30HJE T11CMP AL,41HJE T22CMP AL,61HJE T33CMP AL,$JE ORDER2XOR AX,AXMOV AX,DISUB AX,01HMOV SI,AXINC DIINC SIJMP GC2T11: ADD AL,09HCBWMOV SI,AXINC SIINC DIJMP GC2T22:ADD AL,19HCBWMOV SI,AXINC SIINC DIJMP JIEMIGCT33:武汉理工大学微机原理课程设计说明书- 18 -ADD AL,19HCBWMOV SI,AXINC DIINC SIJMP GC2ORDER2: XOR

26、 DX,DXLEA DX,HEADMSG32 ;输出 AFTER TRANSLATINGCALL DISPCHSXOR DX,DXLEA DX,JIE ;输出解密后字符串 CALL DISPCHS CALL AROUNDRET JIEMIGCENDPEXIT PROC NEAR ;退出程序AROUND1:XOR DX,DXLEA DX,HEADMSG4 ;输出 DO YOU WANT TO QUIT THIS PROGRAM CALL DISPCHSMOV AH,01HINT 21HCMP AL,59HJE OUTCXCMP AL,79HJE OUTCXCMP AL,4EHJE A1CMP A

27、L,6EHJE A1JMP AROUND1OUTCX:MOV AH,4CHINT 21HA1:CALL AROUNDRET EXIT ENDPCODE ENDSEND START武汉理工大学微机原理课程设计说明书- 19 -本科生课程设计成绩评定表姓 名 张弛 性 别 男专业、班级 电气 1002 班课程设计题目:简易数据加密解密程序课程设计答辩或质疑记录:问题 1:该程序加密的算法?答:对数据的 ASC2 码进行加 1,遇到 9 的时候 ASC2 码减 09H 变为 0 的 ASC2 码,遇到 Z 或者 z的时候 ASC2 码减 19H 变为 A 或者 a 的 ASC2 码。问题 2:汇编中

28、怎样一次输入多个字符?答:通常采用非数字的一些符号如:空格、逗号、回车等,连续检测(循环)所读到的字符如果是数字字符,则认为该书没有结束,否则数据已经输入完毕。问题 3:如何输入一个字符串,显示在屏幕上并保存到堆栈里?答:定义一个缓存区,用 ah=0Ah 号功能,int 21h 中断,然后再进栈。成绩评定依据:评 定 项 目 评分成绩1选题合理、目的明确(10 分)2设计方案正确、具有可行性、创新性(20 分)3设计结果(例如:系统设计程序、仿真程序) (20 分)4态度认真、学习刻苦、遵守纪律(15 分)5设计报告的规范化、参考文献充分(不少于 5 篇) (10 分)6答辩(25 分)总 分最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报