版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——匯編課程設(shè)計磁盤文件加密解密
《匯編語言程序設(shè)計》課程設(shè)計
題目:磁盤文件加密、解密
專業(yè):
學(xué)號:
姓名:
2023-2023學(xué)年其次學(xué)期
一.設(shè)計目的
匯編語言課程設(shè)計是對所學(xué)課程內(nèi)容全面、系統(tǒng)的總結(jié)、穩(wěn)定和提高的一項課程實踐活動。根據(jù)匯編語言的特點,選擇相應(yīng)的題目,在老師的指導(dǎo)下,由學(xué)生獨立完成。課程設(shè)計要求同學(xué)們熟悉匯編語言的編程,BIOS中斷調(diào)用、系統(tǒng)功能調(diào)用、磁盤數(shù)據(jù)的查詢、存取等相關(guān)知識。通過課程設(shè)計,一方面提高運用匯編語言編程解決實際問題的能力,另一方面使同學(xué)們更深入的了解計算機(jī)系統(tǒng)內(nèi)部的有關(guān)知識,為以后的學(xué)習(xí)和系統(tǒng)開發(fā)奠定良好的基礎(chǔ)。
二.設(shè)計內(nèi)容
從鍵盤輸入不少于三個字符作為密鑰,自己再設(shè)計一個加密算法。把磁盤文本文件(該磁盤文件名稱要求鍵盤輸入)加密后存盤,然后輸入同樣的密鑰,把加密后的文件(該磁盤文件名稱要求鍵盤輸入)進(jìn)行解密,把解密后的文件內(nèi)容顯示于屏幕上。
三.程序設(shè)計原理
1.設(shè)計一個主菜單,判別1、2、3及其他字符串所對應(yīng)的操作,其中1對應(yīng)建立新文件,2對應(yīng)開啟磁盤文件并對其進(jìn)行加密進(jìn)而將加密后的文件存入磁盤,3對應(yīng)開啟磁盤文件并對其進(jìn)行解密進(jìn)而將解密密后的文件存入磁盤,其他字符則退出循環(huán)。
2.INPUTFILE,創(chuàng)立文件的子程序。文件名由鍵盤輸入,內(nèi)容可以在程序中直接輸入,也可在對應(yīng)路徑的文件里面直接輸入。
3.JIAMI1,加密文件的子程序。文件名由鍵盤輸入,可以開啟創(chuàng)立的文件,也可以開啟磁盤里原有的文件。開啟文件并將其放入緩沖區(qū)之后,調(diào)用PASSWORD子程序,對文件進(jìn)行加密。最終將加密后的文件存入磁盤。
4.JIEMI1,解密文件的子程序。文件名由鍵盤輸入,可以開啟創(chuàng)立的文件,也可以開啟磁盤里原有的文件。開啟文件并將其放入緩沖區(qū)之后,調(diào)用PASSWORD子程序,對文件進(jìn)行解密。最終將解密后的文件存入磁盤。并調(diào)用XIANSHi,將解密后的文件顯示在屏幕上。
5.PASSWORD,加密算法的子程序。根據(jù)輸入的字符串,已大寫字母Z對應(yīng)的ASCII碼作為分界限,大于Z的減去60H,小于Z的減去40H。將處理過后的每個字符對應(yīng)的數(shù)據(jù)相加,存入內(nèi)存單元,以備加密解密算法的調(diào)用。
6.XIANSHI,顯示文件內(nèi)容的子程序。先讀取文件內(nèi)容至緩沖區(qū),再在緩沖區(qū)的結(jié)尾添上美元符,輸出文件內(nèi)容至屏幕上。
四.程序流程圖
1、主要算法
開始主菜單:1:新建2:加密3:解密其他:退出輸入字符N是“1“Y是“2“YN是“3“YN創(chuàng)立文件加密解密退出讀取文件名,并輸入文件內(nèi)容,將輸入的寫入文件。讀取文件名讀取文件名開啟文件,開啟錯誤則重新開啟,正確即開啟成功開啟文件,開啟錯誤則重新開啟,正確即開啟成功讀取文件內(nèi)容讀取文件內(nèi)容將開啟文件時存入緩沖區(qū)的數(shù)據(jù)一一加上PASSWORD子程序產(chǎn)生的參數(shù)。將開啟文件時存入緩沖區(qū)的數(shù)據(jù)一一減去PASSWORD子程序產(chǎn)生的參數(shù)。寫入文件寫入文件調(diào)用XIANSHI子程序關(guān)閉文件終止2、加密算法:
五.源程序開始輸入密碼將密碼存放在KEYSIKEY的偏移地址CX實際讀取字節(jié)長度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
;顯示文件內(nèi)容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
六.調(diào)試過程
1.創(chuàng)立文件并對其進(jìn)行加密解密1)創(chuàng)立文件
2)加密
3)解密
2.對磁盤內(nèi)部已有的文件進(jìn)行加密解密1)加密
2)解密
(由于太長,只顯示一部分)
七.遇到的問題及解決方法
1.遇到的問題:對文件的各種操作很陌生。解決方法:熟讀課本,課本內(nèi)容很詳細(xì),只要對其進(jìn)行稍微的拓展,與前面所學(xué)的東西加以結(jié)合,即可動手操作,在編程中逐漸熟悉文件的各種操作。
2.遇到的問題:在寫入文件的時候?qū)τ?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024美發(fā)店與消防部門安全檢查合同
- 2025年度校園食堂廚師勞務(wù)派遣合同4篇
- 2025年度圖書代售及推廣服務(wù)合同4篇
- 2024碎石原料交易市場建設(shè)合同
- 2024裝修工程額外項目合同書一
- 2025年度智慧城市建設(shè)綜合解決方案承包合作協(xié)議4篇
- 2025年度SEO風(fēng)險管理與合規(guī)性審核合同3篇
- 2025年度山林土地流轉(zhuǎn)與綜合開發(fā)承包合同4篇
- 2024正規(guī)商鋪買賣合同合同標(biāo)的物權(quán)屬核實協(xié)議3篇
- 2024年教學(xué)專用高清晰度數(shù)碼集成背投行業(yè)發(fā)展趨勢報告
- GB/T 9755-2001合成樹脂乳液外墻涂料
- GB/T 10609.3-1989技術(shù)制圖復(fù)制圖的折疊方法
- GB 4053.2-2009固定式鋼梯及平臺安全要求第2部分:鋼斜梯
- 通力電梯培訓(xùn)教材:《LCE控制系統(tǒng)課程》
- 佛山市內(nèi)戶口遷移申請表
- 品管圈PDCA持續(xù)質(zhì)量改進(jìn)提高靜脈血栓栓塞癥規(guī)范預(yù)防率
- 一次函數(shù)單元測試卷(含答案)
- 陜西省榆林市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 天車設(shè)備維護(hù)檢修標(biāo)準(zhǔn)設(shè)備維護(hù)檢修規(guī)程
- 中國智能物聯(lián)網(wǎng)(AIoT)研究報告
- 江蘇新海石化有限公司廢氣治理項目環(huán)境影響報告書
評論
0/150
提交評論