課程設(shè)計--約瑟夫環(huán)程序設(shè)計_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課 程 設(shè) 計</b></p><p><b>  課程設(shè)計任務(wù)書</b></p><p>  學生姓名: 專業(yè)班級: </p><p>  指導教師: 工作單位: </p><p>  題目: 約瑟夫環(huán)程序設(shè)計</p&g

2、t;<p><b>  初始條件:</b></p><p>  理論:完成了《匯編語言程序設(shè)計》課程,對微機系統(tǒng)結(jié)構(gòu)和80系列指令系統(tǒng)有了較深入的理解,已掌握了匯編語言程序設(shè)計的基本方法和技巧。</p><p>  實踐:完成了《匯編語言程序設(shè)計》的4個實驗,熟悉了匯編語言程序的設(shè)計環(huán)境并掌握了匯編語言程序的調(diào)試方法。</p><p&

3、gt;  要求完成的主要任務(wù): (包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)</p><p>  進一步理解和掌握較復雜程序的設(shè)計方法,掌握子程序結(jié)構(gòu)的設(shè)計和友好用戶界面的設(shè)計。具體的設(shè)計任務(wù)及要求:</p><p>  有 n個人圍成一圈,他們的編號為1到n。第一個人從1開始順序報數(shù),凡報到m時,該人退出圈子。其后的人再從1開始順序報數(shù),直到最后的一個人退出圈子為止。輸出

4、依次退出圈子人的序號。n和m的值從鍵盤輸入,且均小于200。</p><p>  程序采用子程序結(jié)構(gòu),結(jié)構(gòu)清晰;</p><p>  友好清晰的用戶界面,能識別輸入錯誤并控制錯誤的修改。</p><p>  在完成設(shè)計任務(wù)后,按要求撰寫課程設(shè)計說明書;對課程設(shè)計說明書的具體要求請見課程設(shè)計指導書。</p><p><b>  閱讀資

5、料:</b></p><p>  1)《IBM—PC匯編語言程序設(shè)計實驗教程》實驗2.4</p><p>  2)《IBM—PC匯編語言程序設(shè)計(第2版)》例6.11</p><p><b>  時間安排:</b></p><p>  設(shè)計安排一周:周1、周2:完成系統(tǒng)分析及設(shè)計。</p>&l

6、t;p>  周3、周4:完成程序調(diào)試,和驗收。</p><p>  周5:撰寫課程設(shè)計報告。</p><p>  指導教師簽名: 年 月 日</p><p>  系主任(或責任教師)簽名: 年 月 日</p><p><b>  目 錄&l

7、t;/b></p><p>  問題描述及要求…………………………………………………………………………………… 4</p><p>  1.1問題描述……………………………………………………………………………………… 4</p><p>  1.2任務(wù)要求……………………………………………………………………………………… 4</p><

8、p>  2.設(shè)計說明………………………………………………………………………………………………… 4</p><p>  2.1 簡要分析……………………………………………………………………………………… 4</p><p>  2.2 概要設(shè)計……………………………………………………………………………………… 4</p><p>  2.2.1 主要模塊……

9、………………………………………………………………… 4</p><p>  2.2.2 主函數(shù)結(jié)構(gòu)………………………………………………………………….7</p><p>  3.算法描述………………………………………………………………………………………………. 8</p><p>  3.1 算法描述……………………………………………………………………………………

10、. 8</p><p>  3.2 流程框圖……………………………………………………………………………………… 9</p><p>  4.源程序與執(zhí)行結(jié)果……………………………………………………………………………… 10</p><p>  4.1 源程序…………………………………………………………………………………………… 10</p><p

11、>  4.2 執(zhí)行結(jié)果…………………………………………………………………………………………15</p><p>  4.2.1 測試方法……………………………………………………………………………15</p><p>  4.2.2 測試結(jié)果………………………………………………………………………….15</p><p>  5.使用說明…………………………………

12、……………………………………………………………….16</p><p>  6.總結(jié)……………………………………………………………………………………………………………17</p><p><b>  匯編語言程序設(shè)計</b></p><p>  ----約瑟夫環(huán)程序設(shè)計</p><p><b>  一、問題描述

13、及要求</b></p><p><b>  1.1問題描述</b></p><p>  有 n個人圍成一圈,他們的編號為1到n。第一個人從1開始順序報數(shù)凡報到m時,該人退出圈子。其后的人再從1開始順序報數(shù),直到最后的一個人退出圈子為止。輸出依次退出圈子人的序號。n和m的值從鍵盤輸入,且均小于200。</p><p><b>

