班級通信錄管理系統(tǒng)(匯編課程設計)_第1頁
已閱讀1頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  班級通信錄管理系統(tǒng)</b></p><p><b>  1 需求說明</b></p><p><b>  1.1實驗要求</b></p><p>  1.1.1建立通訊錄,添加一個同學的通信記錄,刪除一個同學的通信記錄,修改一個同學的通信記錄,查詢一個同學的通信記錄,顯示

2、所有同學的通信記錄,能根據姓名或宿舍號進行排序。</p><p>  1.1.2通信記錄包括學號、姓名、電話號碼、宿舍號等信息,所有信息最終用文件保存。</p><p><b>  1.2功能簡述</b></p><p>  1.2.1 建立通信錄</p><p>  運行程序后,程序自動建立固有的通訊錄。</p&

3、gt;<p>  1.2.2添加通信記錄</p><p>  進入“添加"界面,根據提示,依次添加同學的通信記錄條目。添加成功,后顯示操作成功信息。</p><p>  1.2.3刪除通信記錄</p><p>  進入“刪除"界面,依據姓名刪除信息。輸入姓名后,顯示該同學的所有信息,并顯示操作成功。刪除后,返回主菜單。</p&

4、gt;<p>  1.2.4查詢通信記錄</p><p>  進入“查詢"界面,詢問用戶按姓名或學號查找學生記錄。待用戶正確輸入已存有的用戶姓名或學號后,按回車鍵后顯示所有匹配該信息的學生記錄。若輸入信息錯誤或是無該用戶沒記錄,則顯示操作錯誤。</p><p>  1.2.5顯示所有通信記錄</p><p>  進入“顯示"界面,將

5、通訊錄中所有同學的通訊記錄分行顯示出來,每行中同學的不同信息間隔表示。</p><p>  1.2.6根據姓名進行排序</p><p>  排序時,顯示排序子菜單,按照姓名中字母的升序對記錄進行排序。</p><p>  1.2.7保存通訊記錄</p><p>  將填寫好的同學通訊記錄寫入到固定文件中。</p><p&g

6、t;  1.2.8退出班級通信錄管理系統(tǒng)</p><p>  選擇該功能選項后,退出班級通信錄管理系統(tǒng),關閉文件,返回DOS。</p><p><b>  2設計說明</b></p><p>  2.1 程序流程圖設計</p><p>  Select Insert Modify Delete Write

7、 Show Esc</p><p><b>  Back</b></p><p>  2.2各功能之間的關系</p><p>  2.2.1用戶輸入信息</p><p>  在選擇Insert選項后,進入adder子程序,需要用戶依次輸入姓名、學號、宿舍號、電話號碼,輸入信息分別存入manelist、studli

8、st、dormlist、telelist數組中。</p><p>  2.2.2搜索同學記錄</p><p>  建立selectbyname和selectbystud子程序,在select子程序中靈活調用,利用相關信息搜索與關鍵字匹配的同學記錄。同時,可以把搜索這個功能提取出來,實現代碼的共享。其中,搜索按關鍵字的類型不同可分為按姓名搜索和按學號搜索。</p><p&

9、gt;  2.2.3關鍵字的匹配</p><p>  selectbyname和selectbystud子程序中都需要進行關鍵字匹配和比較,故把比較關鍵字的大小提取出來在strCmp子程序中實現,方便進行搜索和排序。</p><p><b>  2.3文檔的處理</b></p><p>  在用戶進入班級通信錄管理系統(tǒng)時,若要將輸入的信息用文件

10、保存,用戶可選擇Write to file選項,將緩沖區(qū)和文檔中的所有記錄顯示出來。用戶退出后,關閉文件。</p><p><b>  3詳細的算法設計</b></p><p><b>  3.1主程序的設計</b></p><p>  start: </p><p>  mov

