汇编课程设计 磁盘文件加密解密_第1页
汇编课程设计 磁盘文件加密解密_第2页
汇编课程设计 磁盘文件加密解密_第3页
汇编课程设计 磁盘文件加密解密_第4页
汇编课程设计 磁盘文件加密解密_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论