2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(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>  課 程 設(shè) 計(jì) 報(bào) 告</p><p>  課程名稱 匯編語(yǔ)言程序設(shè)計(jì) </p><p>  課題名稱 畫(huà)脈沖波圖形 </p><p>  專 業(yè) 通信工程 </p><p>  班 級(jí)

2、 </p><p>  學(xué) 號(hào) </p><p>  姓 名 </p><p>  指導(dǎo)教師 </p><p>  201x年 06

3、 月 22 日</p><p>  一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求</p><p><b>  1.課程設(shè)計(jì)目的:</b></p><p>  《匯編語(yǔ)言程序設(shè)計(jì)》是計(jì)算機(jī)專業(yè)的重要的專業(yè)基礎(chǔ)課,通過(guò)本課程設(shè)計(jì)使學(xué)生進(jìn)一步鞏固課堂所學(xué),全面熟悉、掌握8088宏匯編語(yǔ)言程序設(shè)計(jì)的基本方法和技巧,進(jìn)一步提高編寫程序、閱讀分析程序及上機(jī)操作、調(diào)試程序的能

4、力。</p><p><b>  2.課題題目</b></p><p>  1)編寫一個(gè)時(shí)鐘程序</p><p><b>  2)畫(huà)網(wǎng)格線</b></p><p><b>  3)畫(huà)脈沖波圖形</b></p><p>  4)用“*”畫(huà)菱形框</p

5、><p><b>  5)計(jì)算比賽成績(jī)</b></p><p><b>  6)文件加密程序</b></p><p><b>  3.設(shè)計(jì)要求:</b></p><p>  1)在一周內(nèi)學(xué)生須上機(jī)16小時(shí)以上,程序調(diào)試完后,須由指導(dǎo)老師在機(jī)器上檢查運(yùn)行結(jié)果,經(jīng)教師認(rèn)可后的源程序可通

6、過(guò)打印機(jī)輸出。</p><p><b>  2)分組及安排</b></p><p>  A.每組同學(xué)必須完成所指定的題目,每個(gè)同學(xué)須自己完成設(shè)計(jì),應(yīng)有不同的思路。</p><p>  B.按學(xué)號(hào)分組,第一組為1、7、13、19、25號(hào)同學(xué),第二組為2、8、14、20、26號(hào),第三組為3、9、15、21、27號(hào),依次類推,其中第一組做第一題,第二

7、組做第二題,依次類推。</p><p>  3)按規(guī)定格式完成課程設(shè)計(jì)報(bào)告,將其打印稿(A4紙)上交給老師存檔。</p><p>  4)不得抄襲他人程序、課程設(shè)計(jì)報(bào)告,每個(gè)人應(yīng)體現(xiàn)自己的個(gè)性設(shè)計(jì),成績(jī)的考核按上機(jī)表現(xiàn)、答辯成績(jī)及課程設(shè)計(jì)說(shuō)明書(shū)來(lái)綜合評(píng)定。成績(jī)分為優(yōu)、良、中、及格、不及格五級(jí)分評(píng)定。</p><p><b>  二、進(jìn)度安排</b&g

8、t;</p><p>  第 17 周 星期 一 14 時(shí):00分—— 18 時(shí):00分</p><p>  星期二 14 時(shí):00分—— 18時(shí):00分</p><p>  星期五 14時(shí):00分—— 18時(shí):00分</p><p><b>  目 錄</b></p>

9、<p>  1. 畫(huà)脈沖波圖形1</p><p>  2. 程序總體設(shè)計(jì)方案、思路1</p><p>  3. 程序設(shè)計(jì)框圖1</p><p>  4. 源程序清單2</p><p>  5. 程序調(diào)試結(jié)果及分析9</p><p>  6. 設(shè)計(jì)總結(jié)10</p><p>&