11、ax,data</p><p><b>  mov ds,ax</b></p><p><b>  mov es,ax</b></p><p>  call cshdata </p><p><b>  menu1: </b></p><p>  ca

12、ll clear</p><p>  call displaytitle </p><p>  mov ah,01h </p><p><b>  int 21h</b></p><p>  cmp al,'1' </p><p><b>  jz sel</b

13、></p><p>  cmp al,'2' </p><p><b>  jz adde</b></p><p>  cmp al,'3' </p><p><b>  jz modi</b></p><p>  cmp al,&#

14、39;4' </p><p><b>  jz del</b></p><p>  cmp al,'5' </p><p><b>  jz dis</b></p><p>  cmp al,'7'</p><p><b>

15、;  jz wrt</b></p><p>  cmp al,'8'</p><p><b>  jz out1</b></p><p>  jmp menu1 </p><p><b>  sel:</b></p><p>  call cle

16、ar</p><p>  call select </p><p><b>  jmp back </b></p><p><b>  adde:</b></p><p>  call clear </p><p>  call adder </p><

17、;p><b>  jmp back</b></p><p><b>  modi:</b></p><p>  call clear</p><p>  call modify </p><p><b>  jmp back</b></p><p&g

18、t;<b>  del:</b></p><p>  call clear</p><p>  call delete </p><p><b>  jmp back</b></p><p><b>  dis:</b></p><p>  call

19、clear </p><p>  call disdata</p><p><b>  jmp back</b></p><p><b>  wrt:</b></p><p>  call clear</p><p>  call write</p><p

20、><b>  back: </b></p><p>  lea dx,backstr ;返回主菜單提示語“Please enter 6 to bace main menu!”</p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  mo

21、v ah,01h</p><p><b>  int 21h</b></p><p>  ea si,choice</p><p>  mov [si],al</p><p>  cmp al,'6'</p><p>  jz menu1 ;輸入6,返回主菜單</p>

22、<p>  call clear</p><p><b>  jmp back</b></p><p><b>  out1:</b></p><p>  mov ah,4ch</p><p><b>  int 21h</b></p><p&

23、gt;  main endp ;主函數結束</p><p><b>  code ends</b></p><p><b>  end start</b></p><p>  3.2學生記錄的數據結構</p><p>  namelist db 20 dup(20 dup(0)) <

24、/p><p>  studlist db 20 dup(20 dup(0)) </p><p>  dormlist db 20 dup(20 dup(0))</p><p>  telelist db 20 dup(20 dup(0))</p><p>  newname db 20 dup(0)</p><p&g

25、t;  newstud db 20 dup(0)</p><p>  newdorm db 20 dup(0)</p><p>  newtele db 20 dup(0)</p><p>  cnt db 1 dup(0)</p><p>  cntselect db 1 dup(0)</p><p&g

26、t;  choice db 1 dup(0)</p><p>  enter db 0dh,0ah,'$' </p><p>  blank db ' $'</p><p>  disname db 'Name:$' </p><p>  disstud db '

27、Stud:$'</p><p>  disdorm db 'Dorm:$'</p><p>  distele db 'Tele:$'</p><p>  3.3學生通訊錄信息的顯示和輸入</p><p>  學生通訊錄信息的顯示和輸入的邏輯實現思想是一樣的。都是先找到第i條記錄的起始地址,即學號的

28、開始地址。然后根據j的值確定記錄內部的偏移地址。然后調用相應的功能實現學生通訊信息的顯示和輸入。下面以信息的顯示為例作詳細說明。 </p><p>  disdata proc near ;顯示所有信息</p><p>  l

29、ea si,cnt ;循環(huán)次數</p><p>  mov cl,[si] </p><p><b>  mov bx,0</b></p><p><b>  disdatal:</b></p><p>  lea dx,disname </p><p>  mov a

30、h,09h</p><p><b>  int 21h</b></p><p>  lea dx,namelist </p><p><b>  add dx,bx</b></p><p>  mov ah,09h</p><p><b>  int 21h<

