班級通信錄管理系統(tǒng)的方案與實(shí)現(xiàn)匯編語言課程實(shí)習(xí)報告_第1頁
班級通信錄管理系統(tǒng)的方案與實(shí)現(xiàn)匯編語言課程實(shí)習(xí)報告_第2頁
班級通信錄管理系統(tǒng)的方案與實(shí)現(xiàn)匯編語言課程實(shí)習(xí)報告_第3頁
班級通信錄管理系統(tǒng)的方案與實(shí)現(xiàn)匯編語言課程實(shí)習(xí)報告_第4頁
班級通信錄管理系統(tǒng)的方案與實(shí)現(xiàn)匯編語言課程實(shí)習(xí)報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、。廣廉誨譯大學(xué)匯編語言課程實(shí)習(xí)報告實(shí)習(xí)題目班級通信錄管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名班級(學(xué)號)院系 信息學(xué)院計(jì)算機(jī)系 指導(dǎo)老師葉曉霞提交時間班級通信錄管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)1 .需求說明:建立一個班級通信錄,可以實(shí)現(xiàn)添加、刪除、修改、查詢一個同學(xué)的通信 記錄;顯示所有同學(xué)的通信記錄;能根據(jù)姓名或宿舍號進(jìn)行排序。通信錄包括學(xué) 號、姓資料個人收集整理,名、電話號碼、宿舍號等信息,所有信息最終用文件保存。勿做商業(yè)用途2 .設(shè)計(jì)說明:以參數(shù)形式建立個人的文件,如:你名字為cac廁調(diào)用tongxun.exe文件時,以 cac為參數(shù),你應(yīng)輸入c: tongxun cac,這樣就建立了一個cac的文件記錄你 收

2、藏的 通信資料。將段前綴的說明部分單獨(dú)作為一段,并將DS固定指向該段;其他數(shù)據(jù) 單元(提示信息等)另設(shè)一段,以ES固定指向該段,在引用該段變量時加上ES 段前綴即可。資料個人收集整理,勿做商業(yè)用途3 .詳細(xì)的算法描述:3.1 程序界面如上圖,0-8八個選項(xiàng)分別實(shí)現(xiàn)不同的功能。依次是增加、刪除、修改、查詢、顯示全部信息、生成、按名排列、按寢室排序、退出。 資料個人收集整理,勿做商業(yè)用途3/223.2 程序思想在這個實(shí)驗(yàn)中,主要的就是子程序的應(yīng)用這方面,其中修改,刪除的子程序都以查找核心算法為基礎(chǔ)。這方面的鋪墊工作做好后再做好每一塊的工作,最后檢查下,程序就能完好的運(yùn)行了。資料個人收集整理,勿做商

3、業(yè)用途4 .源程序與執(zhí)行結(jié)果: 41主要程序代碼: dataseg segment titlestr db 'Student NO. Name PhoneDormitory',0dh,0ah,'$資料個人收集整理,勿做商業(yè)用途titlelen equ $ - titlestr itemrow db titlelen dup (' '),0dh,0ah,$ handle dw ? showin db 0 memptr dw ?searchnumber searchstr searchphone searchdorm searchndb 20 dupC *)