14、;  1.2任務(wù)要求</b></p><p>  程序采用子程序結(jié)構(gòu),結(jié)構(gòu)清晰;</p><p>  友好清晰的用戶界面,能識別輸入錯誤并控制錯誤的修改。</p><p><b>  二.設(shè)計說明</b></p><p><b>  2.1 簡要分析</b></p><

15、;p>  要正確、友好地完成用匯編語言設(shè)計約瑟夫環(huán),我們應該完成以下幾個功能:</p><p><b>  相關(guān)的交互提示用語</b></p><p>  定義的數(shù)據(jù)段中包含0-200</p><p><b>  編號數(shù)n的輸入</b></p><p><b>  標志數(shù)m的輸入&l

16、t;/b></p><p>  輸入設(shè)置為只允許輸入三位數(shù)字,其余均不顯示</p><p>  顯示的結(jié)果是所有的退出序列,并使用箭標連接</p><p><b>  2.2 概要設(shè)計</b></p><p>  2.2.1 主要模塊</p><p><b> ?。?)變量的定義&

17、lt;/b></p><p>  DATA SEGMENT </p><p>  TABLE LABEL WORD</p><p>  COUNT = 1</p><p><b>  REPT 200</b></p><p>  DW COUNT </p><p

18、>  COUNT = COUNT + 1 </p><p><b>  ENDM </b></p><p>  PRINT1 DB 'Please input the number of the people(less than 200):$'</p><p>  PRINT2 DB 'Please th

19、e flag:$' </p><p>  MESS DB '->$' </p><p><b>  DATA ENDS</b></p><p> ?。?)編號數(shù)n輸入的處理</p><p>  n1:MOV AH,07H </p><p><b>  I

20、NT 21H </b></p><p>  CMP AL,'0' </p><p><b>  JB n1</b></p><p>  CMP AL,'9'</p><p><b>  JA n1</b></p><p>&l

21、t;b>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  INT 21H</b></p><p><b>  MOV AH,0 </b></p><p>  SUB AL,30H </p><p>  M

22、OV CX,AX </p><p>  MOV BX,CX </p><p>  n2:MOV AH,07H </p><p><b>  INT 21H </b></p><p>  CMP AL,'0'</p><p><b>  JB n2</b>

23、;</p><p>  CMP AL,'9'</p><p><b>  JA n2</b></p><p><b>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  INT 21H</b&

24、gt;</p><p><b>  MOV AH,0 </b></p><p>  SUB AL,30H </p><p><b>  MOV DX,10</b></p><p><b>  MUL DX</b></p><p><b>  

25、MOV CX,AX</b></p><p>  MOV AX,BX </p><p>  MOV BX,100 </p><p>  MUL BX </p><p>  ADD CX,AX </p><p>  n3:MOV AH,07H</p><p><b

26、>  INT 21H</b></p><p>  CMP AL,'0'</p><p><b>  JB n3</b></p><p>  CMP AL,'9'</p><p><b>  JA n3</b></p><p&g

27、t;<b>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  INT 21H</b></p><p><b>  MOV AH,0</b></p><p>  SUB AL,30H</p><p>&l

28、t;b>  MOV DX,AX</b></p><p>  ADD CX,DX </p><p><b>  PUSH CX </b></p><p>  MOV AX,CX </p><p><b>  MOV CX,2 </b></p><p>  

29、MUL CX </p><p>  MOV BP,AX </p><p>  MOV AX,[SI+BP]</p><p>  MOV AX,0FFH </p><p>  MOV [SI+BP],AX </p><p>  CALL CTRL </p><p>  LEA DX

30、,PRINT2 </p><p>  MOV AH,09H </p><p><b>  INT 21H </b></p><p>  CALL CTRL </p><p> ?。?)標志數(shù)m的輸入處理</p><p>  n4:MOV AH,07H </p><

31、p><b>  INT 21H </b></p><p>  CMP AL,'0'</p><p><b>  JB n4</b></p><p>  CMP AL,'9'</p><p><b>  JA n4</b></p&g

32、t;<p><b>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  INT 21H</b></p><p><b>  MOV AH,0 </b></p><p>  SUB AL,30H </p>

