匯編語(yǔ)言課程設(shè)計(jì)--在顯示器上倒顯示九九表_第1頁(yè)
已閱讀1頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p>  設(shè)計(jì)題目:在顯示器上倒顯示九九表</p><p>  初始條件: PC機(jī)上實(shí)現(xiàn)課程設(shè)計(jì)</p><p>  要求完成的主要任務(wù):</p><p>  主要任務(wù):(在規(guī)定的時(shí)間內(nèi)完成下列任務(wù))</p><p>  按“1”顯

2、示黑白色倒九九表</p><p>  按“2”倒九九表三角形邊框用彩色(顏色自定)其它黑白色</p><p>  按“3”在圖形下方顯示自己的學(xué)號(hào)和姓名(漢語(yǔ)拼音)</p><p>  按“A” 倒九九表三角形邊框用彩色自動(dòng)變色</p><p><b>  時(shí)間安排:</b></p><p>  

3、設(shè)計(jì)報(bào)告撰寫(xiě)格式要求:(按提供的設(shè)計(jì)報(bào)告統(tǒng)一格式撰寫(xiě))</p><p><b>  題目:</b></p><p><b>  2、設(shè)計(jì)目的:</b></p><p>  3、設(shè)計(jì)內(nèi)容:寫(xiě)出簡(jiǎn)要的程序功能描述、程序運(yùn)行條件--所需工具軟件、輸入/輸出描述等。</p><p>  4、程序結(jié)構(gòu):① 主

4、要的段定義說(shuō)明;</p><p> ?、?用到的子程序(宏)的功能說(shuō)明、調(diào)用關(guān)系說(shuō)明、參數(shù)傳送方式說(shuō)明等;</p><p>  ③ 主要算法描述等(各模塊功能實(shí)現(xiàn)及典型指令的應(yīng)用)。</p><p>  5、設(shè)計(jì)步驟(注明時(shí)間安排)</p><p>  6、程序流程圖、源程序(程序必須有簡(jiǎn)單注釋?zhuān)闯绦蛉籼L(zhǎng),可作為附錄)</p>

5、<p>  7、實(shí)驗(yàn)結(jié)果(輸出)</p><p>  8、其他值得說(shuō)明的內(nèi)容(1)程序結(jié)構(gòu)設(shè)計(jì)特點(diǎn);(2)設(shè)計(jì)、調(diào)試程序心得、體會(huì)或不足。</p><p>  附錄:①源程序代碼(必須有簡(jiǎn)單注釋?zhuān)?②參考文獻(xiàn)</p><p><b>  第一章 需求分析</b></p><p><b>  1.

6、1 題目:</b></p><p>  在顯示器上倒顯示九九表</p><p><b>  1.2 設(shè)計(jì)目的</b></p><p>  1. 鞏固和加深課堂所學(xué)知識(shí);</p><p>  2. 將課本上的理論知識(shí)和實(shí)際應(yīng)用有機(jī)的結(jié)合起來(lái),培養(yǎng)同學(xué)們分析和解決實(shí)際問(wèn)題的能力;</p><p

7、>  3. 通過(guò)對(duì)匯編語(yǔ)言程序代碼的閱讀、修改、設(shè)計(jì),理解和掌握復(fù)雜的匯編語(yǔ)言應(yīng)用程序的編程,提高實(shí)踐編程能力。</p><p>  1.2.1 設(shè)計(jì)內(nèi)容</p><p>  1.按“1”顯示黑白色倒九九表</p><p>  2.按“2”倒九九表三角形邊框用彩色(顏色自定)其它黑白色</p><p>  3.按“3”在圖形下方顯示自

8、己的學(xué)號(hào)和姓名(漢語(yǔ)拼音)</p><p>  4.按“A” 倒九九表三角形邊框用彩色自動(dòng)變色</p><p>  5.按其他鍵會(huì)退出。</p><p><b>  1.3程序運(yùn)行條件</b></p><p>  用匯編語(yǔ)言編寫(xiě)出完整的程序,然后編譯,分步運(yùn)行,調(diào)試每一部分的程序,然后把代碼寫(xiě)到記事本上,改一下文件的擴(kuò)展