31、;/b></p><p>  lea dx,blank </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,disstud </p><p>  mov ah,09h</p><p>&

32、lt;b>  int 21h</b></p><p>  lea dx,studlist </p><p><b>  add dx,bx</b></p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p&g

33、t;  lea dx,blank </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,disdorm </p><p>  mov ah,09h</p><p><b>  int 21h</b>

34、;</p><p>  lea dx,dormlist </p><p><b>  add dx,bx</b></p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,blank </p&g

35、t;<p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,distele </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  le

36、a dx,telelist </p><p><b>  add dx,bx</b></p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,enter </p><p>  mov ah,09h&

37、lt;/p><p><b>  int 21h</b></p><p><b>  add bx,20</b></p><p>  loop disdatal</p><p><b>  ret</b></p><p>  disdata endp</

38、p><p>  3.4學生信息的搜索</p><p>  根據用戶選擇的關鍵字的類型,按照3.3所述的方法找到第i條記錄的相應關鍵字的起始地址。遍歷所有的學生通訊錄記錄,調用repe cmpsb語句對記錄中的關鍵字和用戶輸入的信息相比較。</p><p>  3.5修改一個同學的通信記錄</p><p>  通過關鍵字搜索與之匹配的同學記錄,若

39、查找不到,則修改失敗。否則提示用戶輸入新的通訊信息,覆蓋原來的信息。</p><p>  3.6按照姓名進行排序</p><p>  Sort函數采用冒泡排序作為算法進行排序,內外循環(huán)次數均為同學通訊錄記錄的條數,由于字符串的交換比較復雜,則將此子過程抽象出來,記為movR函數。使用loop循環(huán)依次交換兩個記錄的字符。</p><p>  3.7刪除操作的實現<

40、;/p><p>  刪除數據信息,查詢條件為姓名。刪除查詢結果的具體做法是:先搜索到與關鍵字匹配的記錄,然后用最后一個記錄將其覆蓋,達到刪除的效果。.</p><p>  3.8與文件相關的操作</p><p>  3.8.1創(chuàng)建文件 </p><p>  filename db 'F:\StudentList.txt',00h&

41、lt;/p><p>  handle dw ?</p><p>  buffer db 20 dup(0)</p><p>  error1 db 'creating file wrong!',0dh,0ah.'$'</p><p>  error2 db 'writing file wrong!

42、9;,0dh,0ah.'$'</p><p>  wrtstr db 'write the class address book!$'</p><p>  mov ah,3ch</p><p><b>  mov cx,0</b></p><p>  lea dx,filename<

43、/p><p><b>  int 21h</b></p><p><b>  jc err1</b></p><p>  mov handle,ax</p><p><b>  3.8.2寫文件</b></p><p>  lea si,cnt <

44、/p><p>  mov cl,[si]</p><p>  mov al,cl </p><p><b>  mov di,0</b></p><p><b>  lop1:</b></p><p>  mov ah,40h</p><p>  mov

45、 bx,handle</p><p><b>  mov cx,20</b></p><p>  lea dx,namelist</p><p><b>  add dx,di</b></p><p><b>  int 21h</b></p><p>

46、<b>  jc err2</b></p><p>  mov ah,40h</p><p>  mov bx,handle</p><p><b>  mov cx,20</b></p><p>  lea dx,dormlist</p><p><b>  ad

47、d dx,di</b></p><p><b>  int 21h</b></p><p><b>  jc err2</b></p><p>  mov ah,40h</p><p>  mov bx,handle</p><p><b>  mov

48、cx,1</b></p><p>  lea dx,distele</p><p><b>  int 21h</b></p><p><b>  jc err2</b></p><p>  mov ah,40h</p><p>  mov bx,handle&l

49、t;/p><p><b>  mov cx,20</b></p><p>  lea dx,telelist</p><p><b>  add dx,di</b></p><p><b>  int 21h</b></p><p><b>  j

