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

下載本文檔

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

文檔簡介

1、<p><b>  打字計(jì)時(shí)練習(xí)</b></p><p><b>  1設(shè)計(jì)目的</b></p><p>  通過課程設(shè)計(jì),主要達(dá)到以下目的:1.使學(xué)生增進(jìn)對匯編語言的認(rèn)識,加強(qiáng)用匯編語言編程的能力。2.使學(xué)生掌握匯編語言的中斷調(diào)用功能的應(yīng)用,可以用匯編語言調(diào)用各種中斷 調(diào)用功能,并由此實(shí)現(xiàn)對硬件的控制等。3.

2、使學(xué)生了解和掌握匯編語言程序設(shè)計(jì)過程、方法及實(shí)現(xiàn),鞏固微機(jī)原理課程上學(xué)到的知識。4.通過課程設(shè)計(jì)可以使我們更加了解書上的知識,了解書上的語句并且能夠應(yīng)用自己的程序中.5.進(jìn)一步掌握屏幕輸出顯示的設(shè)計(jì)方法.</p><p><b>  2設(shè)計(jì)思想</b></p><p>  題目的要求是通過系統(tǒng)時(shí)鐘得到輸入30個(gè)字符所需的時(shí)間間隔,并在屏幕上顯示輸入字符和時(shí)間間隔。

3、用匯編語言實(shí)現(xiàn)打字程序的思想,首先用指針保存30個(gè)測試用的字符,接著用DOS的21H中斷類型的09H功能顯示字符串來顯示主界面;調(diào)用DOS的21H的01H功能,接受從鍵盤輸入的第一個(gè)字符字符,然后調(diào)用DOS的21H的2cH功能獲取系統(tǒng)時(shí)間,將系統(tǒng)時(shí)間存入TIMEBUFF中。接著將輸入的剩余29個(gè)字符放在循環(huán)中,待輸入30個(gè)字符完畢后再次調(diào)用DOS的21H的2cH功能獲取系統(tǒng)時(shí)間,將此次的時(shí)間運(yùn)算后放入dx中,將開始輸入的時(shí)間放入ax中,

4、將兩次的時(shí)間差放入cx中,其中ch放秒鐘十位,cl放個(gè)位。調(diào)用比較輸入的字符是否正確的函數(shù),通過DOS的21H的02H功能調(diào)用顯示輸入的字母和其中輸錯字母的個(gè)數(shù),然后顯示時(shí)間間隔。調(diào)用DOS的21H中斷類型的07H,當(dāng)接下來輸入如果是”q”就退出,是其他字符就清空錯誤的數(shù)目還有30個(gè)字符的指針,開始新一輪的打字計(jì)時(shí)。</p><p><b>  3軟件流程圖</b></p>&

5、lt;p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b>  4程序</b></p><

6、p>  DATA segment</p><p>  TIPdb0DH,0AH,'-----------now begin-----------',0DH,0AH,'$'</p><p>  TIMEBUFF1 db 0 ;保存考試輸入時(shí)的分鐘數(shù) </p><p>  TI

7、MEBUFF2 db 0 ;保存開始輸入時(shí)的秒</p><p>  STR1 db 'abcdefghijklmnopqrstuvwxyzabcd',0DH,0AH,'$' ;30個(gè)字符</p><p>  ERRORFLAG db 0 ;保存30個(gè)

8、字符的指針</p><p>  ERROR db 0 ;保存錯誤的數(shù)目 </p><p>  TIMEIS db 0DH,0AH,'the time is ','$' </p><p>  ERRORIS db

9、 0DH,0AH,'the error is ','$'</p><p>  RESTART db 0DH,0AH,'>>press q to exit or others to restart','$'</p><p><b>  DATA ends</b></p><p

10、>  ACK segment</p><p>  dw 20 dup(0)</p><p><b>  ACK ends</b></p><p>  CODE segment</p><p>  assume cs:CODE,ds:DATA,ss:ACK</p><p><b> 

11、 start:</b></p><p>  mov ax, ACK</p><p>  mov ss, ax</p><p>  mov sp, 40</p><p>  mov ax, DATA ;屏幕初始顯示</p><p>  mov ds, ax</p>&

12、lt;p>  mov dx, offset TIP</p><p><b>  mov ah, 9</b></p><p><b>  int 21H</b></p><p>  mov dx, offset STR1 ;顯示30個(gè)字符</p><p><b>  m