9、名asm。然后利用tddebug來(lái)運(yùn)行。注意運(yùn)行的程序和運(yùn)行的工具要放在一個(gè)文件里。</p><p>  1.4 所需工具軟件</p><p>  所需要的工具有:tddebug.exe,edit.com,link.exe,run.exe,obj.exe 等工具。</p><p>  1.5輸入/輸出描述</p><p>  先打開(kāi)tddeb

10、ug。在運(yùn)行程序時(shí)按動(dòng)alt+c,按動(dòng)上下鍵選擇link后再輸入程序的名稱(chēng),然后按alt+c,按動(dòng)上下鍵選擇build</p><p>  all,軟件自動(dòng)添加剛剛運(yùn)行的程序名。最后生成一個(gè)obj文件和一個(gè)exe文件。打開(kāi)exe文件就可以執(zhí)行程序了,然后按動(dòng)鍵盤(pán)1,2,3,A等按鍵,實(shí)現(xiàn)以上所述功能。</p><p><b>  第二章 程序結(jié)構(gòu)</b></p

11、><p>  2.1 各模塊功能介紹</p><p>  STR標(biāo)志著函數(shù)開(kāi)始執(zhí)行;FUNTION是為了先清屏再在屏幕上打印出功能列表,提示使用者使用哪些按鍵并且換行兩次;;tiao是為了在每次按入字符時(shí)進(jìn)行判斷,然后跳到相應(yīng)的程序段上去;black,color,name,zhidong分別為按下數(shù)字鍵‘1’,‘2’,‘3’,‘A’,后程序跳到該段開(kāi)始執(zhí)行,屬于主要的分之模塊;out 輸出需要

12、輸出的字符并且判斷什么時(shí)候是彩色輸出什么時(shí)候是黑白輸出;CRLF進(jìn)行換行動(dòng)作; SPACE用于對(duì)數(shù)據(jù)輸出時(shí)輸出數(shù)據(jù)地址的空格;DISPLA實(shí)現(xiàn)將輸出的數(shù)字用ascll碼表示并且調(diào)用out子程序輸出字符;CLRSLR的功能是清標(biāo)準(zhǔn)屏子程序;WRITECC為色彩字符輸出子程序。</p><p>  2.2算法及各寄存器的功能</p><p>  在打印左邊數(shù)據(jù)時(shí),BH控制行為被乘數(shù),BL控制列

13、為乘數(shù);DL存放打印字符的ASCLL碼,DH存放打印字符的顏色值。AL當(dāng)作被乘數(shù)并且存放相乘的結(jié)果。</p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p><b>  3.1 設(shè)計(jì)步驟</b></p><p>  1分析題目,查閱相關(guān)參考資料,對(duì)設(shè)計(jì)項(xiàng)目的功能初步了解。</p><p>  

14、2完成程序的模塊化設(shè)計(jì),主要包括了解已有程序的功能,還需要哪些功能,并查閱相關(guān)資料。</p><p>  3對(duì)各個(gè)模塊進(jìn)行編程,并將其聯(lián)系到一起,整合程序并調(diào)試。這是最難也是最關(guān)鍵的一步,因?yàn)橛行┘拇嫫骺赡苡袥_突,里面的數(shù)據(jù)可能因?yàn)榱硪还δ苣K調(diào)用而改變;更要注意程序執(zhí)行過(guò)程中的跳轉(zhuǎn)情況,不然會(huì)達(dá)不到預(yù)期的效果;在實(shí)現(xiàn)基本功能后,老師提出了一些很好的建議,如:按回車(chē)鍵后程序才開(kāi)始按給定的數(shù)據(jù)去執(zhí)行,讓提示信息放在

15、更合理的位置等。雖然有些功能實(shí)現(xiàn)起來(lái)感覺(jué)比較困難,但只要多想想,多查閱一些資料,其實(shí)都是可以解決的。</p><p>  4.答辯并書(shū)寫(xiě)實(shí)驗(yàn)報(bào)告書(shū)。</p><p>  3.2程序流程圖、源程序</p><p><b>  是</b></p><p><b>  否</b></p>&

16、lt;p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p&

