2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

8、p>  2.設(shè)計(jì)說(shuō)明………………………………………………………………………………………………… 4</p><p>  2.1 簡(jiǎn)要分析……………………………………………………………………………………… 4</p><p>  2.2 概要設(shè)計(jì)……………………………………………………………………………………… 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 測(cè)試方法……………………………………………………………………………15</p><p>  4.2.2 測(cè)試結(jié)果………………………………………………………………………….15</p><p>  5.使用說(shuō)明…………………………………

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

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

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

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

16、t;/b></p><p>  輸入設(shè)置為只允許輸入三位數(shù)字,其余均不顯示</p><p>  顯示的結(jié)果是所有的退出序列,并使用箭標(biāo)連接</p><p><b>  2.2 概要設(shè)計(jì)</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> ?。?)編號(hào)數(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> ?。?)標(biāo)志數(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>  【求解思路】我們知道第一個(gè)人(編號(hào)一定是m%n-1) 出列之后,剩下的n-1個(gè)人組成了一個(gè)新的約瑟夫環(huán)</p><p> ?。ㄒ跃幪?hào)為k=m%n的人開始): k k+1 k+2 ... n-2, n-1, 0, 1, 2, ... k-2 并且從k開始報(bào)0。&

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

43、么根據(jù)上面這個(gè)表把這個(gè)x變回去不剛好就是n個(gè)人情況的解嗎???!變回去的公式很簡(jiǎn)單,可以推出來(lái)為:x' =(x+k)%n 如何知道(n-1)個(gè)人報(bào)數(shù)的問(wèn)題的解?對(duì),只要知道(n-2)個(gè)人的解就行了。(n-2)個(gè)人的解呢?當(dāng)然是先求(n-3)的情況 ---- 這顯然就是一個(gè)倒推問(wèn)題!</p><p>  下面寫遞推公式: 令f[i]表示i個(gè)人玩游戲報(bào)m退出最后勝利者的編號(hào),最后的結(jié)果自

44、然是f[n] f[1]=0; f[i]=(f[i-1]+m)%i; (i>1) 有了這個(gè)公式,我們要做的就是從1-n順序算出f[i]的數(shù)值,最后結(jié)果是f[n]。因?yàn)閷?shí)際生活中編號(hào)總是從1開始,我們輸出f[n]+1 由于是逐級(jí)遞推,不需要保存每個(gè)f[i],程序也是異常簡(jiǎn)單:</p><p>  翻譯成C語(yǔ)言如下代碼所示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é)果(含測(cè)試方法和測(cè)試結(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 ;可以選擇編號(hào)數(shù)的上限</p><p>  PRINT1 DB 'Please input the number of the people(less than 200):$'</p><p>  ;用CX寄存器保存編號(hào)數(shù) &l

49、t;/p><p>  PRINT2 DB 'Please the flag:$';用DI寄存器保存標(biāo)志值 </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作為移動(dòng)指針 </p><p><b>  M

51、OV BX,0 </b></p><p>  MOV DX,0 ;DX作為計(jì)數(shù)器 </p><p>  CALL PRINT ;執(zhí)行該子程序后返回輸入的編號(hào)數(shù)和標(biāo)志值,分別為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的時(shí)候跳轉(zhuǎn)</p><p>  CMP AX,0FFH </p><p>  JZ L3 ;AX等于201的時(shí)候跳轉(zhuǎn)</p><p>  ADD DX,1 ;計(jì)數(shù)器加1&

53、lt;/p><p>  CMP DX,DI ;比較與標(biāo)志值是否一致</p><p>  JZ L4 ;一致則跳轉(zhuǎn)</p><p>  L2:ADD BX,2 ;取下一個(gè)數(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 ;顯示箭標(biāo)</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 ;輸入編號(hào)數(shù)n不回顯</p><p><b>  INT 21H </b></p><p>  CMP AL,'0' ;每次輸入均驗(yàn)證是否為0-9,否則輸入無(wú)效</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í)際數(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í)際數(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 ;把個(gè)位數(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 ;計(jì)算在TABLE中所對(duì)應(yīng)的偏移字節(jié)</p><p>  MOV

75、BP,AX </p><p>  MOV AX,[SI+BP] ;取出TABLE中對(duì)應(yīng)的數(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 ;輸入標(biāo)志數(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í)際數(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í)際數(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 ;把個(gè)位數(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 測(cè)試方法</p><p>  本次測(cè)試我們采用的是通過(guò)提示用語(yǔ),依次輸入編號(hào)數(shù)和標(biāo)志數(shù),都為三位數(shù),未滿100的數(shù)高位為0.</p><p>  輸入的測(cè)試數(shù)據(jù)n與m均小于200,測(cè)試類型3種</p><p>  (1)n>m 測(cè)試?yán)?n=100 m=1

91、0 (2) n<m 測(cè)試?yán)?n=50 m=100</p><p>  (3)n=m 測(cè)試?yán)?n=100 m=100 (4) 大于200的錯(cuò)誤測(cè)試</p><p>  另外測(cè)試過(guò)程中嘗試輸入除數(shù)字以外的字符是無(wú)法顯示的,這點(diǎn)無(wú)法截圖顯示。</p><p>  4.2.2 測(cè)試結(jié)果</p><p><b>  測(cè)試1<

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論