50、c err2</b></p><p><b>  add di,20</b></p><p><b>  inc al</b></p><p>  mov cl,[si]</p><p><b>  sub cl,al</b></p><p>

51、;<b>  jmp lop1</b></p><p><b>  exit2:</b></p><p>  mov ah,3eh</p><p>  mov bx,handle</p><p><b>  int 21h</b></p><p><

52、;b>  exit1:</b></p><p>  mov ah,4ch</p><p><b>  int 21h</b></p><p><b>  err1:</b></p><p><b>  mov ah,9</b></p><p

53、>  lea dx,error1</p><p><b>  int 21h</b></p><p><b>  jmp exit1</b></p><p><b>  err2:</b></p><p><b>  mov ah,9</b><

54、/p><p>  lea dx,error2</p><p><b>  int 21h</b></p><p><b>  jmp exit2</b></p><p><b>  ret </b></p><p>  write endp </p&g

55、t;<p><b>  3.8.3關閉文件</b></p><p><b>  exit2:</b></p><p>  mov ah,3eh</p><p>  mov bx,handle</p><p><b>  int 21h</b></p>

56、<p><b>  exit1:</b></p><p>  mov ah,4ch</p><p><b>  int 21h</b></p><p><b>  err1:</b></p><p><b>  mov ah,9</b><

57、/p><p>  lea dx,error1</p><p><b>  int 21h</b></p><p><b>  jmp exit1</b></p><p><b>  err2:</b></p><p><b>  mov ah,9&

58、lt;/b></p><p>  lea dx,error2</p><p><b>  int 21h</b></p><p><b>  jmp exit2</b></p><p><b>  4源程序與執(zhí)行結果</b></p><p><

59、;b>  4.1執(zhí)行結果</b></p><p>  4.1.1 disdata函數的執(zhí)行結果</p><p>  4.1.2 adder函數的執(zhí)行結果</p><p>  4.1.3 modify函數的執(zhí)行結果</p><p>  4.1.4 delete函數的執(zhí)行結果</p><p>  4.1.

60、5 select函數的執(zhí)行結果</p><p>  4.1.6 Sort函數的執(zhí)行結果</p><p>  4.2.7 Save函數的執(zhí)行結果</p><p><b>  4.2源程序</b></p><p>  stack segment stack</p><p>  dw 512 dup(?

61、)</p><p>  stack ends</p><p>  data segment </p><p>  titlestr db 'Welcome to the directory!',0dh,0ah,'Enter your choice please!',0dh,0ah,'$' </p&

62、gt;<p>  menustr db '1:Select',0dh,0ah,'2:Insert',0dh,0ah,'3:Modify',0dh,0ah,'4:Delete',0dh,0ah,'5:Show all record',0dh,0ah,'7:Write to file',0dh,0ah,'8:Esc'

63、;,0dh,0ah,'$' </p><p>  namelist db 20 dup(20 dup(0)) </p><p>  studlist db 20 dup(20 dup(0)) </p><p>  dormlist db 20 dup(20 dup(0))</p><p>  telelist db

64、20 dup(20 dup(0))</p><p>  newname db 20 dup(0)</p><p>  newstud db 20 dup(0)</p><p>  newdorm db 20 dup(0)</p><p>  newtele db 20 dup(0)</p><p> 

65、 filename db 'F:\StudentList.txt',00h</p><p>  handle dw ?</p><p>  buffer db 20 dup(0)</p><p>  error1 db 'creating file wrong!',0dh,0ah.'$'</p>&l

66、t;p>  error2 db 'writing file wrong!',0dh,0ah.'$'</p><p>  wrtstr db 'write the class address book!$'</p><p>  cnt db 1 dup(0)</p><p>  cntselect db 1

67、dup(0)</p><p>  choice db 1 dup(0)</p><p>  enter db 0dh,0ah,'$' </p><p>  blank db ' $'</p><p>  disname db 'Name:$' </p><