17、gt;<b>  否</b></p><p><b>  程序調(diào)試與操作說(shuō)明</b></p><p><b>  4.1輸出截圖</b></p><p>  圖1.運(yùn)行程序后,沒(méi)按按鍵前的界面</p><p>  圖2.按1顯示的界面</p><p> 

18、 圖3.按2顯示的界面</p><p>  圖4.按3顯示的界面</p><p>  圖5.按A后顯示的其中一個(gè)界面</p><p>  圖6.按A后顯示的一個(gè)畫(huà)面</p><p><b>  心得體會(huì)及附錄</b></p><p><b>  5.1 心得體會(huì)</b><

19、;/p><p>  通過(guò)這一次的匯編實(shí)訓(xùn),我收獲到了很多,對(duì)常用匯編指令有了深刻的認(rèn)識(shí)并且能夠合理的運(yùn)用,對(duì)功能調(diào)用指令也有了認(rèn)識(shí)和了解。首先是對(duì)匯編語(yǔ)言性質(zhì)的認(rèn)識(shí),匯編語(yǔ)言是低級(jí)語(yǔ)言,是與各種寄存器和堆棧聯(lián)系緊密的機(jī)器底層語(yǔ)言。之前在課堂上接觸到的程序沒(méi)有針對(duì)性,僅僅靠考試和平時(shí)的習(xí)題遠(yuǎn)遠(yuǎn)達(dá)不到編程訓(xùn)練的要求,經(jīng)過(guò)這次課程設(shè)計(jì)之后我才知道我們平時(shí)上課學(xué)的那只是皮毛中的皮毛,而且要學(xué)好匯編必須認(rèn)真的投入進(jìn)去。<

20、/p><p>  在我學(xué)習(xí)匯編語(yǔ)言之前我也學(xué)過(guò)其他的高級(jí)語(yǔ)言,接觸匯編之后感覺(jué)這是門(mén)復(fù)雜的課程,較之高級(jí)語(yǔ)言,它代碼量大,難懂。經(jīng)過(guò)這次課程設(shè)計(jì)之后我了解到只要認(rèn)真投入地去思考機(jī)器是如何進(jìn)行邏輯思考的并且熟悉指令,匯編語(yǔ)言的趣味性比高級(jí)語(yǔ)言更強(qiáng)。</p><p>  通過(guò)這次對(duì)匯編的深刻了解,我發(fā)現(xiàn)匯編程序其實(shí)還是很有趣味的。首先他指令的嚴(yán)謹(jǐn)性比之高級(jí)語(yǔ)言要強(qiáng)很多,而且他的指令簡(jiǎn)單,一條指令,

21、最多有一個(gè)指令操作符,目的操作數(shù)和源操作數(shù),相對(duì)高級(jí)語(yǔ)言的長(zhǎng)程序還是比較簡(jiǎn)單的,至于難懂,我認(rèn)為對(duì)匯編熟悉后,基本上還是很容易理解的。</p><p>  這次的實(shí)訓(xùn),我不光對(duì)匯編程序語(yǔ)言有了深刻的理解,而且還學(xué)習(xí)到了其他的道理。其實(shí),那些所謂的困難,當(dāng)自己深入理解后,就會(huì)覺(jué)得那些困難也不過(guò)如此。人生不要被困難給打敗,給自己信心,一定會(huì)戰(zhàn)勝困難!</p><p><b>  5.

22、2答辯記載</b></p><p><b>  附錄:</b></p><p>  DATA SEGMENT</p><p>  NUM DB 0AH,0DH,'10210411209 Liang HaiChuan',0ah,0dh,'$'</p><p>

23、  FUN DB 0AH,0DH,'enter 1-->blackprin ,2-->colorprin,3-->nameprin,A-->zhidongprin',0ah,0dh,'$'</p><p>  col DB 00001000b,00001011b,00000111b,00001111b,00001001b</p>

24、<p>  DB 00001110b,00001111b,00001100b,00001010b,00001101b</p><p>  FLA DB 00H</p><p>  DATA ENDS</p><p>  STAK SEGMENT STACK</p><p>  DW 100H DUP(?

25、)</p><p>  STAK ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,SS:STAK,DS:DATA</p><p>  START: MOV AX,DATA</p><p>  MOV DS,AX</p>&l