10、lt;b>  畫(huà)脈沖波圖形</b></p><p>  要求:用戶以十進(jìn)制數(shù)形式從鍵盤輸入脈沖高度、脈沖寬度和顏色參數(shù)(格式同上)后,以屏幕中間行為脈沖中間行,從左到右、滿屏畫(huà)出相應(yīng)的脈沖波圖形。參數(shù)以十進(jìn)制數(shù)形式輸入,格式如下:</p><p>  Please enter heigth:** </p><p>  Please enter w

11、idth:** </p><p>  Please enter color:**</p><p>  程序總體設(shè)計(jì)方案、思路</p><p>  設(shè)計(jì)方案:程序由輸入、輸出、圖形顯示構(gòu)成。代碼段、數(shù)據(jù)段、堆棧段都放在同一個(gè)段內(nèi),以便調(diào)用圖形顯示。在顯示屏幕中間顯示一根線,以便確認(rèn)中間線,調(diào)用INT 10H的寫像素功能以循環(huán)畫(huà)脈沖波形圖。</p><

12、;p>  思路.:首先寫好需要調(diào)用的函數(shù),接著給出提示輸入?yún)?shù),高度,寬度以及顏色,然后將輸入的十進(jìn)制數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)。設(shè)置一個(gè)640X320的1 6色文本顯示方式,將鍵盤讀取的數(shù)據(jù)帶入圖形顯示文本,顯示脈沖波形圖。</p><p><b>  程序設(shè)計(jì)框圖</b></p><p><b>  圖3.1總體流程圖</b></p&g

13、t;<p><b>  源程序清單</b></p><p>  Code Segment</p><p>  Assume CS:Code,DS:Code</p><p>  CR EQU 000DH</p><p>  LF EQU 000AH</p>

14、<p>  KBBack EQU 0008H</p><p>  ; -------------------------------------</p><p>  ; 功能:顯示指定地址(Str_Addr)的字符串</p><p><b>  ; 入口:</b></p><p>  ; Str

15、_Addr=字符串地址(要求在數(shù)據(jù)段)</p><p>  ; 用法: Output Str_Addr</p><p>  ; 用法舉例:Output PromptStr</p><p>  Output MACRO Str_Addr</p><p>  lea dx,Str_Addr</p><p><b&

16、gt;  mov ah,9</b></p><p><b>  int 21h</b></p><p><b>  EndM</b></p><p>  ; ------------------------------------- </p><p>  ; 功能:輸出回車換行<

17、;/p><p>  Enter_CTLF proc Near</p><p><b>  push ax </b></p><p><b>  push dx</b></p><p>  mov ah,02h</p><p>  mov dl,0dh </p>

18、<p><b>  int 21h</b></p><p>  mov dl,0ah</p><p><b>  int 21h </b></p><p><b>  pop dx</b></p><p><b>  pop ax</b&

19、gt;</p><p><b>  ret</b></p><p>  Enter_CTLF endp </p><p>  ; -------------------------------------</p><p>  ; 功能:取光標(biāo)位置</p><p><b>  ; 入口:無(wú)

20、</b></p><p>  ; 出口:DH=行號(hào),DL=列號(hào)</p><p>  GetCursor Proc Near</p><p><b>  PUSH AX</b></p><p><b>  PUSH BX</b></p><p><b&g

21、t;  PUSH CX</b></p><p>  XOR BX,BX</p><p>  MOV AH,3</p><p><b>  INT 10H</b></p><p>  MOV Cursor_Row,DH</p><p>  MOV Cursor_Col,D

22、L</p><p><b>  POP CX</b></p><p><b>  POP BX</b></p><p><b>  POP AX</b></p><p><b>  RET</b></p><p>  Cu

23、rsor_Row DB ?</p><p>  Cursor_Col DB ?</p><p>  GetCursor EndP</p><p>  ; -------------------------------------</p><p>  ; 功能:置光標(biāo)位置</p><p>  ; 入口:Cursor

24、_Row=行坐標(biāo); Cursor_Col: 列坐標(biāo))</p><p>  SetCursor Proc Near</p><p><b>  PUSH CX</b></p><p><b>  PUSH BX</b></p><p><b>  PUSH AX</b>&