13、ov ah, 9</b></p><p><b>  int 21H</b></p><p>  mov ah, 1 ;調(diào)用1號中斷接受第一個(gè)字符</p><p><b>  int 21h</b></p><p>  call Compare</p><p

14、>  mov ah, 2CH ;調(diào)用2CH號中斷,獲取系統(tǒng)時(shí)間</p><p><b>  int 21H</b></p><p>  mov TIMEBUFF1, cl ;將系統(tǒng)時(shí)間存入TIMEBUFF中</p><p>  mov TIMEBUFF2, dh </p><p>  mov c

15、x, 29 ;剩余的29個(gè)字符放在循環(huán)中</p><p>  loops:mov ah,1</p><p><b>  int 21H</b></p><p>  call Compare</p><p>  loop loops</p><p>  mov ah, 2CH

16、 ;輸入完畢,再次獲取系統(tǒng)時(shí)間</p><p><b>  int 21H</b></p><p>  mov al, cl ;將此次的時(shí)間運(yùn)算后放入dx中 </p><p>  mov cl, 60</p><p><b>  mul cl</b></p&

17、gt;<p><b>  mov cl, 8</b></p><p>  shr dx, cl</p><p>  add ax, dx</p><p>  mov dx, ax</p><p>  mov al, TIMEBUFF1 ;將開始輸入的時(shí)間放入ax中 </p><

18、p>  mov cl, 60</p><p><b>  mul cl</b></p><p>  xor cx, cx</p><p>  mov cl, TIMEBUFF2</p><p>  add ax, cx</p><p>  sub dx, ax ;將兩

19、次的時(shí)間差放入cx中,其中ch放秒鐘十位,cl放個(gè)位</p><p>  mov ax, dx</p><p>  mov cl, 10</p><p><b>  div cl</b></p><p>  mov ch, al</p><p>  mov cl, ah</p>&l

20、t;p>  mov ax, DATA ;顯示“the time is”</p><p>  mov dx, offset TIMEIS</p><p><b>  mov ah, 9</b></p><p><b>  int 21H</b></p><p>  m

21、ov dl, ch ;顯示時(shí)間間隔 </p><p>  add dl, 48</p><p><b>  mov ah,2</b></p><p><b>  int 21h</b></p><p>  mov dl, cl</p><p

22、>  add dl, 48</p><p><b>  mov ah,2</b></p><p><b>  int 21h</b></p><p>  mov ax, DATA ;顯示“the error is”</p><p>  mov dx, offset

23、 ERRORIS</p><p><b>  mov ah, 9</b></p><p><b>  int 21H</b></p><p>  xor dx,dx ;顯示error </p><p>  mov dl, ERROR</p><

24、p>  mov ax, dx</p><p>  mov cl, 10</p><p><b>  div cl</b></p><p>  mov cx, ax</p><p>  mov dl, al</p><p>  add dl, 48</p><p>&

25、lt;b>  mov ah,2</b></p><p><b>  int 21h</b></p><p>  mov dl, ch</p><p>  add dl, 48</p><p><b>  mov ah,2</b></p><p><b

26、>  int 21h</b></p><p>  mov ax, DATA ;顯示“press q to exit or others to restart'</p><p>  mov dx, offset RESTART</p><p><b>  mov ah, 9</b></p

27、><p><b>  int 21H</b></p><p>  mov ah,7 ;如果是q就退出,其他的繼續(xù) </p><p><b>  int 21h</b></p><p>  cmp al,'q'</p><p>

28、<b>  jne RE</b></p><p><b>  jmp KOUT</b></p><p>  RE:mov bl, ERRORFLAG ;如果繼續(xù)的話清空錯誤的數(shù)目還有30個(gè)字符的指針 </p><p>  mov bh, ERROR</p><p><b

29、>  mov bx, 0</b></p><p>  mov ERRORFLAG, bl</p><p>  mov ERROR, bh</p><p><b>  jmp start</b></p><p>  KOUT:mov ah, 4CH</p><p><b>

30、;  int 21h</b></p><p>  Compare: ;比較輸入的字符是否正確的函數(shù) </p><p><b>  push bx</b></p><p><b>  push cx</b></p><p><b>  p

31、ush dx</b></p><p><b>  xor bx,bx</b></p><p>  mov bl, ERRORFLAG</p><p>  mov dl, ERROR</p><p>  mov cl, STR1[bx]</p><p>  cmp al, cl</

