版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——汇编课程设计磁盘文件加密解密
《汇编语言程序设计》课程设计
题目:磁盘文件加密、解密
专业:
学号:
姓名:
2023-2023学年其次学期
一.设计目的
汇编语言课程设计是对所学课程内容全面、系统的总结、稳定和提高的一项课程实践活动。根据汇编语言的特点,选择相应的题目,在老师的指导下,由学生独立完成。课程设计要求同学们熟悉汇编语言的编程,BIOS中断调用、系统功能调用、磁盘数据的查询、存取等相关知识。通过课程设计,一方面提高运用汇编语言编程解决实际问题的能力,另一方面使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。
二.设计内容
从键盘输入不少于三个字符作为密钥,自己再设计一个加密算法。把磁盘文本文件(该磁盘文件名称要求键盘输入)加密后存盘,然后输入同样的密钥,把加密后的文件(该磁盘文件名称要求键盘输入)进行解密,把解密后的文件内容显示于屏幕上。
三.程序设计原理
1.设计一个主菜单,判别1、2、3及其他字符串所对应的操作,其中1对应建立新文件,2对应开启磁盘文件并对其进行加密进而将加密后的文件存入磁盘,3对应开启磁盘文件并对其进行解密进而将解密密后的文件存入磁盘,其他字符则退出循环。
2.INPUTFILE,创立文件的子程序。文件名由键盘输入,内容可以在程序中直接输入,也可在对应路径的文件里面直接输入。
3.JIAMI1,加密文件的子程序。文件名由键盘输入,可以开启创立的文件,也可以开启磁盘里原有的文件。开启文件并将其放入缓冲区之后,调用PASSWORD子程序,对文件进行加密。最终将加密后的文件存入磁盘。
4.JIEMI1,解密文件的子程序。文件名由键盘输入,可以开启创立的文件,也可以开启磁盘里原有的文件。开启文件并将其放入缓冲区之后,调用PASSWORD子程序,对文件进行解密。最终将解密后的文件存入磁盘。并调用XIANSHi,将解密后的文件显示在屏幕上。
5.PASSWORD,加密算法的子程序。根据输入的字符串,已大写字母Z对应的ASCII码作为分界限,大于Z的减去60H,小于Z的减去40H。将处理过后的每个字符对应的数据相加,存入内存单元,以备加密解密算法的调用。
6.XIANSHI,显示文件内容的子程序。先读取文件内容至缓冲区,再在缓冲区的结尾添上美元符,输出文件内容至屏幕上。
四.程序流程图
1、主要算法
开始主菜单:1:新建2:加密3:解密其他:退出输入字符N是“1“Y是“2“YN是“3“YN创立文件加密解密退出读取文件名,并输入文件内容,将输入的写入文件。读取文件名读取文件名开启文件,开启错误则重新开启,正确即开启成功开启文件,开启错误则重新开启,正确即开启成功读取文件内容读取文件内容将开启文件时存入缓冲区的数据一一加上PASSWORD子程序产生的参数。将开启文件时存入缓冲区的数据一一减去PASSWORD子程序产生的参数。写入文件写入文件调用XIANSHI子程序关闭文件终止2、加密算法:
五.源程序开始输入密码将密码存放在KEYSIKEY的偏移地址CX实际读取字节长度AL[SI]BL=0与Z比较小于等于大于AL=AL-40HAL=AL-60HBL=BL+ALSI=SI+1CX=CX-1终止
DATASSEGMENT
KEYDB11,?,11DUP(?)
INPUTKDB'INPUTTHEPASSWORD:',10,13,'$'NUMDB?
FNAMEDB50,?,51DUP(?)
INPUTFDB'INPUTTHEFILENAME:',10,13,'$'FCODEDW?
ERRORDB10,13,'ERROR!$'TABLEDB255,?,255DUP(?)
INPUTFIDB'WRITETHEFILE:',10,13,'$'COUNTDB?
CHOICEDB'********************************************',13,10DB'1:INPUTFILE2:JIAMI3:JIEMIOTHER:EXIT'DB
13,10,'********************************************',13,10,'$'PASSDB11,?,11DUP(?)TABLE1DB5000DUP(?)DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码STACKSENDS
CODESSEGMENT
ASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:
MOVAX,DATASMOVDS,AX;主程序G0:
MOVDX,OFFSETCHOICEMOVAH,9INT21H
MOVAH,1INT21H
CMPAL,31HJNZG1
CALLINPUTFILEJMPG0
G1:CMPAL,32HJNZG2
CALLJIAMI1JMPG0
G2:CMPAL,33HJNZG3
CALLJIEMI1JMPG0G3:JMPL1
;初始化,建立文件
INPUTFILEPROC
MOVDL,10MOVAH,2INT21HMOVDL,13MOVAH,2INT21H
MOVDX,OFFSETINPUTFMOVAH,9INT21H
MOVDX,OFFSETFNAMEMOVAH,0AHINT21H
LEASI,FNAMEMOVBL,[SI+1]XORBH,BH
MOVBYTEPTR[SI+BX+2],0;形成AXCIZ串LEADX,FNAME+2;建立文件MOVAH,3CHXORCX,CXINT21H
JCERROR1MOVFCODE,AX
MOVDL,10MOVAH,2INT21HMOVDL,13
MOVAH,2INT21H;写入文件
MOVDX,OFFSETINPUTFIMOVAH,9INT21H
MOVDX,OFFSETTABLEMOVAH,0AHINT21H
MOVAH,40HLEADX,TABLE+2MOVBX,FCODEMOVCL,TABLE+1XORCH,CHINT21HJCERROR1
MOVDL,10MOVAH,2INT21HMOVDL,13MOVAH,2INT21HCALLCLSRET
INPUTFILEENDP
;JIAMI
JIAMI1PROCCALLCLS
CALLPASSWORDMOVDL,10MOVAH,2INT21HMOVDL,13MOVAH,2INT21H
I1:MOVDX,OFFSETINPUTFMOVAH,9INT21H
MOVDX,OFFSETFNAME
MOVAH,0AHINT21HMOVDL,10MOVAH,2INT21HMOVDL,13MOVAH,2INT21H
LEASI,FNAMEMOVBL,[SI+1]XORBH,BH
MOVBYTEPTR[SI+BX+2],0;形成AXCIZ串LEADX,FNAME+2;建立文件MOVAH,3DH;开启MOVAL,0INT21H
JCI1
MOVFCODE,AX
MOVAH,3FH;读文件LEADX,TABLE1MOVBX,FCODEMOVCX,5000
INT21HJCERROR1MOVCX,5000
MOVBX,CX
LEASI,TABLE1PUSHAXXORAX,AXMOVAL,NUM
JIAMI:ADDBYTEPTR[SI],ALINCSI
LOOPJIAMIPOPAX
LEADX,FNAME+2MOVAH,3CHXORCX,CXINT21HJCERROR1MOVFCODE,AX
XORAH,AHMOVCX,5000MOVBP,5000MOVAH,40HLEADX,TABLE1
MOVBX,FCODE
INT21HJCERROR1RET
JIAMI1ENDP
;JIEMI
JIEMI1PROCCALLCLS
CALLPASSWORDMOVDL,10MOVAH,2INT21HMOVDL,13MOVAH,2INT21H
I2:MOVDX,OFFSETINPUTFMOVAH,9INT21H
MOVDX,OFFSETFNAMEMOVAH,0AHINT21HMOVDL,10MOVAH,2INT21HMOVDL,13MOVAH,2INT21H
LEASI,FNAMEMOVBL,[SI+1]XORBH,BH
MOVBYTEPTR[SI+BX+2],0;形成AXCIZ串LEADX,FNAME+2MOVAH,3DH;开启
MOVAL,0INT21HJCI2
MOVFCODE,AX
MOVAH,3FH;读文件LEADX,TABLE1MOVBX,FCODEMOVCX,10000
INT21HJCERROR1MOVCX,5000
MOVBX,CXMOVBP,BXLEASI,TABLE1PUSHAXXORAX,AXMOVAL,NUM
JIEMI:SUBBYTEPTR[SI],ALINCSI
LOOPJIEMI
LEADX,FNAME+2MOVAH,3CHXORCX,CXINT21HJCERROR1MOVFCODE,AXXORAH,AHMOVCX,5000MOVBP,5000MOVAH,40HLEADX,TABLE1
MOVBX,FCODE
INT21HJCERROR1POPAX
CALLXIANSHI
JCERROR1RET
JIEMI1ENDP
PASSWORDPROCPUSHSIPUSHDI
MOVDL,10MOVAH,2INT21HMOVDL,13MOVAH,2INT21H
MOVDX,OFFSETINPUTKMOVAH,9INT21H
MOVDX,OFFSETKEYMOVAH,0AHINT21H
MOVCL,KEY+1XORCH,CHXORBX,BXLEASI,KEY
NUM1:MOVAL,[SI+2]CMPAL,'Z'JAC1
SUBAL,40HJMPC0
C1:SUBAL,60H
C0:INCSIADDBL,ALLOOPNUM1MOVNUM,BL
POPDIPOPSIRET
PASSWORDENDP
;显示文件内容XIANSHIPROCPUSHDX
PUSHBX
MOVBX,5000
MOVBYTEPTR[BX+TABLE1],'$'LEADX,TABLE1MOVAH,09HINT21H
MOVDL,10MOVAH,2INT21HMOVDL,13MOVAH,2INT21H
POPBXPOPDXRET
XIANSHIENDP
CLSPROC;清屏MOVAH,6MOVAL,0MOVBH,7MOVCH,0MOVCL,0MOVDH,24MOVDL,79INT10HMOVDX,0MOVAH,2MOVBH,0INT10HRET
CLSENDP
JMPL1
ERROR1:MOVDX,OFFSETERRORMOVAH,9INT21H
L1:MOVAH,4CHINT21HCODESENDSENDSTART
六.调试过程
1.创立文件并对其进行加密解密1)创立文件
2)加密
3)解密
2.对磁盘内部已有的文件进行加密解密1)加密
2)解密
(由于太长,只显示一部分)
七.遇到的问题及解决方法
1.遇到的问题:对文件的各种操作很陌生。解决方法:熟读课本,课本内容很详细,只要对其进行稍微的拓展,与前面所学的东西加以结合,即可动手操作,在编程中逐渐熟悉文件的各种操作。
2.遇到的问题:在写入文件的时候对于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 知“食”就是力量-拒绝零食 健康成长 教案2025-2026学年高一下学期人行为习惯养成教育主题班会
- 吉林省桦甸市七年级生物下册 4.1 流动的组织血液教案+学案1(无答案)(新版)新人教版
- 某电子厂采购细则
- 小学语文人教部编版(五四制)四年级下册23“诺曼底”号遇难记教案
- 人教版生物八年级下册7.1.2《昆虫的生长和发育》教学设计
- 2025年乡村小学英语教育的新篇章开启
- 某家具厂质量制度
- 英语案例分析题
- 八年级历史粤教版冲刺阶段第三单元同步测试卷基础版A卷
- 食品加工企业质量风控与合规经营方案
- 中国融通资源开发集团有限公司物资接收、仓储人员专项招聘87人考试参考题库及答案详解
- 资产评估师(珠宝)理论强化训练题(含解析)
- 教育法律法规试题带答案
- 2026年煤矿重大事故隐患判定标准题库(含答案)
- 江西文演集团招聘笔试题库2026
- 地下空间窒息现场应急处置方案
- 日语阅读试题及答案
- 2026 第六届“四川工匠杯”职业技能大赛 餐厅服务赛项 理论考试参考题库 含答案
- 医院检验科设备更新计划方案
- 2025中国兵器工业第五九研究所招聘参考题库带答案解析
- 医患沟通中的风险防范策略实践
评论
0/150
提交评论