




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、匯編綜合程序設(shè)計匯編語言程序設(shè)計綜合程序設(shè)計實驗報告 題 目: 文件管理系統(tǒng) 1、 項目簡介我們組主要針對文件進行操作。主要實現(xiàn)功能如下:首先,進入系統(tǒng)之后是對文件的普通操作即只能對文件進行讀操作,不能對文件進行修改。所有用戶都可以進行這些操作,用戶也可選擇通過登錄到超級用戶界面對文件進行更多的操作。包括文件的寫入和刪除等普通用戶無法進行的操作。2、 小組成員具體分工宋善德:界面制作,菜單制作,對文件的創(chuàng)建讀寫刪除,和統(tǒng)計文件內(nèi)單詞數(shù),及多次讀文件緩存區(qū)清空等有關(guān)代碼的編寫。呂曉宇:超級用戶登錄時驗證用戶名和密碼操作,及可通過輸入文件名的方式創(chuàng)建,讀寫文件等有關(guān)代碼的編寫。3、 需求分析與設(shè)計
2、文件管理系統(tǒng),需要實現(xiàn)對文件的管理,包括文件的創(chuàng)建、寫入、讀取、字符統(tǒng)計刪除等功能。在這個基礎(chǔ)上,為了防止誤操作,增加了用戶驗證功能。直接進入系統(tǒng)菜單選項只有讀文件的選項,需要文件的建立、刪除等操作時需要,就選擇超級用戶選項,輸入用戶名密碼,驗證完成之后才可以進行接下來操作。4、 代碼及分析1. 源代碼:datasegmentmenu1 db0dh,0ah, '*',0dh,0ahdb'* menu *',0dh,0ahdb'*-*',0dh,0ahdb'* 1.Read file *',0dh,0ah db'* 2.su
3、per user *',0dh,0ahdb'* 3.quit *',0dh,0ahdb'*-*',0dh,0ahdb'* Choice(1-3) *',0dh,0ahdb'*',0dh,0ah,'$'menu db 0dh,0ah, '*',0dh,0ahdb'*-menu-*',0dh,0ahdb'* 1.Create file *',0dh,0ahdb'* 2.Write to file *',0dh,0ahdb'* 3.Read
4、file *',0dh,0ahdb'* 4.word shu *',0dh,0ahdb'* 5.delete file *',0dh,0ahdb'* 6.quit *',0dh,0ahdb'*-Choice(1-6)-*',0dh,0ahdb'*',0dh,0ah,'$'PATH1 DB 'c:/a.txt',0 PATH2 DB 'c:/b.txt',0 buf DB 60 DUP('$') buf1 DB 60 DUP('$'
5、;) ASK1 DB 13,10,'INPUT FILE NAME:','$' STR1 DB 13,10,'shuru username :',13,10,'$' STR2 DB 13,10,'shuru mima :',13,10,'$' pathnamedb40,41 dup(?)handledw?buffer1db60,0,60 dup(?)buffer2db60,0,60 dup(?)huanhangdb' ',0dh,0ah,'$'chosedb0dh,0
6、ah,'Please enter the digital from 1-4!',0dh,0ah,'$' enterydb0dh,0ah,'Enter what you want to write to the file!(The length of the strings is under 60)',0dh,0ah,'$'str_ok1db0dh,0ah,'Create file successfully!',0dh,0ah,'$'str_ok2db0dh,0ah,'Write to fil
7、e successfully!',0dh,0ah,'$'str_ok3db0dh,0ah,'Read from file successfully!',0dh,0ah,'$' str_ok4db0dh,0ah,'Delete file successfully!',0dh,0ah,'$' str_ok5db0dh,0ah,'word number in file:',0dh,0ah,'$'str_error1db0dh,0ah,'Create file error!$
8、'str_error2db0dh,0ah,'Open file error!$'str_error3db0dh,0ah,'Write to file error!$'str_error4db0dh,0ah,'Read file error!$'str_error5db0dh,0ah,'Exit from file error!$'str_error6db0dh,0ah,'user name error!shuru again$'str_error7db0dh,0ah,'mi ma error!shu
9、ru again$'str_error8 db 13,10,'file can not be found$'inerr db 'input number not 16',13,10,'$'inerr1 db 'input number not 13',13,10,'$'B DB 0tab dw p01 ;定義地址表 dw p02 dw p03 dw p04 dw p05 dw p06 dataends;-;以下為代碼段;-codesegmentassumecs:code,ds:datastart:movax
10、,datamovds,axmovax,0600hmov ah,0 ;設(shè)置顯示方式 mov al,04h int 10h mov ah,0bh ;置彩色調(diào)板 mov bh,0 mov bl,1 int 10h mov ah,0bh ;置彩色調(diào)板 mov bh,1 mov bl,4 int 10h movah,9leadx,menu1int21h test1: ;普通用戶菜單調(diào)用 mov ah,1 int 21h cmp al,'1' jne p2p1: leadx,huanhang movah,9 int21h callread jmp test1p2: cmp al,'
11、2' jne p3 jmp loop2p3:cmp al,'3' jne ler jmp ex_itler: mov dx,offset inerr1 mov ah,9 int 21h jmp ex_it ex_it:MOV AH,4CH INT 21Hloop2 :MOV AH,09H LEA DX,STR1 INT 21H call id call cmpareidloop3 : call passwd call cmparepass loop1: ;超級用戶菜單調(diào)用 callme mov ah,1 int 21h cmp al,'1' jb ler
12、r cmp al,'6' ja lerr and ax,000fh dec ax add ax,ax mov bx,ax jmp tabbxlerr: mov dx,offset inerr mov ah,9 int 21h jmp exiterr1: lea dx,str_error6 mov ah,9 int 21h jmp loop2err2: lea dx,str_error7 mov ah,9 int 21h jmp loop3 p01: callcreath p02: call entry p03: lea dx,huanhang mov ah,9 int 21h
13、callread jmp loop1p04: call NUM jmp loop1p05: call delete jmp loop1 p06: jmp exitexit:MOV AH,4CH INT 21H ;用戶名驗證模塊;-id proc near lea si,buf mov cx,6shuru: ;用戶名輸入 MOV AH,01H INT 21H mov si,al inc si loop shuru MOV AH,3DH ;從文件中獲取用戶名 LEA DX,PATH1 MOV AL,2 INT 21H LEA DX,buf1 MOV BX,AX MOV CX,100 MOV AH,
14、3FH INT 21H ret id endpcmpareid proc near ;循環(huán)比較程序,逐位比較用戶名 lea si,buf LEA di,buf1 mov cx,5cmpare: mov ax,si cmp ax,di jne err1 inc si inc di loop cmpare retcmpareid endp; 密碼驗證模塊;-passwd proc near LEA DX,STR2 MOV AH,09H INT 21H lea si,buf mov cx,6mima: ;密碼輸入 MOV AH,01H INT 21H mov si,al inc si loop mi
15、ma MOV AH,3DH LEA DX,PATH2 ;從文件中獲取密碼 MOV AL,2 INT 21H LEA DX,buf1 MOV BX,AX MOV CX,60 MOV AH,3FH INT 21H retpasswd endp cmparepass proc near ;循環(huán)比較程序,逐位比較密碼 lea si,buf lea di,buf1 mov cx,5cmpass: mov ax,si cmp ax,di jne err2 inc si inc di loop cmpass retcmparepass endp ;調(diào)用功能選擇控制模塊;-;me-主界面模塊meproc ne
16、armovah,9leadx,menuint21hretmeendp;-;choice-功能選擇控制模塊;-;creath-創(chuàng)建文件模塊creathproc near call inputmovah,3ch;3CH 建立文件 AX=文件代號(成功)/錯誤碼(失?。﹍eadx,pathname+2;DS:DX=ASCIZ 串地址movcx,0;CX =文件屬性int21hjcerror1movhandle,axjmpexit0error1:movah,9;返回錯誤信息leadx,str_error1int21hjmpexit1exit0:movah,9;返回成功信息leadx,str_ok1in
17、t21hexit1:jmp loop1creathendp;-;entry-寫入文件模塊entryproc nearmovah,9leadx,enteryint21hleadx,buffer1movah,0ah;0AH 鍵盤輸入到緩沖區(qū) (DS:DX)=最大字符數(shù)(DS:DX+1)=實際輸入的字符數(shù)int21hsubch,ch;把輸入字符數(shù)存入CXmovcl,buffer1+1;adddx,2callwrith;轉(zhuǎn)入“實現(xiàn)寫入”retentryendp;-;writh-實現(xiàn)寫入writhproc near call inputmovah,3dh;3DH打開文件AX=文件代號(成功)/錯誤碼(失
18、?。﹍eadx,pathname+2;DS:DX=ASCIZ 串地址moval,1;AL=訪問和文件共享方式;0=讀1=寫2=讀/寫int21hjcerror2movhandle,axmovah,40h;40H寫文件或設(shè)備AX=實際寫入的字節(jié)數(shù)(成功)/錯誤碼(失?。﹍eadx,buffer1+2;DS:DX=ASCIZ 串地址movbx,handle;BX=文件代號;CX=寫入的字節(jié)數(shù)int21hjcerror3movah,3eh;3EH關(guān)閉文件movbx,handleint21hjcerror4jmpback1error2:movah,9;錯誤提示leadx,str_error2int21
19、hjmpexit2error3:movah,9leadx,str_error2int21hjmpexit2error4:movah,9leadx,str_error4int21hjmpexit2back1:movah,9leadx,str_ok2int21hexit2:jmp loop1writhendp;-;read-讀取文件模塊readproc near call input MOV AH,3DH leadx,pathname+2 MOV AL,0 INT 21H JNC RFILE ERRMSG: LEA DX,str_error2 MOV AH,9 INT 21H MOV AH,4CH
20、; INT 21H RFILE: MOV BX,AX LEA DX,buf MOV CX,60 MOV AH,3FH INT 21H JC ERRMSG CALL CRLF ;call bufcl LEA DX,buf MOV AH,9 INT 21H LEA DX,str_ok3 MOV AH,9 INT 21H call bufclret;返回功能選擇控制readendpbufcl proc nearpush cx push bx lea si,buf mov cx,60 mov bx,20h lop: mov si,bx inc si loop lop pop cx pop bx ret
21、bufcl endp CRLF PROC NEAR MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H RET CRLF ENDPNUM PROC NEAR ;字符統(tǒng)計子程序 call input MOV AH,3DH LEA DX,pathname+2 MOV AL,2 INT 21H LEA DX,buf MOV BX,AX MOV CX,60 MOV AH,3FH INT 21H MOV CX,AX LEA SI,buf MOV AL,0NEXT: MOV DL,SI CMP DL,20H ;比較,若不為空格繼續(xù)執(zhí)行,為空格則B
22、加1 JNE JISHU INC B JISHU: INC SI LOOP NEXT MOV AH,3EH INT 21H movah,9leadx,str_ok5int21h ADD B,31H MOV DL,B MOV AH,02H INT 21H RET NUM ENDPINPUT PROC NEAR ;輸入文件路徑傳遞調(diào)用程序 push dx LEA DX,ASK1 MOV AH,9 INT 21H LEA DX,pathname MOV AH,0AH INT 21H push cx MOV CL,pathname+1 MOV CH,0 MOV SI,CX MOV pathnameSI+2,0 pop cx pop dx RET INPUT ENDP delete proc nearlea dx,ASK1mov ah,9int 21hlea dx,bufmov ah,10int 21hmov al,buf+1 mov ah,0 lea bx,buf+2 add bx,ax mov bx,word ptr '$' ;刪除文件mov dx,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024江蘇省公務(wù)員考試【申論 A卷、C卷】+2023年【申論B卷】共 3套 真題及答案
- 2025年石頭湯考試試題及答案
- 5年級下冊英語書單詞
- 5年級上冊題目
- 登記注冊 標(biāo)準(zhǔn)化建設(shè)思路
- 地下施工工藝流程
- 不同材料短時記憶保持量的實驗報告 - 副本 - 副本
- 2025年陜西青年職業(yè)學(xué)院單招職業(yè)技能考試題庫審定版
- 2025年深圳信息職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫完整版
- 2025年關(guān)于紀(jì)念抗日戰(zhàn)爭勝利72周年的調(diào)查報告
- 2024委托委托協(xié)議書范本
- 公司上下級溝通與協(xié)作管理制度
- 移動政企部年終總結(jié)
- 免疫治療超進展
- 人教版化學(xué)九年級下冊全冊綜合考試試題(九年級下學(xué)期期中考試化學(xué)試卷)
- 中考英語高頻語法小專題考點講練系列十五+spend+take+pay+cost+花費系列
- 無人機操作教案
- 四年級語文下冊第六單元【集體備課】(教材解讀+教學(xué)設(shè)計)
- 2024版義務(wù)教育小學(xué)科學(xué)課程標(biāo)準(zhǔn)
- MBTI16種人格類型及其通常具有的特征和職業(yè)傾向
- 復(fù)數(shù)算符在圖像處理中的應(yīng)用
評論
0/150
提交評論