32、p><p><b>  je next</b></p><p><b>  inc dl</b></p><p>  next:add bl, 1</p><p>  mov ERROR,dl</p><p>  mov ERRORFLAG,bl</p><p

33、><b>  pop dx</b></p><p><b>  pop cx</b></p><p><b>  pop bx</b></p><p><b>  ret </b></p><p><b>  CODE ends</b

34、></p><p><b>  end start</b></p><p><b>  5調(diào)試運(yùn)行結(jié)果</b></p><p>  初步調(diào)試的時(shí)候遇到很多錯誤,后來經(jīng)過檢查發(fā)現(xiàn)是因?yàn)檩斎敕ú粚斎氲臉?biāo)點(diǎn)計(jì)算機(jī)無法識別,從而不能編譯成功。改正后可以正確的編譯連接運(yùn)行,屏幕上顯示將要測試的30個(gè)字符,輸入30個(gè)字符結(jié)束后

35、,屏幕上顯示出輸入的字符和所用時(shí)間間隔,沒有其他功能,并且程序運(yùn)行后只能測試一次。為了使功能更加完整,后來在程序中加入了比較字符串是否相同并統(tǒng)計(jì)不同字符個(gè)數(shù)的程序,而且還建立循環(huán),使程序運(yùn)行后可以多次測試,并根據(jù)測試者的輸入選擇是否結(jié)束運(yùn)行。</p><p>  運(yùn)行修改后的完整程序,首先屏幕上顯示將要測試的30個(gè)字符,輸入30個(gè)字符結(jié)束后,屏幕上顯示出輸入的字符、所用時(shí)間間隔以及打錯字符的個(gè)數(shù)。如果接下來輸入”

36、q”,程序就會停止運(yùn)行,如果輸入的是其他字符,將會進(jìn)入下一輪的測試,屏幕再次顯示將要測試的30個(gè)字符,如圖5-1所示:</p><p><b>  圖5-1調(diào)試界面</b></p><p><b>  6心得體會</b></p><p>  這次微機(jī)原理課程設(shè)計(jì)歷時(shí)兩個(gè)星期,在整整兩星期的日子里,可以說得是苦多于甜,但是可

37、以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。以前在上課的時(shí)候,老師經(jīng)常強(qiáng)調(diào)在寫一個(gè)程序的時(shí)候,一定要事先把程序原理方框圖化出來,但是我開始總覺得這樣做沒必要,很浪費(fèi)時(shí)間。但是,這次課程設(shè)計(jì)完全改變了我以前的那種錯誤的認(rèn)識,以前我接觸的那些程序都是很短、很基礎(chǔ)的,但是在課程設(shè)計(jì)中碰到的那些需要很多代碼才能完成的任務(wù),畫程序方框圖是很有必要的。因?yàn)橥ㄟ^程序方框圖,在做設(shè)計(jì)的過程中,我

38、們每一步要做什么,每一步要完成什么任務(wù)都有一個(gè)很清楚的思路,而且在程序測試的過程中也有利于查錯。</p><p>  其次,以前對于編程工具的使用還處于一知半解的狀態(tài)上,但是經(jīng)過一段上機(jī)的實(shí)踐,對于怎么去排錯、查錯,怎么去看每一步的運(yùn)行結(jié)果,怎么去了解每個(gè)寄存器的內(nèi)容以確保程序的正確性上都有了很大程度的提高。</p><p>  通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理

39、論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。</p><p>  這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在老師指導(dǎo)和同

40、學(xué)幫助下,終于游逆而解。同時(shí),在徐老師的身上我學(xué)得到很多實(shí)用的知識,在次我表示感謝!同時(shí),對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!</p><p><b>  參考文獻(xiàn)</b></p><p>  溫冬蟬、沈美明,《IBM PC匯編語言程序設(shè)計(jì)》(第2版),北京:清華大學(xué)出版社,2002.3</p><p>  溫冬蟬

41、、沈美明,張赤紅,<<IBM PC匯編語言程序設(shè)計(jì)試驗(yàn)設(shè)計(jì)>>,北京:清華大學(xué)出版社.1992.9月第一次出版</p><p>  齊志儒、高福祥《匯編語言程序設(shè)計(jì)》,第2版,東北大學(xué)出版社,2001.1</p><p>  龔尚?!段⑿陀?jì)算機(jī)匯編語言程序設(shè)計(jì)》,第1版,西安電子科技大學(xué)出版社,2003.7</p><p>  朱玉

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論