68、;p>  disstud db 'Stud:$'</p><p>  disdorm db 'Dorm:$'</p><p>  distele db 'Tele:$'</p><p>  backstr db 'Key 6 to main menu!',0dh,0ah,'

69、$' </p><p>  selstr1 db '1:Select by name',0dh,0ah,'2:Select by Student Number',0dh,0ah,'$' </p><p>  selstr2 db 'The information!',0dh,0ah,'$' <

70、;/p><p>  selstr3 db 'Name is not exist!',0dh,0ah,'$' </p><p>  selstr4 db 'Student Number is not exist!',0dh,0ah,'$'</p><p>  selstr5 db 'Studen

71、t Number directory is empty!',0dh,0ah,'$'</p><p>  addstr1 db 'Input the new information!',0dh,0ah,'$' </p><p>  addstr2 db 'Student Number directory is full!

72、',0dh,0ah,'$'</p><p>  addstr3 db 'Add successfully!',0dh,0ah,'$'</p><p>  modstr1 db 'Newname:$' </p><p>  modstr2 db 'Newstud:$&#

73、39;</p><p>  modstr3 db 'Newdorm:$'</p><p>  modstr4 db 'Newtele:$'</p><p>  modstr5 db 'Input new record!',0dh,0ah,'$'</p><p>  mods

74、tr6 db 'Modified successfully!',0dh,0ah,'$'</p><p>  delstr1 db 'Student Number directory is empty!',0d,0ah,'$' </p><p>  delstr2 db 'Deleted successfully

75、!',0dh,0ah,'$'</p><p>  name1 db 'zhansan$' </p><p>  name2 db 'lisi$'</p><p>  name3 db 'wangwu$'</p><p>  StudentNumber

76、1 db '1111111$' </p><p>  StudentNumber2 db '2222222$'</p><p>  StudentNumber3 db '3333333$'</p><p>  dorm1 db '123$' </p><p&

77、gt;  dorm2 db '456$'</p><p>  dorm3 db '789$'</p><p>  tele1 db '123456$' </p><p>  tele2 db '654321$'</p><p>  tele3 db '

78、;457895$'</p><p><b>  data ends</b></p><p>  code segment </p><p>  main proc far </p><p>  assume cs:code,ds:data</p><p>  displ

79、aytitle proc near </p><p>  lea dx,titlestr</p><p><b>  mov ah,9</b></p><p><b>  int 21h</b></p><p>  lea dx,menustr</p><p><b&g

80、t;  int 21h</b></p><p><b>  ret</b></p><p>  displaytitle endp</p><p>  cshdata proc near </p><p><b>  mov bx,0 </b></p><p> 

81、 lea si,name1</p><p>  lea di,namelist</p><p><b>  add di,bx</b></p><p>  mov cx,20 </p><p>  cshname11:</p><p>  mov al,[si]</p><p&

82、gt;  mov [di],al</p><p><b>  inc si</b></p><p><b>  inc di</b></p><p>  cmp al,'$'</p><p>  jz cshname12</p><p>  loop cshn

83、ame11</p><p>  cshname12:</p><p><b>  add bx,20</b></p><p>  lea si,name2</p><p>  lea di,namelist</p><p><b>  add di,bx</b></p&

84、gt;<p>  mov cx,20 </p><p>  cshname21:</p><p>  mov al,[si]</p><p>  mov [di],al</p><p><b>  inc si</b></p><p><b>  inc di</b&

85、gt;</p><p>  cmp al,'$'</p><p>  jz cshname22</p><p>  loop cshname21</p><p>  cshname22:</p><p><b>  add bx,20</b></p><p>

86、;  lea si,name3</p><p>  lea di,namelist</p><p><b>  add di,bx</b></p><p>  mov cx,20 </p><p>  cshname31:</p><p>  mov al,[si]</p><