33、;<p>  MOV CX,AX </p><p>  MOV BX,CX </p><p>  n5:MOV AH,07H </p><p><b>  INT 21H</b></p><p>  CMP AL,'0'</p><p><b>  J

34、B n5</b></p><p>  CMP AL,'9'</p><p><b>  JA n5</b></p><p><b>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  

35、INT 21H </b></p><p><b>  MOV AH,0 </b></p><p>  SUB AL,30H </p><p><b>  MOV DX,10</b></p><p><b>  MUL DX</b></p><p

36、><b>  MOV CX,AX</b></p><p>  MOV AX,BX </p><p>  MOV BX,100 </p><p>  MUL BX </p><p>  ADD CX,AX </p><p>  n6:MOV AH,07H</p>

37、<p><b>  INT 21H</b></p><p>  CMP AL,'0'</p><p><b>  JB n6</b></p><p>  CMP AL,'9'</p><p><b>  JA n6</b></

38、p><p><b>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  INT 21H</b></p><p><b>  MOV AH,0</b></p><p>  SUB AL,30H</p>

39、;<p><b>  MOV DX,AX</b></p><p>  ADD CX,DX </p><p>  MOV DI,CX </p><p>  2.2.2 主函數(shù)結(jié)構(gòu)</p><p><b>  START: </b></p><p>  MO

40、V AX,DATA </p><p>  MOV DS,AX </p><p>  LEA SI,TABLE</p><p><b>  MOV BX,0 </b></p><p><b>  MOV DX,0;</b></p><p>  CALL PRINT </p

41、><p><b>  三.算法描述</b></p><p>  【求解思路】我們知道第一個人(編號一定是m%n-1) 出列之后,剩下的n-1個人組成了一個新的約瑟夫環(huán)</p><p> ?。ㄒ跃幪枮閗=m%n的人開始): k k+1 k+2 ... n-2, n-1, 0, 1, 2, ... k-2 并且從k開始報0。&

42、#160;現(xiàn)在我們把他們的編號做一下轉(zhuǎn)換: k --> 0 k+1 --> 1 k+2 --> 2 ... ... k-2 --> n-2 k-1 --> n-1 變換后就完完全全成為了(n-1)個人報數(shù)的子問題.</p><p>  假如我們知道這個子問題的解:例如x是最終的勝利者,那

43、么根據(jù)上面這個表把這個x變回去不剛好就是n個人情況的解嗎??。∽兓厝サ墓胶芎唵?,可以推出來為:x' =(x+k)%n 如何知道(n-1)個人報數(shù)的問題的解?對,只要知道(n-2)個人的解就行了。(n-2)個人的解呢?當然是先求(n-3)的情況 ---- 這顯然就是一個倒推問題!</p><p>  下面寫遞推公式: 令f[i]表示i個人玩游戲報m退出最后勝利者的編號,最后的結(jié)果自

44、然是f[n] f[1]=0; f[i]=(f[i-1]+m)%i; (i>1) 有了這個公式,我們要做的就是從1-n順序算出f[i]的數(shù)值,最后結(jié)果是f[n]。因為實際生活中編號總是從1開始,我們輸出f[n]+1 由于是逐級遞推,不需要保存每個f[i],程序也是異常簡單:</p><p>  翻譯成C語言如下代碼所示int main() {

45、60;    int n, m, i, s=0;    scanf("%d%d", &n, &m);     for (i=2; i <=n; i++)         s=(s+m)%i; 

46、60;   printf ("The winner is %d\n", s+1); }</p><p>  類似的匯編代碼亦可推之.</p><p><b>  【流程框圖】</b></p><p>  四.源程序與執(zhí)行結(jié)果(含測試方法和測試結(jié)果)</p><p>&l

47、t;b>  4.1 源程序</b></p><p>  DATA SEGMENT </p><p>  TABLE LABEL WORD</p><p>  COUNT = 1</p><p><b>  REPT 200</b></p><p>  DW COUNT

48、</p><p>  COUNT = COUNT + 1 </p><p>  ENDM ;可以選擇編號數(shù)的上限</p><p>  PRINT1 DB 'Please input the number of the people(less than 200):$'</p><p>  ;用CX寄存器保存編號數(shù) &l

49、t;/p><p>  PRINT2 DB 'Please the flag:$';用DI寄存器保存標志值 </p><p>  MESS DB '->$' </p><p>  DATA ENDS </p><p>  CODE SEGMENT </p><p>  ASSUME C