25、lt;/p><p>  MOV DH,Cursor_Row</p><p>  MOV DL,Cursor_Col</p><p>  XOR BX,BX</p><p>  MOV AH,2</p><p><b>  INT 10H</b></p><p&g

26、t;<b>  POP AX</b></p><p><b>  POP BX</b></p><p><b>  POP CX</b></p><p><b>  RET</b></p><p>  SetCursor EndP</p&

27、gt;<p>  ;-------------------------------------</p><p>  ; 功能:鍵盤輸入一個(gè)N位的十進(jìn)制數(shù)字,將其轉(zhuǎn)換成二進(jìn)制數(shù)并保存在指定的內(nèi)存單元。</p><p>  ; 入口:N=數(shù)字位數(shù);di=保存輸入的數(shù)字首地址</p><p>  ; 出口:轉(zhuǎn)換后的二進(jìn)制數(shù)保存在di所指的單元</p&g

28、t;<p>  Input_Digit Proc Near</p><p><b>  push dx</b></p><p><b>  push cx</b></p><p><b>  push bx</b></p><p><b>  push

29、di</b></p><p>  lea di,@@Save_Tmp</p><p><b>  push di</b></p><p><b>  cld</b></p><p><b>  mov cx,N</b></p><p>&

30、lt;b>  push cx</b></p><p>  @@Input: call GetCursor ;取光標(biāo)位置</p><p>  mov ah,1 ;從鍵盤接受一個(gè)字符</p><p><b>  int 21h</b></p><p>  cmp al,CR ;若鍵入的是回車,已經(jīng)鍵入

31、的數(shù)字不足N位</p><p>  jz @@ASC_Dec ;轉(zhuǎn)去處理已經(jīng)鍵入的數(shù)字</p><p>  cmp al,KBBack</p><p>  jz @@KB_Back ;若是回空鍵,重新輸入</p><p>  cmp al,'0'</p><p>  jb @@KBBack ;

32、若低于數(shù)字'0',重新輸入</p><p>  cmp al,'9'</p><p>  ja @@KBBack ;若低于數(shù)字'9',重新輸入</p><p>  jmp @@Save_Dig</p><p>  @@KB_Back: dec Cursor_Col</p>

33、<p><b>  inc cx</b></p><p><b>  dec di</b></p><p>  @@KBBack: call SetCursor ;置光標(biāo)位置</p><p>  jmp @@Input</p><p>  @@Save_Dig: and al,0f

34、h ;轉(zhuǎn)換成二進(jìn)制數(shù)</p><p><b>  stosb ;保存</b></p><p>  loop @@Input ;接受下一個(gè)數(shù)字</p><p>  @@ASC_Dec: mov ax,cx</p><p><b>  pop cx</b></p><p>&

35、lt;b>  pop si</b></p><p>  sub cx,ax ;實(shí)際輸入的數(shù)字位數(shù)</p><p>  xor bp,bp</p><p>  xor dx,dx</p><p>  xor ax,ax</p><p>  jcxz @@Save_Ret ;若直接回車,沒(méi)有輸入

36、任何數(shù)字,按輸入'0'處理</p><p>  dec cx ;實(shí)際輸入的數(shù)字位數(shù)減1,準(zhǔn)備把輸入的這一串?dāng)?shù)字轉(zhuǎn)換成二進(jìn)制數(shù)</p><p>  jcxz @@One_Digit ;若輸入的數(shù)字只有一位,轉(zhuǎn)去直接保存這個(gè)二進(jìn)制數(shù)</p><p>  mov bx,10</p><p>  @@Mul_Ten: lodsb&

37、lt;/p><p><b>  cbw</b></p><p>  add ax,bp</p><p><b>  mul bx</b></p><p>  mov bp,ax</p><p>  loop @@Mul_Ten</p><p>  @

38、@One_Digit:lodsb</p><p><b>  cbw</b></p><p>  add ax,bp</p><p>  @@Save_Ret: pop di</p><p><b>  stosw</b></p><p><b>  pop

39、bx</b></p><p><b>  pop cx</b></p><p><b>  pop dx</b></p><p><b>  ret</b></p><p>  @@Save_Tmp db 16 dup(?)</p><p&

