版權(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> (本科)</p><p> 課程:匯編語(yǔ)言程序設(shè)計(jì)</p><p> 學(xué)號(hào):</p><p> 姓名:</p><p> 班級(jí):</p><p> 教師:</p><p> 時(shí)間:2014.6.3~2014.6.19&l
2、t;/p><p> 計(jì)算機(jī)科學(xué)與技術(shù)系</p><p><b> 附錄:源代碼</b></p><p> 十進(jìn)制與八進(jìn)制相互轉(zhuǎn)換的程序清單:</p><p><b> ;DECIOCT</b></p><p> ;十進(jìn)制與八進(jìn)制相互轉(zhuǎn)換</p><p&
3、gt; ;首先選擇算法,1為八進(jìn)制轉(zhuǎn)十進(jìn)制,2為十進(jìn)制轉(zhuǎn)八進(jìn)制</p><p> ;***************************</p><p> DECioct SEGMENT</p><p> ASSUME CS:DECioct</p><p><b> ;主程序部分。</b>&
4、lt;/p><p> main PROC FAR</p><p> start: MOV DL,3ah ;顯示提示附</p><p> MOV AH,2</p><p> INT 21h</p><p> MOV
5、 AH,1 ;輸入選擇數(shù)字 </p><p> INT 21h</p><p> CMP AL,32h ;數(shù)字為1時(shí),執(zhí)行八進(jìn)制轉(zhuǎn)十進(jìn)制 </p><p> JE REPEat2 ;數(shù)字為2時(shí),執(zhí)行十進(jìn)制轉(zhuǎn)八進(jìn)制</p>
6、<p> REPEat1: CALL octbin ;鍵盤(pán)輸入八進(jìn)制數(shù)轉(zhuǎn)為二進(jìn)制 </p><p> CALL crlf ;回車(chē)并換行 </p><p> CALL binidec ;二進(jìn)制轉(zhuǎn)十進(jìn)制</p><p> CALL
7、 crlf ;回車(chē)并換行</p><p> JMP REPEat1 ;重復(fù)執(zhí)行 </p><p> REPEat2: CALL DECibin ;鍵盤(pán)輸入十進(jìn)制數(shù)轉(zhuǎn)為二進(jìn)制</p><p> CALL crlf ;
8、回車(chē)并換行 </p><p> CALL binioct ;二進(jìn)制轉(zhuǎn)八進(jìn)制</p><p> CALL crlf ;回車(chē)并換行 </p><p> JMP REPEat2 ;重復(fù)執(zhí)行</p>
9、<p> main ENDP</p><p> ;-----------------------------</p><p><b> ;十進(jìn)制轉(zhuǎn)二進(jìn)制</b></p><p> DECibin PROC NEAR</p><p> MOV BX
10、,0 ;將BX清零</p><p> NEwchar2: </p><p> MOV AH,1 </p><p> INT 21h ;21號(hào)中斷輸入</p><p> SUB AL,30h
11、 ;ASCII轉(zhuǎn)二進(jìn)制 </p><p> JL exit2 ;<0則跳轉(zhuǎn)</p><p> CMP AL,9d ;判斷是否>9</p><p> JG exit2 ;如果大于則不是十進(jìn)制數(shù)</p>
12、<p> CBW ;字節(jié)轉(zhuǎn)為字</p><p> XCHG AX,BX ;交換寄存器</p><p> MOV CX,10d ;把10放如CX</p><p> MUL CX
13、 ;AX擴(kuò)大10倍</p><p> XCHG AX,BX ;交換寄存器</p><p> ADD BX,AX ;原數(shù)的10倍加上輸入數(shù)</p><p> JMP NEwchar2 ;跳轉(zhuǎn)輸入</p><p> exit
14、2: </p><p><b> RET</b></p><p> DECibin ENDP</p><p> ;---------------------------------------</p><p><b> ;二進(jìn)制轉(zhuǎn)八進(jìn)制</b></p>
15、<p> binioct PROC NEAR</p><p> MOV CL,2 ;移位數(shù)字2</p><p> ROL BL,CL ;循環(huán)左移2位</p><p> MOV AL,BL ;把輸入的
16、數(shù)送入AL</p><p> AND AL,03h ;將高六位屏蔽</p><p> ADD AL,30h ;轉(zhuǎn)換為ASCII</p><p> MOV DL,AL ;輸出AL</p><p> MOV
17、 AH,2</p><p> INT 21h</p><p> MOV CH,2 ;剩余顯示2位</p><p> rotate2: </p><p> MOV CL,3 ;移位數(shù)字3</p><p>
18、 ROL BL,CL ;循環(huán)左移3位</p><p> MOV AL,BL ;把輸入的數(shù)送入AL</p><p> AND AL,07h ;將高五位屏蔽</p><p> ADD AL,30h ;
19、轉(zhuǎn)換為ASCII</p><p> MOV DL,AL ;輸出AL</p><p> MOV AH,2 </p><p> INT 21h</p><p> DEC CH ;遞減CH&l
20、t;/p><p> JNZ rotate2 ;CH不為0則跳轉(zhuǎn)</p><p><b> RET</b></p><p> binioct ENDP</p><p> ;---------------------------------------</p>
21、<p><b> ;八進(jìn)制轉(zhuǎn)二進(jìn)制</b></p><p> octbin PROC NEAR</p><p> MOV BX,0 ;BX清零</p><p> NEwchar1: </p><p> MOV
22、 AH,1 ;輸入數(shù)字</p><p> INT 21h </p><p> SUB AL,30h ;轉(zhuǎn)換為二進(jìn)制數(shù)</p><p> JL exit1</p><p> CMP AL,
23、8d ;如果<8則跳轉(zhuǎn)</p><p> JL ADD_to1</p><p> CMP AL,10h</p><p> JGE exit1</p><p> ADD_to1: </p><p> MOV
24、 CL,3 ;移位數(shù)字3</p><p> SHL BX,CL ;左移3位</p><p> MOV AH,0 ;AH清0</p><p> ADD BX,AX ;把新位移入數(shù)字</p&
25、gt;<p> JMP NEwchar1 ;跳轉(zhuǎn)繼續(xù)輸入</p><p> exit1: </p><p><b> RET</b></p><p> octbin ENDP</p><p> ;-----------
26、---------------------------</p><p><b> ;二進(jìn)制轉(zhuǎn)十進(jìn)制</b></p><p> binidec PROC NEAR</p><p> MOV CX,10000d ;除數(shù)為10000</p><p> CALL
27、 DEC_div</p><p> MOV CX,1000d ;除數(shù)為1000</p><p> CALL DEC_div</p><p> MOV CX,100d ;除數(shù)為100</p><p> CALL DEC_div<
28、;/p><p> MOV CX,10d ;除數(shù)為10</p><p> CALL DEC_div</p><p> MOV CX,1d ;除數(shù)為1</p><p> CALL DEC_div</p><p>&
29、lt;b> RET</b></p><p> ;---------------------------------------</p><p><b> ;子程序</b></p><p> DEC_div PROC NEAR</p><p> MOV AX,B
30、X ;把二進(jìn)制數(shù)移入AX</p><p> MOV DX,0 ;DX高八位清零</p><p> DIV CX ;除數(shù)CX</p><p> MOV BX,DX ;余數(shù)移入BX<
31、;/p><p> MOV DL,AL ;商移入DL</p><p> ADD DL,30h ;轉(zhuǎn)換為ASCII</p><p> MOV AH,2 ;輸出十進(jìn)制數(shù)位</p><p> INT
32、 21h</p><p><b> RET</b></p><p> DEC_div ENDP</p><p> ;---------------------------------------</p><p> binidec ENDP</p><p> ;--
33、------------------------------------- </p><p> ;回車(chē)和換行。 </p><p> crlf PROC NEAR</p><p> MOV DL,0dh ;回車(chē)</p>&
34、lt;p> MOV AH,2 ;輸出</p><p> INT 21h</p><p> MOV DL,0ah ;換行</p><p> MOV AH,2 ;輸出</p>&l
35、t;p> INT 21h</p><p><b> RET</b></p><p> crlf ENDP</p><p> ;----------------------------------------</p><p> DECioct ENDS</p&
36、gt;<p> ;*****************************************</p><p> END start</p><p> 十六進(jìn)制與十進(jìn)制相互轉(zhuǎn)換的程序清單:</p><p><b> ;DECIOCT</b></p><p> ;十進(jìn)制與十六進(jìn)制相
37、互轉(zhuǎn)換</p><p> ;首先選擇算法,1為十六進(jìn)制轉(zhuǎn)十進(jìn)制,2為十進(jìn)制轉(zhuǎn)十六進(jìn)制</p><p> ;***************************</p><p> DECioct SEGMENT</p><p> ASSUME CS:DECioct</p><p><b&
38、gt; ;主程序部分。</b></p><p> main PROC FAR</p><p> start: MOV DL,3ah ;顯示提示附</p><p> MOV AH,2</p><p> INT 21h<
39、/p><p> MOV AH,1 ;輸入選擇數(shù)字 </p><p> INT 21h</p><p> CMP AL,32h ;數(shù)字為1時(shí),執(zhí)行十六進(jìn)制轉(zhuǎn)十進(jìn)制 </p><p> JE REPEat2 ;數(shù)字
40、為2時(shí),執(zhí)行十進(jìn)制轉(zhuǎn)十六進(jìn)制</p><p> REPEat1: CALL octbin ;鍵盤(pán)輸入十六進(jìn)制數(shù)轉(zhuǎn)為二進(jìn)制 </p><p> CALL crlf ;回車(chē)并換行 </p><p> CALL binidec ;二進(jìn)制轉(zhuǎn)十進(jìn)制<
41、/p><p> CALL crlf ;回車(chē)并換行</p><p> JMP REPEat1 ;重復(fù)執(zhí)行 </p><p> REPEat2: CALL DECibin ;鍵盤(pán)輸入十進(jìn)制數(shù)轉(zhuǎn)為二進(jìn)制</p><p> CALL
42、 crlf ;回車(chē)并換行 </p><p> CALL binioct ;二進(jìn)制轉(zhuǎn)十六進(jìn)制</p><p> CALL crlf ;回車(chē)并換行 </p><p> JMP REPEat2
43、 ;重復(fù)執(zhí)行</p><p> main ENDP</p><p> ;-----------------------------</p><p><b> ;十進(jìn)制轉(zhuǎn)二進(jìn)制</b></p><p> DECibin PROC NEAR</p&g
44、t;<p> MOV BX,0 ;將BX清零</p><p> NEwchar2: </p><p> MOV AH,1 </p><p> INT 21h ;21號(hào)中斷輸入</p><p
45、> SUB AL,30h ;ASCII轉(zhuǎn)二進(jìn)制 </p><p> JL exit2 ;<0則跳轉(zhuǎn)</p><p> CMP AL,9d ;判斷是否>9</p><p> JG exit2
46、 ;如果大于則不是十進(jìn)制數(shù)</p><p> CBW ;字節(jié)轉(zhuǎn)為字</p><p> XCHG AX,BX ;交換寄存器</p><p> MOV CX,10d ;把10放如CX</p><p> M
47、UL CX ;AX擴(kuò)大10倍</p><p> XCHG AX,BX ;交換寄存器</p><p> ADD BX,AX ;原數(shù)的10倍加上輸入數(shù)</p><p> JMP NEwchar2 ;跳轉(zhuǎn)輸入
48、</p><p> exit2: </p><p><b> RET</b></p><p> DECibin ENDP</p><p> ;--------------------------------------- </p><p>
49、; ;---------------------------------------</p><p><b> 二進(jìn)制轉(zhuǎn)十六進(jìn)制</b></p><p> Binioct proc near</p><p> Mov ch,4</p><p> Rotate: mov cl,4<
50、;/p><p> Rol bx,cl</p><p> Mov al,bl</p><p> And al,0fh</p><p> Add al,30h</p><p> Cmp al,3ah</p><p> jl printit</p&
51、gt;<p> Add al,7h</p><p><b> Printit:</b></p><p> Mov dl,al</p><p> Mov ah,2</p><p> Int 21h</p><p><b> Dec c
52、h</b></p><p> Jnz rotate</p><p><b> Ret</b></p><p> Binioct endp</p><p> ---------------------------------------</p><p><b>
53、; 十六進(jìn)制轉(zhuǎn)為二進(jìn)制</b></p><p> octbin PROC NEAR</p><p> MOV BX,0 ; BX清零</p><p> NEwchar1: </p><p> MOV AH,1
54、 ;輸入數(shù)字</p><p> INT 21h </p><p> SUB AL,30h ;轉(zhuǎn)換為二進(jìn)制數(shù)</p><p> JL exit1</p><p> CMP AL,16d ;如果&
55、lt;8則跳轉(zhuǎn)</p><p> JL ADD_to1</p><p> CMP AL,10h</p><p> JGE exit1</p><p> ADD_to1: </p><p> MOV CL,4 ;移
56、位數(shù)字3</p><p> SHL BX,CL ;左移3位</p><p> MOV AH,0 ;AH清0</p><p> ADD BX,AX ;把新位移入數(shù)字</p><p> JMP NEwch
57、ar1 ;跳轉(zhuǎn)繼續(xù)輸入</p><p> exit1: </p><p><b> RET</b></p><p> octbin ENDP</p><p><b> 二進(jìn)制轉(zhuǎn)化為十進(jìn)制</b></p><
58、p> binidec PROC NEAR</p><p> MOV CX,10000d ;除數(shù)為10000</p><p> CALL DEC_div</p><p> MOV CX,1000d ;除數(shù)為1000</p><p>
59、; CALL DEC_div</p><p> MOV CX,100d ;除數(shù)為100</p><p> CALL DEC_div</p><p> MOV CX,10d ;除數(shù)為10</p><p> CALL DEC_d
60、iv</p><p> MOV CX,1d ;除數(shù)為1</p><p> CALL DEC_div</p><p><b> RET</b></p><p> ;---------------------------------------</p>
61、<p><b> ;子程序</b></p><p> DEC_div PROC NEAR</p><p> MOV AX,BX ;把二進(jìn)制數(shù)移入AX</p><p> MOV DX,0 ;DX高八位清零</
62、p><p> DIV CX ;除數(shù)CX</p><p> MOV BX,DX ;余數(shù)移入BX</p><p> MOV DL,AL ;商移入DL</p><p> ADD DL,30h
63、 ;轉(zhuǎn)換為ASCII</p><p> MOV AH,2 ;輸出十進(jìn)制數(shù)位</p><p> INT 21h</p><p><b> RET</b></p><p> DEC_div ENDP</p>
64、<p> ;---------------------------------------</p><p> binidec ENDP</p><p> ;--------------------------------------- </p><p> ;回車(chē)和換行。 </p&
65、gt;<p> crlf PROC NEAR</p><p> MOV DL,0dh ;回車(chē)</p><p> MOV AH,2 ;輸出</p><p> INT 21h</p><p&g
66、t; MOV DL,0ah ;換行</p><p> MOV AH,2 ;輸出</p><p> INT 21h</p><p><b> RET</b></p><p> crlf
67、ENDP</p><p> ;----------------------------------------</p><p> DECioct ENDS</p><p> ;*****************************************</p><p> END start</p&g
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 匯編語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)
- 匯編語(yǔ)言程序設(shè)計(jì)課程教案
- 匯編語(yǔ)言程序設(shè)計(jì)
- 匯編語(yǔ)言程序設(shè)計(jì)
- 鍵盤(pán)鋼琴匯編語(yǔ)言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 鍵盤(pán)鋼琴匯編語(yǔ)言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 鍵盤(pán)鋼琴匯編語(yǔ)言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 匯編語(yǔ)言程序設(shè)計(jì)前言
- 匯編語(yǔ)言課程設(shè)計(jì)--代碼轉(zhuǎn)換程序
- 匯編語(yǔ)言課程設(shè)計(jì) 音樂(lè)點(diǎn)播程序
- 匯編語(yǔ)言課程設(shè)計(jì)報(bào)告--模擬電壓采集電路及程序設(shè)計(jì)
- 匯編語(yǔ)言程序設(shè)計(jì)課后答案
- 實(shí)驗(yàn)一 匯編語(yǔ)言程序設(shè)計(jì)
- 匯編語(yǔ)言程序設(shè)計(jì)競(jìng)賽報(bào)告
- 匯編語(yǔ)言程序設(shè)計(jì)習(xí)題-答案
- 4匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)
- 匯編語(yǔ)言課程設(shè)計(jì)
- 匯編語(yǔ)言程序設(shè)計(jì)課后答案
- 匯編語(yǔ)言課程設(shè)計(jì)
- 匯編語(yǔ)言程序設(shè)計(jì)習(xí)題答案
評(píng)論
0/150
提交評(píng)論