50、S:CODE,DS:DATA </p><p><b>  START: </b></p><p>  MOV AX,DATA </p><p>  MOV DS,AX </p><p>  LEA SI,TABLE ;SI指向首地址,BX作為移動指針 </p><p><b>  M

51、OV BX,0 </b></p><p>  MOV DX,0 ;DX作為計數(shù)器 </p><p>  CALL PRINT ;執(zhí)行該子程序后返回輸入的編號數(shù)和標志值,分別為CX和DI</p><p>  L0:MOV AX,0 </p><p>  L1:MOV AX,[SI+BX] ;依次取出TABLE中的數(shù)據(jù)

52、</p><p><b>  CMP AX,0 </b></p><p>  JZ L2 ;AX等于0的時候跳轉(zhuǎn)</p><p>  CMP AX,0FFH </p><p>  JZ L3 ;AX等于201的時候跳轉(zhuǎn)</p><p>  ADD DX,1 ;計數(shù)器加1&

53、lt;/p><p>  CMP DX,DI ;比較與標志值是否一致</p><p>  JZ L4 ;一致則跳轉(zhuǎn)</p><p>  L2:ADD BX,2 ;取下一個數(shù)據(jù)</p><p><b>  JMP L1 </b></p><p>  L3:MOV BX,0 ;重置</p&

54、gt;<p><b>  JMP L1 </b></p><p>  L4:MOV AX,[SI+BX] ;取出數(shù)值</p><p>  CALL OUTDEC </p><p><b>  MOV AX,0 </b></p><p>  MOV [SI+BX],AX </p&g

55、t;<p><b>  MOV DX,0 </b></p><p><b>  LOOP L0 </b></p><p><b>  MOV AH,2H</b></p><p><b>  INT 21H</b></p><p>  OUTD

56、EC PROC </p><p><b>  PUSH AX </b></p><p><b>  PUSH DX </b></p><p><b>  PUSH CX </b></p><p><b>  PUSH BX </b></p>

57、<p>  MOV CL,100 </p><p>  DIV CL ;AX=AX/100,AL保存商,AH保存余數(shù)</p><p>  MOV BL,AH </p><p>  MOV DL,AL </p><p>  OR DL,30H ;轉(zhuǎn)換成字符輸出</p><p>  MOV AH,02H

58、;顯示輸出 DL=輸出字符</p><p><b>  INT 21H </b></p><p><b>  MOV CL,10</b></p><p><b>  MOV BH,0</b></p><p><b>  MOV AX,BX</b></

59、p><p><b>  DIV CL</b></p><p><b>  MOV DL,AL</b></p><p><b>  MOV BL,AH</b></p><p>  OR DL,30H </p><p>  MOV AH,02H ;顯示輸出 DL

60、=輸出字符</p><p><b>  INT 21H </b></p><p><b>  MOV DL,BL</b></p><p><b>  OR DL,30H</b></p><p>  MOV AH,02H ;顯示輸出 DL=輸出字符</p><

61、p><b>  INT 21H</b></p><p><b>  POP BX </b></p><p><b>  POP CX </b></p><p><b>  CMP CX,1 </b></p><p><b>  JZ L5

62、</b></p><p>  LEA DX,MESS ;顯示箭標</p><p>  MOV AH,09H </p><p><b>  INT 21H </b></p><p>  L5:POP DX </p><p><b>  POP AX </b><

63、/p><p><b>  RET </b></p><p>  OUTDEC ENDP </p><p>  PRINT PROC </p><p><b>  PUSH AX </b></p><p><b>  PUSH DX </b></p&g

64、t;<p><b>  PUSH BX </b></p><p>  LEA DX,PRINT1 </p><p>  MOV AH,09H ;顯示字符串</p><p><b>  INT 21H </b></p><p>  CALL CTRL </p><p

65、>  n1:MOV AH,07H ;輸入編號數(shù)n不回顯</p><p><b>  INT 21H </b></p><p>  CMP AL,'0' ;每次輸入均驗證是否為0-9,否則輸入無效</p><p><b>  JB n1</b></p><p>  CMP

66、AL,'9'</p><p><b>  JA n1</b></p><p><b>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  INT 21H</b></p><p><