26、t;p>  ;========MAIN()===============================</p><p>  CALL FUNTION </p><p>  MOV AH,1</p><p><b>  INT 21H</b></p><p>  call tiao </p>

27、;<p>  ;================跳轉(zhuǎn)內(nèi)容=====================</p><p>  name: MOV DX,OFFSET NUM</p><p>  MOV AH,9</p><p>  INT 21H </p><p>  MOV AH,1</p>

28、<p><b>  INT 21H</b></p><p>  call tiao </p><p>  zhidong: MOV CL,0Ah </p><p>  ZDSTR: CALL FUNTION </p><p><b>  dec CL</

29、b></p><p>  JZ C1 </p><p>  MOV DH,CL </p><p>  MOV FLA,01H</p><p><b>  JMP STR</b></p><p>  color: MOV DH,7</p&

30、gt;<p><b>  push dx</b></p><p>  CALL FUNTION </p><p><b>  pop dx</b></p><p><b>  jmp str</b></p><p>  black: mov

31、dh,2 </p><p><b>  push dx</b></p><p>  CALL FUNTION </p><p><b>  pop dx </b></p><p><b>  JMP STR</b></p><p>  ;==

32、========提示打印和跳轉(zhuǎn)實(shí)現(xiàn)子程序=============</p><p>  FUNTION PROC NEAR </p><p>  call Clrscr</p><p>  MOV DX,OFFSET FUN</p><p>  MOV AH,9</p><p><b&g

33、t;  INT 21H</b></p><p>  call CRLF </p><p>  call CRLF</p><p><b>  ret</b></p><p>  FUNTION ENDP</p><p>  ;------------------------

34、------------</p><p>  tiao PROC NEAR</p><p><b>  push dx</b></p><p><b>  push ax</b></p><p>  cmp al,'1'</p><p>  j

35、z black</p><p>  cmp al,'2'</p><p>  jz color</p><p>  cmp al,'3'</p><p>  jz name</p><p>  cmp al,'A'</p>&l

36、t;p>  JZ zhidong</p><p><b>  pop dx</b></p><p><b>  pop ax</b></p><p><b>  ret</b></p><p>  tiao ENDP</p><p>

37、;  ;===========主干程序==================</p><p>  STR: MOV BH,09H</p><p>  LOP1: MOV BL,09H</p><p>  CMP BL,BH</p><p>  JBE LOP2</p><p>  LOP3: CALL

38、SPACE</p><p><b>  DEC BL</b></p><p>  CMP BL,BH</p><p>  JA LOP3 </p><p>  LOP2: MOV AL,BH</p><p><b>  MUL BL</b>&l

39、t;/p><p>  CALL DISPLA</p><p><b>  DEC BL</b></p><p>  JNZ LOP2</p><p>  CALL CRLF</p><p><b>  DEC BH</b></p><p>

40、  JNZ LOP1</p><p>  CMP FLA,01H</p><p><b>  JNZ C1</b></p><p>  MOV FLA,00H</p><p>  CALL DELY </p><p>  JMP ZDSTR</p><p&

41、gt;  C1: MOV AH,1</p><p>  INT 21H </p><p>  call tiao</p><p>  MOV AX,4C00H</p><p><b>  INT 21H</b></p><p>  ;========子程序=======

42、==============</p><p>  DELY PROC NEAR</p><p><b>  PUSH CX</b></p><p>  MOV CX,10000</p><p>  OP1: PUSH CX</p><p>  MOV CX,20000</p&

43、gt;<p>  OP2: NOP</p><p><b>  LOOP OP2</b></p><p><b>  POP CX</b></p><p><b>  LOOP OP1</b></p><p><b>  POP CX<

44、/b></p><p><b>  RET</b></p><p>  DELY ENDP</p><p>  ;----------換行--------------------------</p><p>  CRLF PROC NEAR</p><p><b>  

45、PUSH AX</b></p><p><b>  PUSH DX</b></p><p>  MOV AH,2</p><p>  MOV DL,0AH</p><p><b>  INT 21H</b></p><p>  MOV DL,0

