版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 匯編語(yǔ)言課程設(shè)計(jì)《定時(shí)顯示系統(tǒng)》
- 匯編語(yǔ)言課程設(shè)計(jì)---系統(tǒng)時(shí)間顯示
- 《匯編語(yǔ)言》課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間
- 匯編語(yǔ)言課程設(shè)計(jì)報(bào)告---顯示系統(tǒng)時(shí)間
- 匯編語(yǔ)言課程設(shè)計(jì)--用匯編語(yǔ)言實(shí)現(xiàn)顯示系統(tǒng)時(shí)間的程序
- 匯編語(yǔ)言課程設(shè)計(jì)----顯示系統(tǒng)當(dāng)前時(shí)間與日期
- 匯編語(yǔ)言課程設(shè)計(jì)--“霓虹燈”的模擬顯示
- 匯編語(yǔ)言課程設(shè)計(jì)顯示系統(tǒng)當(dāng)前時(shí)間與日期
- dsp課程設(shè)計(jì)---液晶顯示器控制顯示
- dsp課程設(shè)計(jì)---液晶顯示器控制顯示
- 開(kāi)關(guān)門(mén)顯示器課程設(shè)計(jì)
- 顯示器運(yùn)輸包裝課程設(shè)計(jì)
- 課程設(shè)計(jì)---液晶顯示器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--漢字液晶顯示器顯示
- 匯編語(yǔ)言課程設(shè)計(jì)
- 匯編語(yǔ)言課程設(shè)計(jì)
- 流速自動(dòng)采集及顯示器設(shè)計(jì)課程設(shè)計(jì)
- 匯編語(yǔ)言課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)--點(diǎn)陣顯示器報(bào)告
- 諾基亞5110液晶顯示器應(yīng)用課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論