87、p>  mov [di],al</p><p><b>  inc si</b></p><p><b>  inc di</b></p><p>  cmp al,'$'</p><p>  jz cshname32</p><p>  loop cs

88、hname31</p><p>  cshname32:</p><p><b>  add bx,20</b></p><p>  mov ax,bx ;初始化計數器cnt</p><p><b>  mov bl,20</b></p><p><b>  d

89、iv bl</b></p><p>  lea si,cnt</p><p>  mov [si],al </p><p>  mov bx,0 </p><p>  lea si,StudentNumber1</p><p>  lea di,studlist</p><p>

90、<b>  add di,bx</b></p><p>  mov cx,20 </p><p>  cshstud11:</p><p>  mov al,[si]</p><p>  mov [di],al</p><p><b>  inc si</b></p&g

91、t;<p><b>  inc di</b></p><p>  cmp al,'$'</p><p>  jz cshstud12</p><p>  loop cshstud11</p><p>  cshstud12:</p><p><b>  ad

92、d bx,20</b></p><p>  lea si,StudentNumber2</p><p>  lea di,studlist</p><p><b>  add di,bx</b></p><p>  mov cx,20 </p><p>  cshstud21:<

93、/p><p>  mov al,[si]</p><p>  mov [di],al</p><p><b>  inc si</b></p><p><b>  inc di</b></p><p>  cmp al,'$'</p><p&g

94、t;  jz cshstud22</p><p>  loop cshstud21</p><p>  cshstud22:</p><p><b>  add bx,20</b></p><p>  lea si,StudentNumber3</p><p>  lea di,studlist&

95、lt;/p><p><b>  add di,bx</b></p><p>  mov cx,20 </p><p>  cshstud31:</p><p>  mov al,[si]</p><p>  mov [di],al</p><p><b>  inc

96、si</b></p><p><b>  inc di</b></p><p>  cmp al,'$'</p><p>  jz cshstud32</p><p>  loop cshstud31</p><p>  cshstud32:</p>&l

97、t;p>  add bx,20 </p><p>  mov bx,0 </p><p>  lea si,dorm1</p><p>  lea di,dormlist</p><p><b>  add di,bx</b></p><p>  mov cx,20 </p>

98、<p>  cshdorm11:</p><p>  mov al,[si]</p><p>  mov [di],al</p><p><b>  inc si</b></p><p><b>  inc di</b></p><p>  cmp al,

99、9;$'</p><p>  jz cshdorm12</p><p>  loop cshdorm11</p><p>  cshdorm12:</p><p><b>  add bx,20</b></p><p>  lea si,dorm2</p><p>

100、  lea di,dormlist</p><p><b>  add di,bx</b></p><p>  mov cx,20 </p><p>  cshdorm21:</p><p>  mov al,[si]</p><p>  mov [di],al</p><p&

101、gt;<b>  inc si</b></p><p><b>  inc di</b></p><p>  cmp al,'$'</p><p>  jz cshdorm22</p><p>  loop cshdorm21</p><p>  cshdor

102、m22:</p><p><b>  add bx,20</b></p><p>  lea si,dorm3</p><p>  lea di,dormlist</p><p><b>  add di,bx</b></p><p>  mov cx,20 </p&g

103、t;<p>  cshdorm31:</p><p>  mov al,[si]</p><p>  mov [di],al</p><p><b>  inc si</b></p><p><b>  inc di</b></p><p>  cmp al,&

104、#39;$'</p><p>  jz cshdorm32</p><p>  loop cshdorm31</p><p>  cshdorm32:</p><p>  add bx,20 </p><p>  mov bx,0 </p><p>  lea si,tele1<

105、;/p><p>  lea di,telelist</p><p><b>  add di,bx</b></p><p>  mov cx,20 </p><p>  cshtele11:</p><p>  mov al,[si]</p><p>  mov [di],al