67、b>  MOV AH,0 </b></p><p>  SUB AL,30H ;轉(zhuǎn)換成實際數(shù)值</p><p>  MOV CX,AX </p><p>  MOV BX,CX ;將最高位數(shù)值存入BX</p><p>  n2:MOV AH,07H </p><p><b>  IN

68、T 21H </b></p><p>  CMP AL,'0'</p><p><b>  JB n2</b></p><p>  CMP AL,'9'</p><p><b>  JA n2</b></p><p><b

69、>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  INT 21H</b></p><p><b>  MOV AH,0 </b></p><p>  SUB AL,30H ;轉(zhuǎn)換成實際數(shù)值</p><p&g

70、t;<b>  MOV DX,10</b></p><p><b>  MUL DX</b></p><p><b>  MOV CX,AX</b></p><p>  MOV AX,BX ;將最高位數(shù)值存入AX</p><p>  MOV BX,100 </p>

71、;<p>  MUL BX ;將最高位數(shù)乘以100,作為百位</p><p>  ADD CX,AX ;把百位數(shù)存入CX</p><p>  n3:MOV AH,07H</p><p><b>  INT 21H</b></p><p>  CMP AL,'0'</p&g

72、t;<p><b>  JB n3</b></p><p>  CMP AL,'9'</p><p><b>  JA n3</b></p><p><b>  MOV DL,AL</b></p><p>  MOV AH,02H</p&

73、gt;<p><b>  INT 21H</b></p><p><b>  MOV AH,0</b></p><p>  SUB AL,30H</p><p><b>  MOV DX,AX</b></p><p>  ADD CX,DX ;把個位數(shù)存入CX

74、,并入棧保存</p><p><b>  PUSH CX </b></p><p>  MOV AX,CX </p><p><b>  MOV CX,2 </b></p><p>  MUL CX ;計算在TABLE中所對應的偏移字節(jié)</p><p>  MOV

75、BP,AX </p><p>  MOV AX,[SI+BP] ;取出TABLE中對應的數(shù)值</p><p>  MOV AX,0FFH </p><p>  MOV [SI+BP],AX </p><p>  CALL CTRL ;換行</p><p>  LEA DX,PRINT2 </p>&

76、lt;p>  MOV AH,09H ;顯示字符串</p><p><b>  INT 21H </b></p><p>  CALL CTRL ;換行</p><p>  n4:MOV AH,07H ;輸入標志數(shù)m不回顯</p><p><b>  INT 21H </b><

77、;/p><p>  CMP AL,'0'</p><p><b>  JB n4</b></p><p>  CMP AL,'9'</p><p><b>  JA n4</b></p><p><b>  MOV DL,AL<

78、/b></p><p>  MOV AH,02H</p><p><b>  INT 21H</b></p><p><b>  MOV AH,0 </b></p><p>  SUB AL,30H ;轉(zhuǎn)換成實際數(shù)值</p><p>  MOV CX,AX </

79、p><p>  MOV BX,CX ;將最高位數(shù)值存入BX</p><p>  n5:MOV AH,07H </p><p><b>  INT 21H</b></p><p>  CMP AL,'0'</p><p><b>  JB n5</b><

80、;/p><p>  CMP AL,'9'</p><p><b>  JA n5</b></p><p><b>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  INT 21H </b>

81、</p><p><b>  MOV AH,0 </b></p><p>  SUB AL,30H ;轉(zhuǎn)換成實際數(shù)值</p><p><b>  MOV DX,10</b></p><p><b>  MUL DX</b></p><p><b&

82、gt;  MOV CX,AX</b></p><p>  MOV AX,BX ;將最高位數(shù)值存入AX</p><p>  MOV BX,100 </p><p>  MUL BX ;將最高位數(shù)乘以100,作為百位</p><p>  ADD CX,AX ;把百位數(shù)存入CX</p><p>

83、  n6:MOV AH,07H</p><p><b>  INT 21H</b></p><p>  CMP AL,'0'</p><p><b>  JB n6</b></p><p>  CMP AL,'9'</p><p><b

84、>  JA n6</b></p><p><b>  MOV DL,AL</b></p><p>  MOV AH,02H</p><p><b>  INT 21H</b></p><p><b>  MOV AH,0</b></p><

85、;p>  SUB AL,30H</p><p><b>  MOV DX,AX</b></p><p>  ADD CX,DX ;把個位數(shù)存入CX</p><p>  MOV DI,CX ;存入DI</p><p>  CALL CTRL </p><p><b>  PO

