




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)說明書目錄1.課題背景11.1課程設(shè)計(jì)題目11.2課程設(shè)計(jì)要求11.3課程設(shè)計(jì)內(nèi)容12運(yùn)行環(huán)境23總體設(shè)計(jì)23.1各個(gè)模塊功能設(shè)計(jì)33.2 各個(gè)模塊之間的聯(lián)系64.詳細(xì)設(shè)計(jì)64.1系統(tǒng)流程圖84.2子功能程序代碼84.3調(diào)試4.4運(yùn)行結(jié)果115.總結(jié)146.參考文獻(xiàn)157.附錄(程序清單)161 課題背景1.1課程設(shè)計(jì)題目:字符加密程序設(shè)計(jì)1.2課程設(shè)計(jì)要求:本課程設(shè)計(jì)要求如下:采用匯編語言對(duì)字符串進(jìn)行簡(jiǎn)單的加密和解密,以獲得匯編語言程序設(shè)計(jì)的基本知識(shí)概念。我們?cè)O(shè)計(jì)的程序需要滿足以下一些功能:(1)運(yùn)行程序后屏幕提示1加密,2解密; (2)功能選擇后,屏幕提示輸入一字符串; (3)根據(jù)
2、功能選擇對(duì)輸入的字符串進(jìn)行加密/解密處理,加密方法自選; (4)輸出處理后的字符串,并再次屏幕提示功能選擇; (5)可連續(xù)輸入字符串進(jìn)行加密/解密處理,直至單擊“Q”或“q”鍵退出程序。1.3課程設(shè)計(jì)內(nèi)容 對(duì)字符串進(jìn)行簡(jiǎn)單的加密和解密處理。主要通過兩種方法來實(shí)現(xiàn)題目主功能:方法一:調(diào)用DOS的1號(hào)功能逐個(gè)輸入明碼字符,此時(shí)由于1號(hào)的功能對(duì)輸入的字符顯示,故輸入的明碼會(huì)顯示。再即時(shí)對(duì)輸入的字符明碼保存并調(diào)用加密子程序?qū)γ鞔a字符進(jìn)行加密并輸出顯示在屏幕上,直到把明碼輸入完,此時(shí)加密結(jié)果也輸出結(jié)束,最后把保存的明碼輸出,即輸出一個(gè)完整的明碼字符串。方法二:調(diào)用DOS的OAH號(hào)功能輸入一串完整的字符串
3、,即要求加密的字符串,輸入后進(jìn)行保存,然后保存在另一個(gè)內(nèi)存區(qū)中,再調(diào)用加密子程序?qū)ψ址懈鱾€(gè)元素加密,調(diào)用DOS的9號(hào)功能把之前加密好的并保存的密碼字符串完整輸出,顯示在屏幕上,最后用解密函數(shù)對(duì)密碼解密并輸出明碼。在本設(shè)計(jì)中,我選擇了方法二,這樣需要加密的字符串可以一次性全部輸入,而且操作起來更簡(jiǎn)單。另外為了防止使用者的一些誤操作,自己還設(shè)計(jì)了一些起警示作用的子程序,使程序更加實(shí)用。2.運(yùn)行環(huán)境1.硬件環(huán)境: CPU:2.0GH以上 內(nèi)存:2GB以上2.軟件環(huán)境: 操作系統(tǒng):Microsoft Windows 7 ,MASM,LINK匯編編譯鏈接軟件。3.總體設(shè)計(jì)3.1各個(gè)模塊功能
4、設(shè)計(jì)3.1.1主模塊功能說明:主程序開始執(zhí)行后,先顯示程序標(biāo)題,此處程序標(biāo)題由天藍(lán)色字體顯示,然后顯示功能選擇提示符。當(dāng)鍵盤輸入選擇后,程序開始進(jìn)行判斷屬于哪一類,判定完畢后則執(zhí)行相應(yīng)跳轉(zhuǎn)加密或者解密。當(dāng)輸入不是所要求的按鍵時(shí),程序輸出紅色錯(cuò)誤警告,提醒用戶重新進(jìn)行選擇。3.1.2程序標(biāo)題模塊功能說明:程序標(biāo)題子程序中設(shè)置光標(biāo)位置采用2號(hào)功能調(diào)用定位到0行0列,寫字符部分包括字符的文本顯示方式,此處為彩色文本,方式3。3.1.3警示信息功能模塊功能說明:當(dāng)輸入選擇功能信息有誤時(shí),調(diào)用警示子程序。首先設(shè)置光標(biāo)位置采用2號(hào)功能調(diào)用定位到0行0列,寫字符部分包括字符的文本顯示方式,此處為彩色文本,方
5、式4。流程圖如圖3-3所示。3.1.4加密/解密程序功能模塊功能說明:用戶輸入的字符串存在WORD中,我們?cè)僬{(diào)用SHURU子程序存入CHEN中,對(duì)CHEN中每個(gè)元素進(jìn)行加密或者解密后存入CHEN中。當(dāng)加密時(shí),對(duì)CHEN中明碼相應(yīng)加10得密碼;當(dāng)解密時(shí),將CHEN中的密碼相應(yīng)的減10即可的解密,得原碼。3.1.5轉(zhuǎn)存程序模塊功能說明:將用戶輸入的字符串從WORD緩沖區(qū)逐個(gè)循環(huán)賦值轉(zhuǎn)到CHEN緩存區(qū),從而使得原碼和密碼能同時(shí)對(duì)應(yīng)顯示出來。3.1.6清屏程序模塊 功能說明:清屏程序調(diào)用6號(hào)功能AL=0表示整個(gè)屏幕為空白,即清屏幕。3.2各個(gè)模塊之間的聯(lián)系根據(jù)課程設(shè)計(jì)題目的要求畫出系統(tǒng)流程圖,然后根據(jù)
6、流程圖可知需要哪些子功能,再分別編寫數(shù)據(jù)代碼段以及各個(gè)模塊然后通過程序的組合和調(diào)用來完成設(shè)計(jì)要求。4.詳細(xì)設(shè)計(jì)4.1 系統(tǒng)流程圖4.1.1主程序圖 圖2程序標(biāo)題設(shè)計(jì)流程圖 圖3 警示信息設(shè)計(jì)流程圖 圖4 加密/解密程序流程圖 圖5 轉(zhuǎn)存程序流程圖圖6 清屏程序流程圖4.2子功能程序的代碼4.2.1主菜單的功能選擇菜單的代碼如下:START: MOV AX,DATAMOV DS,AXCALL TittleONE: LEA DX,BUFF MOV AH, 09INT 21H ;功能選擇MOV AH,1INT 21H ;單字符輸入 CMP AL,31HJE AA1 CMP AL,32HJE AA2C
7、MP AL,51H JE DONE CMP AL,71HJE DONE ;比較跳轉(zhuǎn) CALL CLEARCALL WARNING ;警報(bào)LOOP ONEAA1: CALL JIAMI ;選擇加密AA2: CALL JIEMI ;選擇解密SCREEN: LEA DX,CHENMOV AH, 9INT 21H ;輸出顯示LEA DX,BLANKMOV AH, 9INT 21H ;回車換行LOOP ONEDONE: MOV AX,4C00HINT 21H4.2.2標(biāo)題信息子程序本子程序采用BIOS9號(hào)功能調(diào)用,顯示天藍(lán)色的標(biāo)題信息。AH=9為入口類型號(hào),BH為頁號(hào),AL為要寫的字符,BL為字符屬性值
8、,CX為重復(fù)次數(shù),代碼如下:Tittle PROC NEARPUSH SIPUSH AXPUSH BXPUSH CXPUSH DX MOV SI,0BIAOTI:MOV AH,2 ;設(shè)置光標(biāo)位置MOV BH,0 ;頁號(hào)MOV DH,0 ;行號(hào)MOV CX,SI MOV DL,CL ;DL,列號(hào)INT 10H MOV AH,9 ;寫當(dāng)前光標(biāo)MOV BH,0 ;頁號(hào)MOV AL,ZHIWEISI ;要寫的字符MOV BL,3 ;屬性值(顏色)MOV CX,1 ;重復(fù)次數(shù)INT 10HINC SICMP SI,60JB BIAOTILEA DX,BLANKMOV AH, 9INT 21H ;回車換行
9、POP DXPOP CXPOP BXPOP AXPOP SIRETTittle ENDP4.2.3 加密/解密子程序加密子程序采用ASCII碼值加4的方法,而解密則是采用ASCII碼值減4的方法,循環(huán)賦值,代碼如下:JIAMI(JIEMI) PROC NEAR CALL CLEAR ;清屏LEA DX,BYTE MOV AH, 9INT 21H ;提示輸出LEA DX,WORD MOV AH,0AHINT 21H ;鍵盤輸入LEA DX,BLANKMOV AH,9INT 21H ;回車換行CALL ZHUANCUN ;轉(zhuǎn)存MOV CL,WORD1 ; 鍵盤輸入個(gè)數(shù)MOV SI,0AA3:ADD
10、 CHENSI,4 ;加密方法INC SILOOP AA3MOV CHENSI+1,0AHMOV CHENSI+2,0DHMOV CHENSI+3,'$' ;結(jié)束符JMP SCREENRETJIAMI(JIEMI) ENDP4.2.4轉(zhuǎn)存子程序 轉(zhuǎn)存子程序是通過指針的移動(dòng)將WORD中的字符串逐字讀取并存入CHEN中,其代碼如下:ZHUANCUN PROC NEAR PUSH BXMOV SI,0 MOV CL,WORDSI+1 ;輸入個(gè)數(shù)MOV CH,0AA5: MOV BL,WORDSI+2MOV CHENSI,BLINC SILOOP AA5 ;轉(zhuǎn)存POP BX RETZH
11、UANCUN ENDP4.2.5清屏子程序調(diào)用BIOS6號(hào)功能,AL為上滾行數(shù),BH為顯示屬性,CX為上滾部分左上角行列號(hào),DX為上滾部分右下角行列號(hào),代碼如下: MOV AH,6 ;6號(hào)功能調(diào)用-屏幕上滾 MOV AL,0 ;上滾的行數(shù) MOV BH,7 ;黑底 MOV CH,0 ;上滾部分左上角在0行0列 MOV CL,0 MOV DH,24 ;上滾部分右下角在24行79列 MOV DL,79 INT 10h4.3 調(diào)試將編寫好的程序輸入到MF平臺(tái)上,進(jìn)行以下操作:匯編源程序連接目標(biāo)碼運(yùn)行程序。4.4運(yùn)行結(jié)果(1)將編寫好的程序輸入到MF平臺(tái)上,進(jìn)行以下操作:匯編源程序連接目標(biāo)碼運(yùn)行程序。
12、彈出對(duì)話框,如圖7所示。圖7程序開始運(yùn)行后界面其中字符串“Character encryption/translation program”顯示為天藍(lán)色,這樣顯示醒目標(biāo)題信息,這是因?yàn)樵诔绦虻拈_始處有這樣的輸出提示符的程序,并調(diào)用了BIOS的2號(hào)功能(顯示光標(biāo)位置)、9號(hào)功能(在當(dāng)前光標(biāo)位置寫字符及其屬性)使其顯示為黃色,在以后的循環(huán)執(zhí)行中也會(huì)有這樣的提示。(2)當(dāng)操作者按下Q/q時(shí),對(duì)話框自動(dòng)關(guān)閉:當(dāng)按下1或2時(shí),則會(huì)顯示以下內(nèi)容,如圖8所示。圖8 選擇加密或解密后界面 若選擇其他按鍵,則會(huì)出錯(cuò)報(bào)警,并要求重新選擇,對(duì)話框顯示如圖9所示。圖9 錯(cuò)誤警告信息(3)當(dāng)操作者選擇按鍵1,即加密時(shí),
13、接著先輸入要加密的字符,輸完后按回車鍵,即會(huì)出現(xiàn)圖10所示信息,上一行為原碼,下一行為密碼。加密后回到功能選擇提示符,用戶可重新選擇加密,解密或退出。圖10加密顯示界面(4)當(dāng)操作者選擇按鍵2,即解密時(shí),接著先輸入密碼字符,輸完后按回車鍵,即會(huì)出現(xiàn)圖11所示信息,上一行為需要解密的密碼,下一行為原碼。解密后回到功能選擇提示符,用戶可重新選擇加密,解密或退出。圖11 解密顯示界面5總結(jié)經(jīng)過一個(gè)星期的時(shí)間,我們完成了匯編語言課程設(shè)計(jì),個(gè)人覺得還是相當(dāng)有收獲的。平時(shí)上課只是接觸課本上已經(jīng)寫好的程序,只是知道它大概有什么功能,卻始終沒有去真正驗(yàn)證這些功能,去感受匯編語言真正的用途。這次的課程設(shè)計(jì)不僅要
14、我們能讀懂一些程序,還要求我們能自己根據(jù)要求設(shè)計(jì)程序。我們小組的題目是“字符加密匯編語言程序設(shè)計(jì)”,剛開始拿到題目是覺得并不是特別難,但當(dāng)真正入手編程時(shí),卻發(fā)現(xiàn)有許多問題要考慮,比如:操作者輸入的字符是未知的,字符的數(shù)量也是未知的;當(dāng)操作人輸入原碼或密碼時(shí),兩者要對(duì)應(yīng)同時(shí)顯示出來;當(dāng)程序運(yùn)行后,屏上顯示的信息要有條理,要讓操作人能看懂,知道下一步該干什么等等問題。不過辦法總比問題多,有些問題我們通過小組討論就解決了,但一些技術(shù)性的問題,我們又通過看書,上網(wǎng)查資料的方式慢慢琢磨,不斷地修改程序,不斷地運(yùn)行,在不斷地改錯(cuò)中進(jìn)步,最終得到還算比較完整的程序,可以滿足要求。通過這次課設(shè),自己還是有很大
15、收獲的。不僅加深了對(duì)之前微機(jī)課堂學(xué)習(xí)到的匯編知識(shí),同時(shí)也讓自己接觸到了一些新鮮的匯編功能,比如對(duì)DOS調(diào)用和BIOS調(diào)用的一些編程,這些功能可以讓我們?cè)跐M足主程序邏輯功能的同時(shí),讓程序更加的豐滿、生動(dòng)。在這次編程中我就利用DOS調(diào)用和BIOS調(diào)用功能讓程序標(biāo)題信息以及警示信息以不同的顏色顯示在程序運(yùn)行的對(duì)話框中。還利用網(wǎng)上資料實(shí)現(xiàn)了清屏和換行的功能,使得程序運(yùn)行重復(fù)運(yùn)行或輸入有誤時(shí),窗口中不至于太凌亂。這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正的掌握所學(xué)的知識(shí),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考
16、的能力 6.參考文獻(xiàn)1劉其明. 匯編語言程序設(shè)計(jì)教程M. 江蘇:中國礦業(yè)大學(xué)出版社, 2010.102沈美明. IBM-PC匯編語言程序設(shè)計(jì)實(shí)驗(yàn)教程M. 北京:清華大學(xué)出版社,2010.63 方立友.微機(jī)原理與匯編語言實(shí)用教程,北京:清華大學(xué)出版社,2007 4 溫冬蟬、沈美明IBM PC匯編語言程序設(shè)計(jì)北京:清華大學(xué)出版社,2007.5 5 錢曉捷.新版匯編語言程序設(shè)計(jì).北京:電子工業(yè)出版社,20075 彭虎等編著微機(jī)原理與接口技術(shù)(第二版)北京:電子工業(yè)出版社,2008 6沈美明,溫東禪IBM-PC匯編語句程序設(shè)計(jì)(第2版)北京:清華大學(xué)出版社,2001 7任向明,盧惠林匯編語言程序設(shè)計(jì)實(shí)
17、用教程北京:清華大學(xué)出版社,2009 8馬力妮80x86匯編語言程序設(shè)計(jì)北京:機(jī)械工業(yè)出版社,2004 9曹加恒,蘇光奎,許先斌新一代匯編語言程序設(shè)計(jì)北京:高等教育出版社,2003 10 姜蓉 微機(jī)原理匯編語言及接口技術(shù)西安:西安交通大學(xué)出版社,2006附錄(程序清單)DATA SEGMENTZHIWEI DB ' Character encryption/translation program',0DH,0AH,'$'BUFF DB '1:encrypt 2:translate Q/q:exit ?',0DH,0AH,'$'BY
18、TE DB 0DH,0AH,'please press the sentence ',0DH,0AH,'$'BLANK DB 0DH,0AH,'$'WORD DB 100,?,40 DUP(?)CHEN DB 50 DUP(0)AGAIN DB 'sorry,please choose again!',0DH,0AH,'$'DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCALL TITTLEONE: LEA DX,BUF
19、F MOV AH, 09INT 21H ;功能選擇MOV AH,1INT 21H ;單字符輸入 CMP AL,31HJE AA1 CMP AL,32HJE AA2CMP AL,51H JE DONE CMP AL,71HJE DONE ;比較跳轉(zhuǎn) CALL CLEARCALL WARNING ;警報(bào)LOOP ONEAA1: CALL JIAMI ;選擇加密AA2: CALL JIEMI ;選擇解密SCREEN: LEA DX,CHENMOV AH, 9INT 21H ;輸出顯示LEA DX,BLANKMOV AH, 9INT 21H ;回車換行LOOP ONEDONE: MOV AX,4C00
20、HINT 21H;*TITTLE PROC NEARPUSH SIPUSH AXPUSH BXPUSH CXPUSH DX MOV SI,0BIAOTI:MOV AH,2 ;設(shè)置光標(biāo)位置MOV BH,0 ;頁號(hào)MOV DH,0 ;行號(hào)MOV CX,SI MOV DL,CL ;DL,列號(hào)INT 10H MOV AH,9 ;寫當(dāng)前光標(biāo)MOV BH,0 ;頁號(hào)MOV AL,ZHIWEISI ;要寫的字符MOV BL,3 ;屬性值(顏色)MOV CX,1 ;重復(fù)次數(shù)INT 10HINC SICMP SI,60JB BIAOTILEA DX,BLANKMOV AH, 9INT 21H ;回車換行POP
21、DXPOP CXPOP BXPOP AXPOP SIRETTITTLE ENDP;*;*WARNING PROC NEARPUSH SIPUSH AXPUSH BXPUSH CXPUSH DX MOV SI,0PP:MOV AH,2 ;設(shè)置光標(biāo)位置MOV BH,0 ;頁號(hào)MOV DH,0 ;行號(hào)MOV CX,SI MOV DL,CL ;DL,列號(hào)INT 10H MOV AH,9 ;寫當(dāng)前光標(biāo)MOV BH,0 ;頁號(hào)MOV AL,AGAINSI ;要寫的字符MOV BL,4 ;屬性值MOV CX,1 ;重復(fù)次數(shù)INT 10HINC SICMP SI,26JB PPLEA DX,BLANKMOV
22、AH, 9INT 21H ;回車換行POP DXPOP CXPOP BXPOP AXPOP SIRETWARNING ENDP;*;加密算法JIAMI PROC NEAR CALL CLEAR ;清屏LEA DX,BYTE MOV AH, 9INT 21H ;提示輸出LEA DX,WORD MOV AH,0AHINT 21H ;鍵盤輸入 LEA DX,BLANKMOV AH,9INT 21H ;回車換行CALL ZHUANCUN ;轉(zhuǎn)存MOV CL,WORD1 ;鍵盤輸入個(gè)數(shù)MOV SI,0AA3:ADD CHENSI,4 ;加密方法INC SILOOP AA3MOV CHENSI+1,0AHMOV CHENSI+2,0DHMOV CHENSI+3,'$' ;結(jié)束符JMP SCREENRETJIAMI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝店裝修發(fā)包合同
- 2025年度養(yǎng)豬場(chǎng)生物安全防控體系建設(shè)合同
- 2025年度勞動(dòng)合同到期解除協(xié)議書及離職員工離職證明及離職手續(xù)辦理指南
- 2025年度建筑勞務(wù)施工節(jié)能減排合作協(xié)議
- 2025年度分紅股收益分配與權(quán)益變更協(xié)議
- 2025年度數(shù)據(jù)保密審計(jì)與保密合同
- 2025年度公司免責(zé)的旅游服務(wù)合作協(xié)議
- 2025年度創(chuàng)業(yè)公司股權(quán)激勵(lì)及轉(zhuǎn)讓協(xié)議
- 2025年網(wǎng)絡(luò)游戲行業(yè)發(fā)展現(xiàn)狀分析:網(wǎng)絡(luò)游戲國內(nèi)用戶規(guī)模不斷擴(kuò)大
- 崗位晉升申請(qǐng)書
- 2024年成人高等教育學(xué)士學(xué)位英語水平考試大綱
- 職業(yè)技術(shù)學(xué)院《酒店財(cái)務(wù)管理》課程標(biāo)準(zhǔn)
- 【蘇教版信息科技】三年級(jí)下冊(cè)8.1《認(rèn)識(shí)自主可控》教案
- MIL-STD-202-211-2020美國美軍標(biāo)準(zhǔn)
- 《假性動(dòng)脈瘤》課件
- JBT 14682-2024 多關(guān)節(jié)機(jī)器人用伺服電動(dòng)機(jī)技術(shù)規(guī)范(正式版)
- 診所校驗(yàn)現(xiàn)場(chǎng)審核表
- DL-T 572-2021電力變壓器運(yùn)行規(guī)程-PDF解密
- 教科版四下科學(xué)《植物的生長變化》單元解讀(新教材解讀)
- 2024年高考生物考前信息必刷卷02(全國卷新教材)(含答案與解析)
- JB-T 14509-2023 反滲透海水淡化設(shè)備技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論