106、</p><p><b>  inc si</b></p><p><b>  inc di</b></p><p>  cmp al,'$'</p><p>  jz cshtele12</p><p>  loop cshtele11</p>

107、<p>  cshtele12:</p><p><b>  add bx,20</b></p><p>  lea si,tele2</p><p>  lea di,telelist</p><p><b>  add di,bx</b></p><p>  

108、mov cx,20 </p><p>  cshtele21:</p><p>  mov al,[si]</p><p>  mov [di],al</p><p><b>  inc si</b></p><p><b>  inc di</b></p>&

109、lt;p>  cmp al,'$'</p><p>  jz cshtele22</p><p>  loop cshtele21</p><p>  cshtele22:</p><p><b>  add bx,20</b></p><p>  lea si,tele3&

110、lt;/p><p>  lea di,telelist</p><p><b>  add di,bx</b></p><p>  mov cx,20 </p><p>  cshtele31:</p><p>  mov al,[si]</p><p>  mov [di],

111、al</p><p><b>  inc si</b></p><p><b>  inc di</b></p><p>  cmp al,'$'</p><p>  jz cshtele32</p><p>  loop cshtele31</p>

112、;<p>  cshtele32:</p><p>  add bx,20 </p><p><b>  ret</b></p><p>  cshdata endp</p><p>  disdata proc near </p><p>  lea si,cnt ;循環(huán)次數

113、</p><p>  mov cl,[si] </p><p><b>  mov bx,0</b></p><p><b>  disdatal:</b></p><p>  lea dx,disname </p><p>  mov ah,09h</p>

114、<p><b>  int 21h</b></p><p>  lea dx,namelist </p><p><b>  add dx,bx</b></p><p>  mov ah,09h</p><p><b>  int 21h</b></p>

115、<p>  lea dx,blank </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,disstud </p><p>  mov ah,09h</p><p><b>  int 21h

116、</b></p><p>  lea dx,studlist </p><p><b>  add dx,bx</b></p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,blank

117、 </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,disdorm </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><

118、p>  lea dx,dormlist </p><p><b>  add dx,bx</b></p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,blank </p><p>  mo

119、v ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,distele </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,telelist &l

120、t;/p><p><b>  add dx,bx</b></p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,enter </p><p>  mov ah,09h</p><p&

121、gt;<b>  int 21h</b></p><p><b>  add bx,20</b></p><p>  loop disdatal</p><p><b>  ret</b></p><p>  disdata endp</p><p> 

122、 adder proc near </p><p>  lea si,cnt ;判斷學號是否已滿</p><p>  mov al,[si]</p><p>  cmp al,20 </p><p><b>  jb adder5</b></p><p>  lea dx,addstr2 &

123、lt;/p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  jmp adder6</p><p>  adder5: lea dx,addstr1 </p><p>  mov ah,09h</p><p><b&

124、gt;  int 21h</b></p><p>  lea dx,disname </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p><b>  mov cl,19</b></p><p>  lea

125、si,newname</p><p>  adder1: mov ah,01h</p><p><b>  int 21h</b></p><p>  cmp al,0dh </p><p><b>  je adder2</b></p><p>  mov [si],al

126、</p><p><b>  inc si</b></p><p>  loop adder1</p><p>  adder2: mov al,24h </p><p>  mov [si],al</p><p>  lea si,cnt ;計算目的地址的偏移量</p><

127、;p>  mov bl,[si]</p><p><b>  xor ax,ax</b></p><p><b>  mov al,20</b></p><p><b>  mul bl </b></p><p>  lea si,newname </p>

128、<p>  lea di,namelist</p><p><b>  add di,ax</b></p><p><b>  mov cx,20</b></p><p><b>  cld</b></p><p><b>  rep movsb</b

129、></p><p>  lea dx,enter</p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p>  lea dx,disstud </p><p>  mov ah,09h</p><p><b

130、>  int 21h</b></p><p><b>  mov cl,19</b></p><p>  lea si,newstud</p><p>  adder3: mov ah,01h</p><p><b>  int 21h</b></p><p&g