4、db 30 dupC *)db 20 dup(' 1)db 20 dup('')db 0exactmatch db 0inputbuf db 34actlen inputstrdb ?db34 dupHinfomsgldb Info:Giveyourcommandbelow'QdhQah,$八料個人收集整理,勿做商業(yè)用途',0dhQah,'$八料個人收集整理,勿做商業(yè)用途#/22infomsg2 db 'Warning:Unrecognized command,type againinfomsg3 db Info:Input your n

5、ame below',0dh,0ah;$八料個人收集整理,勿做商業(yè)用途infomsg4'Info:Input your phone number below0dh,0ah,'$人料個人收集整理,勿做商業(yè)用途infomsg5 db 'Info:Input the number of item below:OdhQah:八料個人收集整理,勿做商業(yè)用途infomsg6 db Info:Input your student no. below',0dh,0ah,'$個人收集整理,勿做商業(yè)用途infomsg7 db Info:Input your dorm

6、itory number below ',0dh,0ah,'$個人收集整理,勿做商業(yè)用途msgempty db Empty List>',0dh,0ah,$msgOdb'=,,0dh,0ah資料個人收集整理,勿做商業(yè)用途db|',0dh,0ah資料個人收集整理,勿做商業(yè)用途db '|Welcome to use Address List 0.1 alpha|',0dh,0ah資料個人收集整理,勿做商業(yè)用途db|,0dh,0ah資料個人收集整理,勿做商業(yè)用途db'=10dh,0a人,'$資料個人收集整理,勿做商業(yè)用途m

7、sgmenu db 0dh,0ahdb'',0dh,0ah資料個人收集整理,勿做商業(yè)用途5/22整理,勿做商業(yè)用途理,勿做商業(yè)用途勿做商業(yè)用途db'db Please choose an operation:(0-8)0dh50ahdbdbdb集整理,勿做商業(yè)用途msgblank db '人收集整理,勿做商業(yè)用途'1-Add2- Delete3- ModifyOdh,Oah資料個人收集4 Query5- List7- Sort(name) 8- Sort(dorm)pathname db faddress.txtOmsg1用途db ' Canno

8、t find address.txt6- Create0dh50ah資料個人收集整0- Exit 0dh50ah資料個人收集整理,'QdhQah;,資料個人收資料個',0dhQah;$資料個人收集整理,勿做商業(yè)msg2 db 1 Program Will Create the File "address.txt" ',0dh,0ah,'$八料個人收集整理,勿做商業(yè)用途msg4db'Open File Successfully'Qdh,0ah,'$資料個人收集整理,勿做商業(yè)用途msg5db'Create File

9、 Fail',0dh,0ah;$八料個人收集整理,勿做商業(yè)用途msg6db'Program Terminate'QdhQah,由料個人收集整理,勿做商業(yè)用途msg7db'Create File Successfully'QdhQah,'$八料個人收集整理,勿做商業(yè)用途msg8db'Read file failed,exit0dh,0ah/$資料個人收集整理,勿做商業(yè)用途msg9db'Write file failed,exit0dh,0ah;$八料個人收集整理,勿做商業(yè)用途msgfinddb'The item you fo

10、und is:'QdhQah,'$八料個人收集整理,勿做商業(yè)用途msgferrdb'Cannot find the item',Odh,C>ah,'$資料個人收集整理,勿做商業(yè)用途msgferr2db1Check your input!'QdhQah,'$資料個人收集整理,勿13/22做商業(yè)用途msglen equ $ - msgferr2;file bufferrecordsize equ 20+30+20+20filebuf db 0itemlist db 10 dup(20 dup(0),30 dup(0),20 dup(0)

11、,20 dup(O)資料個人收集整理,勿做商業(yè)用途dataseg endscodeseg segmentassume cs:codeseg,ds:dataseg,es:dataseg,ss:datasegmain proc farpush dsxor ax,axpush axmov ax,datasegmov ds,axmov es,axlea dx,msg0call showmsgcall findfilecall getcommand retmain endp showmsg proc nearmov ah,9int 21hretshowmsg endpgetcommandproc nea

12、r gcinput:lea dx,msgmenu mov ah,9 int 21 hmov ah,7 ; get input int 21 hgetcom: cmp al,'11 jne gc2 call additem jmp gcinputgc2: cmp al,2 jne gc3 call delitem jmp gcinputgc3: cmp al,'3* jne gc4 call edititem jmp gcinputgc4:cmp al,'4' jne gc5 call queryitem jmp gcinput gc5:cmp al,'5

13、' jne gc6 call listitems jmp gcinput gc6:cmp al,'6' jne gc7 call createfile jmp gcinput gc7:cmp al,7' jne gc8 call sortname jmp gcinput gc8:cmp al,'8' jne gc9 call sortdorm jmp gcinput gc9:cmp al,'O' jne gc10 call closefile retgc10:jmp gcinputgcexit:ret getcommandendp

14、additem proc nearcall getnumbercall getnamecall getphone call getdorm lea di,filebuf ;content starts here inc di mov al,filebuf mov bl,recordsize mul bl add di,axaddstr:lea si,searchnumbermov ex,20eldrep movsb lea si,searchstr mov ex,30 eld rep movsb mov ex,20 leasi,searchphone cld rep movsblea si,s

15、earchdorm mov ex,20 eld rep movsb inc filebufret additem endpgetnumber proc near lea dx,infomsg6 mov ah,9 int 21 hgetno:mov ah,0ah lea dxjnputbuf int 21h emp actlen,0 jbe getno emp actlen,20 jbe getnonext mov actlen,20 getnonext:mov cl,actlen mov ch,0 lea si,inputstr lea di,searchnumber cld rep movs

16、bretgetnumber endpgetname proc nearlea dx,infomsg3mov ah,9int 21hgetn:mov ah,0ahlea dxjnputbufint 21 hcmp actlen,0 jbe getncmp actlen,20 jbe getnnext mov actlen,20getnnext:mov cl,actlenmov ch,0lea si,inputstr lea di,searchstr eldrep movsbretgetname endp getphone proc nearlea dx,infomsg4mov ah,9int 2

17、1hgetp:mov ah,0ahlea dxjnputbuf int 21 h cmp actlen,0 jbe getp cmp actlen,20 jbe getpnextmov actlen,20 getpnext:mov cl,actlen mov ch,0 lea si,inputstr lea di,searchphone cld rep movsbret getphone endp getdorm proc nearlea dx,infomsg7 mov ah,9 int 21 hgetd:mov ah,0ah lea dxjnputbuf int 21 h cmp actle

18、n,0 jbe getd cmp actlen,20jbe getdnext mov actlen,20getdnext:mov cl,actlenmov ch,0leasi,inputstrleadi,searchdormcldrepmovsbgetdorm endpsearch proc near mov exactmatch,0lea si,filebufmov al,siinc simov di,sisub di,recordsizepush disealoop:pop di ; cuz cmpsb chaned it, so restore add di,recordsize lea

19、si,searchnumber push di dec al mov ex,20 cld repe cmpsb jne seanextmov exactmatch, 1 sub di,20mov memptr,di jmp searet seanext:cmp al,0 jne sealoop searet:ret search endpdelitem proc nearcall getnumbercall searchcmp exactmatch,jne delretmov bl,filebufmov si,memptrdelloop:mov di,siadd si,recordsizecl

20、drep movsbdec bljnz delloopdec filebufdelret: ret delitem endp edititem proc nearcall getnumber call search cmp exactmatch, 1 jne editret call getname call getphone call getdorm mov di,memptr editstr:lea si,searchnumber mov ex,20 cld rep movsb lea si,searchstr mov ex,30 cld rep movsb mov cx,20 lea s

21、i,searchphone cld rep movsb lea si,searchdorm mov ex,20 cld rep movsb editret:ret edititem endp queryitem proc near call getnumber call search cmp exactmatch,1 jne queryret mov si,memptrlea di,itemrow mov ex, 16 rep movsb add si,4 mov ex,16 rep movsb add si,14 mov ex, 16 rep movsb add si,4 mov ex,16

22、 rep movsbmov ah,9 lea dx,itemrow int 21 hqueryret:ret queryitem endplistitems proc nearlea dx,titlestr call showmsglea si,filebuf emp filebuf,0 je listempty mov bl,filebuf inc si sub si,recordsize listloop:add si,recordsize lea di,itemrow mov ex, 16 rep movsb add si,4 mov ex, 16 rep movsb add si,14

23、 mov ex, 16 rep movsb add si,4 mov ex, 16 rep movsbmov ah,9 lea dx,itemrow int 21 hdec bl emp bl,0 jne listloop retlistempty:lea dx,msgempty mov ah,9 int 21h ret listitems endp createfile proc near mov ah,3ch mov cx,0 lea dx,pathname int 21h lea dx,msg7 call showmsg ret createfile endp sortname proc

24、 near ret sortname endpsortdorm proc nearretsortdorm endp readfile proc near17 /mov ah,3fhmov bx,handlemov cx,1+recordsize*10 lea dx,filebuf19/int 21hsub filebuf,30h retreadfile endpclosefile procmovnearah,42hmov al,0mov bx,handle mov cx,0mov dx,0int21hlea dx,filebufmov bx,handlemov ex,1+1 O*records

25、izemov ah,40hint21 hmov ah,3ehint 21h call exitpro ret closefile endpfin dfile proc n ear;fi nd file ,exist ope n not exist ,creat 資料個人收集整理,勿做商業(yè)用途mov ah,3dhmov al,2lea dx,pathnameint 21hjc fif Jump when file not existmov handle,axcall readfile lea dx,msg4call showmsgretfif:lea dx,msg1call showmsglea

26、 dx,msg2call showmsgmov ah,3chmov al,0mov cx,0lea dx,pathnameint 21hjc ffwrongmov handle,axlea dx,msg7;create filecall showmsgcall fillitem retffwrong:lea dx,msg5call showmsg leadx,msg6 call showmsgcall exitpro findfile endp;exit when ere at failedfillitem proc near;fill items when create file 資料個人收集整 rm .勿做商業(yè)用途add filebuf,30h ; convert to ascii charmov bx,handlemov ah,40h cx,recordsize*10+mov 1lea dx,filebuf int 21hjc fierrretfierr:;write file error資料個人收集整理,勿做商業(yè)用途lea dx,msg9 call showmsg call exitpro fillitem endpexitpro proc near mov al,1 mov ah

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論