46、DH</p><p><b>  INT 21H</b></p><p><b>  POP DX</b></p><p><b>  POP AX</b></p><p><b>  RET</b></p><p> 

47、 CRLF ENDP</p><p>  ;------------字符呈現(xiàn)------------------------</p><p>  DISPLA PROC NEAR</p><p><b>  PUSH DX</b></p><p>  CMP AL,10</p><

48、;p>  JAE DISP1</p><p>  MOV DL,' '</p><p>  CALL OUT</p><p>  JMP DISP2</p><p>  DISP1: MOV DL,10</p><p>  MOV AH,0</p>

49、<p><b>  DIV DL</b></p><p>  MOV DL,AL</p><p>  ADD DL,'0'</p><p>  CALL OUT</p><p>  MOV AL,AH</p><p>  DISP2: MO

50、V DL,AL</p><p>  ADD DL,'0'</p><p>  CALL OUT</p><p>  MOV DL,' '</p><p>  CALL OUT</p><p>  CALL OUT</p><p>&l

51、t;b>  POP DX</b></p><p><b>  RET</b></p><p>  DISPLA ENDP</p><p>  ;----------選擇色彩打印與黑白打印------------------------ </p><p>  OUT PROC NEAR

52、 </p><p>  CMP BH,09H</p><p>  JNZ OUT1</p><p>  CALL WriteCC</p><p>  JMP OUTEND1</p><p>  OUT1: CMP BL,01H</p><p>  JNZ O

53、UT2</p><p>  CALL WriteCC</p><p>  JMP OUTEND1 </p><p>  OUT2: CMP BH,BL</p><p>  JNZ OUTEND </p><p>  CALL WriteCC</p><p&

54、gt;  JMP OUTEND1 </p><p>  OUTEND: PUSH AX</p><p>  PUSH DX</p><p>  MOV AH,2</p><p>  INT 21H</p><p>  POP DX</p><p> 

55、 POP AX</p><p><b>  OUTEND1: </b></p><p><b>  RET</b></p><p>  OUT ENDP</p><p>  ;-------------打印空格------------------------</p>&l

56、t;p>  SPACE PROC NEAR</p><p><b>  PUSH AX</b></p><p><b>  PUSH DX</b></p><p><b>  PUSH CX</b></p><p>  MOV CX,4</p>

57、<p>  SPACELP:MOV AH,2</p><p>  MOV DL,' '</p><p><b>  INT 21H</b></p><p>  LOOP SPACELP </p><p><b>  POP CX</b></p&g

58、t;<p><b>  POP DX</b></p><p><b>  POP AX</b></p><p><b>  RET</b></p><p>  SPACE ENDP</p><p>  ;----彩色輸出字符-----入口DL=輸出字符

59、,DH=輸出顏色-----------</p><p>  WriteCC PROC near </p><p>  push ax</p><p>  push bx</p><p>  push cx</p><p>  push dx</p>

60、<p>  push si</p><p>  xor ah,ah</p><p>  mov al,dh</p><p>  mov si,ax</p><p>  mov ah,9</p><p>  mov al,dl</p><p&g

61、t;  mov bh,0</p><p>  mov bl,col[si]</p><p>  mov cx,1</p><p>  int 10h </p><p>  mov ah,3</p><p>  int 10h </p>

62、<p>  mov ah,2</p><p>  inc dl</p><p>  int 10h </p><p>  pop si</p><p>  pop dx</p><p>  pop cx</p><p>

63、  pop bx</p><p>  pop ax</p><p><b>  ret</b></p><p>  WriteCC ENDP</p><p>  ;----------------清屏程序------------------------</p><p>  Clrs

64、cr PROC near</p><p>  push ax</p><p>  push bx</p><p>  push cx</p><p>  push dx</p><p>  mov ax,0600h </p><p>  mov

65、 cx,0 </p><p>  mov dx,184Fh </p><p>  mov bh,7 </p><p>  int 10h </p><p>  mov ah,2 </p><p>  mov

66、 bh,0 </p><p>  mov dx,0</p><p>  int 10h</p><p>  pop dx</p><p>  pop cx</p><p>  pop bx</p><p>  pop ax

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論