40、gt;  Input_Digit EndP</p><p>  ; -------------------------------------</p><p>  Prompt_Str1 db 'Please input pulse hight: $' ;提示輸入脈沖高度</p><p>  Prompt_Str2 db 'Please

41、input pulse width: $' ;提示輸入脈沖寬度</p><p>  Prompt_Str3 db 'Please input line colour: $' ;提示輸入波線顏色</p><p>  N equ 3 ;輸入十進(jìn)制數(shù)值位數(shù)</p><p>  Hight_Pulse dw ? ;脈沖高度</p>

42、;<p>  Width_Pulse dw ? ;脈沖寬度</p><p>  Colou_Pulse dw ? ;波線顏色</p><p>  Start: push cs</p><p><b>  pop ds</b></p><p><b>  push cs</b>

43、</p><p>  pop es ;使數(shù)據(jù)段、附加段與代碼段同段</p><p>  Output Prompt_Str1 ;提示輸入脈沖高度</p><p>  lea di,Hight_Pulse ;脈沖高度</p><p>  call Input_Digit ;鍵盤輸入一個(gè)3位的十進(jìn)制數(shù)字,將其轉(zhuǎn)換成二進(jìn)制數(shù)并保存在指定的內(nèi)存單

44、元</p><p>  call Enter_CTLF ;輸出一個(gè)回車、換行</p><p>  Output Prompt_Str2 ;提示輸入脈沖寬度</p><p>  lea di,Width_Pulse ;脈沖寬度</p><p>  call Input_Digit</p><p>  call Ente

45、r_CTLF ;輸出一個(gè)回車、換行</p><p>  Output Prompt_Str3 ;提示輸入波線顏色</p><p>  lea di,Colou_Pulse ;波線顏色</p><p>  call Input_Digit</p><p>  mov ax,12h ;設(shè)置640x480,16色圖形顯示方式</p>

46、<p><b>  int 10h</b></p><p>  ; 以屏幕中間行為脈沖中間行,畫(huà)一條橫線</p><p>  mov bp,640 ;橫向點(diǎn)數(shù)</p><p>  xor bh,bh</p><p>  xor cx,cx ;橫向起始點(diǎn)</p><p>  m

47、ov dx,480 ;圖形顯示方式,一列480點(diǎn)</p><p>  shr dx,1 ;縱向起始點(diǎn)</p><p>  mov ah,0ch</p><p>  mov al,byte ptr Colou_Pulse ;取像素顏色</p><p>  L0: int 10h ;寫一個(gè)指定顏色的像素</p><

48、;p>  inc cx ;橫向向右增值</p><p><b>  dec bp</b></p><p>  test bp,bp</p><p><b>  jnz L0</b></p><p>  ; 從左到右、滿屏畫(huà)出相應(yīng)的脈沖波圖形。</p><p>  

49、mov bp,Hight_Pulse ;取脈沖高度</p><p>  xor cx,cx ;橫向起始點(diǎn)</p><p>  mov dx,480 ;圖形顯示方式,一列480點(diǎn)</p><p>  shr dx,1 ;縱向起始點(diǎn)</p><p>  L1: int 10h ;寫一個(gè)指定顏色的像素</p><p

50、>  dec dx ;縱向向上減值</p><p><b>  dec bp</b></p><p>  test bp,bp</p><p><b>  jnz L1</b></p><p>  Pulse_Wave: mov bp,Width_Pulse ;取脈沖寬度,一個(gè)脈沖周期

51、</p><p>  L2: int 10h ;寫一個(gè)指定顏色的像素</p><p>  inc cx ;橫向向右增值</p><p>  cmp cx,639</p><p>  ja Pause ;若到達(dá)屏幕最右邊,跳出循環(huán),等待用戶按鍵,結(jié)束程序</p><p><b>  dec bp&

52、lt;/b></p><p>  test bp,bp</p><p><b>  jnz L2</b></p><p>  mov bp,Hight_Pulse ;取脈沖高度</p><p><b>  shl bp,1</b></p><p>  L3:

53、int 10h ;寫一個(gè)指定顏色的像素</p><p>  inc dx ;縱向向下增值</p><p><b>  dec bp</b></p><p>  test bp,bp</p><p><b>  jnz L3</b></p><p>  mov bp,

54、Width_Pulse ;取脈沖間斷寬度</p><p>  L4: int 10h ;寫一個(gè)指定顏色的像素</p><p>  inc cx ;橫向向右增值</p><p>  cmp cx,639</p><p>  ja Pause ;若到達(dá)屏幕最右邊,跳出循環(huán),等待用戶按鍵,結(jié)束程序</p><p>

55、;<b>  dec bp</b></p><p>  test bp,bp</p><p><b>  jnz L4</b></p><p>  mov bp,Hight_Pulse ;取脈沖高度</p><p><b>  shl bp,1</b></p>

56、;<p>  L5: int 10h ;寫一個(gè)指定顏色的像素</p><p>  dec dx ;縱向向上減值</p><p><b>  dec bp</b></p><p>  test bp,bp</p><p><b>  jnz L5</b></p>

57、<p>  jmp Pulse_Wave ;一個(gè)脈沖周期結(jié)束,進(jìn)行下一個(gè)脈沖周期</p><p>  Pause: mov ah,1 ;暫停,按任意鍵結(jié)束程序</p><p><b>  int 21h</b></p><p>  mov ah,3 ;設(shè)置80x25,16色文本顯示方式</p><p&g

58、t;<b>  int 10h</b></p><p>  Exit_Proc: mov ah,4ch ;結(jié)束程序</p><p><b>  int 21h</b></p><p>  Code ENDS</p><p>  END Start ;編譯到此結(jié)束</p>&

59、lt;p><b>  程序調(diào)試結(jié)果及分析</b></p><p>  設(shè)置高度為100,寬度為100,以藍(lán)色顯示的脈沖圖案。</p><p><b>  圖5.1 參數(shù)設(shè)置</b></p><p>  以640x480,16色的顯示當(dāng)輸入的參數(shù)的脈沖波形圖。當(dāng)輸入的參數(shù)過(guò)大,屏幕無(wú)法準(zhǔn)確的顯示,這時(shí)只要把參數(shù)適當(dāng)?shù)恼{(diào)

60、下,就可以看到完整的圖案。</p><p>  圖5.2 脈沖波形圖</p><p><b>  設(shè)計(jì)總結(jié)</b></p><p>  通過(guò)此次的課程設(shè)計(jì),對(duì)80x86匯編語(yǔ)言程序設(shè)計(jì)有了更深入的了解。將課堂上所學(xué)的知識(shí)運(yùn)用到實(shí)踐當(dāng)中,了解了實(shí)踐的重要性,加強(qiáng)了自己的動(dòng)手能力,也知道自己對(duì)學(xué)到的相關(guān)知識(shí)沒(méi)有很好的掌握。在做課設(shè)中遇到了很多問(wèn)題,

61、通過(guò)詢問(wèn)老師,網(wǎng)上查閱資料以及同學(xué)的幫助下,問(wèn)題得以解決。這次課程設(shè)計(jì)使我學(xué)到了很多東西,受益匪淺。</p><p>  總的來(lái)說(shuō),此次的課程設(shè)計(jì)算是順利完成,匯編語(yǔ)言是面向機(jī)器的程序設(shè)計(jì)語(yǔ)言,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)是無(wú)處不在,因此掌握一些編程語(yǔ)言對(duì)我們來(lái)說(shuō)是基本的要求,相對(duì)于高級(jí)語(yǔ)言難學(xué),難用,適用范圍小,雖然簡(jiǎn)單,但是過(guò)于靈活,學(xué)習(xí)過(guò)高級(jí)語(yǔ)言的人去學(xué)習(xí)匯編比一開(kāi)始學(xué)匯編的人難得多,但是學(xué)過(guò)匯編的人學(xué)習(xí)高

溫馨提示

  • 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)論