131、t;  cmp al,0dh </p><p><b>  je adder4</b></p><p>  mov [si],al</p><p><b>  inc si</b></p><p>  loop adder3</p><p>  adder4: mov al

132、,24h </p><p>  mov [si],al</p><p>  lea si,cnt</p><p>  mov bl,[si]</p><p><b>  xor ax,ax</b></p><p><b>  mov al,20</b></p>

133、<p><b>  mul bl</b></p><p>  lea si,newstud </p><p>  lea di,studlist</p><p><b>  add di,ax</b></p><p><b>  mov cx,20</b></

134、p><p><b>  cld</b></p><p>  rep movsb </p><p>  lea dx,enter</p><p>  mov ah,09h</p><p><b>  int 21h </b></p><p>  lea d

135、x,disdorm </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p><b>  mov cl,19</b></p><p>  lea si,newdorm</p><p>  adder7: mov ah,0

136、1h</p><p><b>  int 21h</b></p><p>  cmp al,0dh </p><p><b>  je adder8</b></p><p>  mov [si],al</p><p><b>  inc si</b>&

137、lt;/p><p>  loop adder7</p><p>  adder8: mov al,24h </p><p>  mov [si],al</p><p>  lea si,cnt</p><p>  mov bl,[si]</p><p><b>  xor ax,ax&l

138、t;/b></p><p><b>  mov al,20</b></p><p><b>  mul bl</b></p><p>  lea si,newdorm </p><p>  lea di,dormlist</p><p><b>  add d

139、i,ax</b></p><p><b>  mov cx,20</b></p><p><b>  cld</b></p><p>  rep movsb </p><p>  lea dx,enter</p><p>  mov ah,09h</p>

140、;<p><b>  int 21h </b></p><p>  lea dx,distele </p><p>  mov ah,09h</p><p><b>  int 21h</b></p><p><b>  mov cl,19</b></p

141、><p>  lea si,newtele</p><p>  adder9: mov ah,01h</p><p><b>  int 21h</b></p><p>  cmp al,0dh </p><p>  je adder10</p><p>  mov [si]

142、,al</p><p><b>  inc si</b></p><p>  loop adder9</p><p>  adder10: mov al,24h </p><p>  mov [si],al</p><p>  lea si,cnt</p><p>  m

143、ov bl,[si]</p><p><b>  xor ax,ax</b></p><p><b>  mov al,20</b></p><p><b>  mul bl</b></p><p>  lea si,newtele </p><p> 

144、 lea di,telelist</p><p><b>  add di,ax</b></p><p><b>  mov cx,20</b></p><p><b>  cld</b></p><p>  rep movsb </p><p>  l

145、ea dx,enter</p><p>  mov ah,09h</p><p><b>  int 21h </b></p><p>  lea si,cnt ;計數器加1</p><p>  mov al,[si]</p><p><b>  inc al</b>&l

146、t;/p><p>  mov [si],al </p><p>  lea dx,addstr3 </p><p>  mov ah,09h</p><p><b>  int 21h </b></p><p>  lea si,newname</p><p><b>

147、;  mov cx,20</b></p><p><b>  adder11:</b></p><p><b>  mov al,0</b></p><p>  mov [si],al</p><p><b>  inc si</b></p><

148、p>  loop adder11</p><p>  lea si,newstud</p><p><b>  mov cx,20</b></p><p><b>  adder12:</b></p><p><b>  mov al,0</b></p>&

149、lt;p>  mov [si],al</p><p><b>  inc si</b></p><p>  loop adder12</p><p>  lea si,newdorm</p><p><b>  mov cx,20</b></p><p><b&g

150、t;  adder13:</b></p><p><b>  mov al,0</b></p><p>  mov [si],al</p><p><b>  inc si</b></p><p>  loop adder13</p><p>  lea si,n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論