86、P CX </b></p><p><b>  POP BX </b></p><p><b>  POP DX </b></p><p><b>  POP AX </b></p><p><b>  RET </b></p>

87、<p>  PRINT ENDP </p><p>  CTRL PROC </p><p><b>  PUSH AX </b></p><p><b>  PUSH DX </b></p><p>  MOV AH,02H </p><p>  MOV DL,0

88、AH ;打印換行符</p><p><b>  INT 21H </b></p><p>  MOV DL,0DH ;打印回車符</p><p><b>  INT 21H </b></p><p><b>  POP DX </b></p><p&

89、gt;<b>  POP AX </b></p><p><b>  RET </b></p><p>  CTRL ENDP </p><p>  CODE ENDS </p><p><b>  END START</b></p><p><b

90、>  4.2 執(zhí)行結(jié)果</b></p><p>  4.2.1 測試方法</p><p>  本次測試我們采用的是通過提示用語,依次輸入編號數(shù)和標志數(shù),都為三位數(shù),未滿100的數(shù)高位為0.</p><p>  輸入的測試數(shù)據(jù)n與m均小于200,測試類型3種</p><p>  (1)n>m 測試例子:n=100 m=1

91、0 (2) n<m 測試例子:n=50 m=100</p><p>  (3)n=m 測試例子:n=100 m=100 (4) 大于200的錯誤測試</p><p>  另外測試過程中嘗試輸入除數(shù)字以外的字符是無法顯示的,這點無法截圖顯示。</p><p>  4.2.2 測試結(jié)果</p><p><b>  測試1<

92、/b></p><p><b>  測試2</b></p><p><b>  五、使用說明</b></p><p>  本次課程設(shè)計使用MASMPlus進行實驗,截圖如下:</p><p><b>  六、總結(jié)</b></p><p>  本次匯

93、編語言課程設(shè)計是約瑟夫環(huán)的程序設(shè)計,之前在C++語言以及數(shù)據(jù)結(jié)構(gòu)的課程中均有過了解,所以這次上手還算比較容易,但是中途也遇到了匯編程序特有的難題,那就是輸入的問題。課程設(shè)計的要求是輸入兩個小于200的整數(shù),然而匯編語言中規(guī)定的中斷功能一次只能輸入一個字符,這與題目要求相悖甚遠,一時竟陷入了編程困惑中,最后經(jīng)過簡單的思考發(fā)現(xiàn)只需要多次使用07H或01H中斷就可以完成這個功能;但是在進一步的研究后發(fā)現(xiàn),程序應該對數(shù)字以外的輸入進行有效屏蔽,

94、而不是接受所有的字符輸入,于是我使用了CMP指令結(jié)合跳轉(zhuǎn)指令解決了這個問題,程序要求輸入后除了數(shù)字字符以外的所有輸入將不再顯示且也沒有任何副作用,達到了一個比較完美的效果.另外程序引入了多個子程序進行構(gòu)架,力求將程序的可讀性和效率發(fā)揮到極致,當然程序還有很多需要改進的地方:輸入嚴重不符合規(guī)律時可以嘗試給出更友好的交互提示.</p><p>  本次課程設(shè)計讓我對匯編語言的幾個重要知識點:寄存器問題、基本命令(mo

95、v,加減乘除操作,跳轉(zhuǎn)、循環(huán)操作)、匯編中斷程序的功能、匯編程序的基本格式以及函數(shù)的定義和調(diào)用有了一個比較清楚的了解。通過本次實驗,我也學會了一種調(diào)試程序的方法,那就是“一個函數(shù)一個函數(shù)單獨測試”的方法。另外一般在編寫程序時,首先應該寫出程序的主體框架,然后再進行修飾、完善。在查錯時,我們一定要一條語句一條語句的推敲,絕不能疏忽大意,因為錯誤的程序往往都是形似而神非,往往錯誤就在那一兩條語句,所以必須仔細。</p><

96、;p>  總之,這次匯編語言課程設(shè)計讓我受益菲淺。是一次重要的,有意思的實踐。</p><p>  本科生課程設(shè)計成績評定表</p><p>  班級:  姓名: 學號:</p><p>  注:最終成績以五級分制記。優(yōu)(90-100分)、良(80-89分)、中(70-79分)、</p><p>  及格(60-69分)、60分以下

溫馨提示

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

評論

0/150

提交評論