微機(jī)原理實(shí)驗(yàn)報(bào)告5_第1頁(yè)
微機(jī)原理實(shí)驗(yàn)報(bào)告5_第2頁(yè)
微機(jī)原理實(shí)驗(yàn)報(bào)告5_第3頁(yè)
微機(jī)原理實(shí)驗(yàn)報(bào)告5_第4頁(yè)
微機(jī)原理實(shí)驗(yàn)報(bào)告5_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí) 驗(yàn) 報(bào) 告課程名稱:微機(jī)原理實(shí)驗(yàn) 第5次實(shí)驗(yàn)實(shí)驗(yàn)名稱:雙字節(jié)無符號(hào)數(shù)除法實(shí)驗(yàn)時(shí)間:2015年10月16日實(shí)驗(yàn)地點(diǎn):XXXXXX組號(hào)_ 學(xué)號(hào):XXXX 姓名:XXX指導(dǎo)老師:XX 評(píng)定成績(jī):_22微機(jī)原理實(shí)驗(yàn)5南京大學(xué)工程管理學(xué)院一、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī) 二、實(shí)驗(yàn)用時(shí):4小時(shí)三、實(shí)驗(yàn)內(nèi)容:1. 編寫子程序Bin2BCD,實(shí)現(xiàn)二進(jìn)制數(shù)到壓縮BCD碼的轉(zhuǎn)換。待轉(zhuǎn)換的二進(jìn)制數(shù)存放在w寄存器內(nèi),子程序調(diào)用完成后得到的BCD碼仍存放在w寄存器內(nèi)返回。例如movlw .45; w=45call Bin2BCD;nop ;w=0x45編寫Main主程序,對(duì)編寫的子程序進(jìn)行測(cè)試。2. 編寫子程序Div_16,實(shí)

2、現(xiàn)雙字節(jié)無符號(hào)數(shù)除法。自行定義變量,其中:ACCALO ;存放被除數(shù)低 8 位ACCAHI ;存放被除數(shù)高 8 位ACCBLO ;存放除數(shù) 8 位ACCCLO ;存放余數(shù) 8 位ACCCHI ;存放商 8 位四、實(shí)驗(yàn)報(bào)告要求:1. 程序框圖和源程序清單五、實(shí)驗(yàn)結(jié)果:1、程序框圖(1)編寫子程序Bin2BCD,實(shí)現(xiàn)二進(jìn)制數(shù)到壓縮BCD碼的轉(zhuǎn)換開始MA=.45,MB=0x00,COUNT=0x08RLF MA,RLF MBMAHI=MB的高4位MAHI>4?否 是MB=MB+0x30 MALO=MB的低4位MALO>4?否 是MB=MB+0x03COUNT=COUNT-1COUNT&g

3、t;0? 是 否結(jié)束(2)編寫子程序Div_16,實(shí)現(xiàn)雙字節(jié)無符號(hào)數(shù)除法開始ACCAHI=0xd9,ACCALO=0xae,ACCBLO=0x93,F(xiàn)LAG=0x00TEMP1=0x00,TEMP2=0x03,COUNT=0x08,ACCFAN=0x6dACCAHI=ACCAHI+ACCFAN有進(jìn)位? 是否TEMP1=0x03TEMP2=0x00FLAG=0x01TEMP1=0x00? 是 否RLF ACCAHIACCAHI=ACCAHI+ACCBLOTEMP1=TEMP1+TEMP2+CRLF ACCAHIACCAHI=ACCAHI+ACCFANTEMP1=TEMP1+TEMP2+CTEMP

4、1=0x00?是否TEMP2=0x03,RLF ACCCHI,INCF ACCCHI,fTEMP2=0x00, RLF ACCCHICOUNT=COUNT-1COUNT>0?是 ACCCLO=ACCAHI 否結(jié)束2、源程序清單(1)編寫子程序Bin2BCD,實(shí)現(xiàn)二進(jìn)制數(shù)到壓縮BCD碼的轉(zhuǎn)換listp=16f877A; list directive to define processor#include<p16f877A.inc> processor specific variable definitions_CONFIG _CP_OFF & _WDT_OFF &

5、; _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFFMA EQU 0x20;MAHI EQU 0x21;MB高4位MALO EQU 0x22;MB低4位MB EQU 0x23;保存最終結(jié)果TEMP1 EQU 0x24;0x03TEMP2 EQU 0x25;0x30COUNT EQU 0x26;0x07ORG 0x0000 ; 復(fù)位入口地址nop ; 兼容ICD調(diào)試工具,必須加nop goto Main ; 跳轉(zhuǎn)至Main函數(shù)Main MOVLW .76; MOVWF MA

6、; MOVLW 0x00; MOVWF MB; MOVLW 0x03; MOVWF TEMP1; MOVLW 0x30; MOVWF TEMP2; MOVLW 0x07; MOVWF COUNT; CALL Bin2BCD; RLF MA; RLF MB; NOP; GOTO $; Bin2BCD RLF MA; RLF MB; MOVLW 0x0f; ANDWF MB,w; MOVWF MALO; MOVLW 0x05; BCF STATUS,C; SUBWF MALO,f; BTFSC STATUS,C; CALL ADD_1; nop; MOVLW 0xf0; ANDWF MB,w; M

7、OVWF MAHI; MOVLW 0x50; BCF STATUS,C; SUBWF MAHI,f; BTFSC STATUS,C; CALL ADD_2; nop; DECFSZ COUNT,f; GOTO Bin2BCD; return;ADD_1 MOVF TEMP1,w; ADDWF MB,f; return;ADD_2 MOVF TEMP2,w; ADDWF MB,f; return;END;(2)編寫子程序Div_16,實(shí)現(xiàn)雙字節(jié)無符號(hào)數(shù)除法listp=16f877A; list directive to define processor#include<p16f877A.i

8、nc> processor specific variable definitions_CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFFACCAHI EQU 0x20;被除數(shù)高位ACCALO EQU 0x21;被除數(shù)低位ACCBLO EQU 0x22;除數(shù)ACCCLO EQU 0x23;余數(shù)ACCCHI EQU 0x24;商COUNT EQU 0x25;TEMP1 EQU 0x26;被除數(shù)的符號(hào)

9、位TEMP2 EQU 0x27;除數(shù)的符號(hào)位FLAG EQU 0x28;商的第九位ACCFAN EQU 0x29;除數(shù)補(bǔ)碼ORG 0x0000 ; 復(fù)位入口地址nop ; 兼容ICD調(diào)試工具,必須加nop goto Main ; 跳轉(zhuǎn)至Main函數(shù)Main MOVLW 0xae; MOVWF ACCALO; MOVLW 0xd9; MOVWF ACCAHI; MOVLW 0x93; MOVWF ACCBLO; COMF ACCBLO,w; MOVWF ACCFAN; INCF ACCFAN,f; MOVLW 0x00; MOVWF FLAG; MOVLW 0x08; MOVWF COUNT;

10、CLRF ACCCHI; CLRF ACCCLO; CLRF TEMP1; MOVLW 0x03; MOVWF TEMP2;最高位的判斷(第九位) MOVF ACCFAN,w; ADDWF ACCAHI,f; BTFSC STATUS,C; GOTO LOOP1; GOTO LOOP2;LOOP1 INCF FLAG,f; GOTO MAIN1;LOOP2 CALL NOT;MAIN1 MOVLW 0x03; ANDWF TEMP1,f; CALL Div_16; NOP; BCF STATUS,Z; MOVLW 0x03; XORWF TEMP1,w; BTFSC STATUS,Z; CAL

11、L YUSHU; NOP; MOVF ACCAHI,w; MOVWF ACCCLO; NOP; GOTO $;NOT MOVLW 0x03; MOVWF TEMP1; MOVLW 0x00; MOVWF TEMP2; RETURN;Div_16 RLF ACCALO; RLF ACCAHI; RLF TEMP1; MOVLW 0x03; ANDWF TEMP1,f; MOVLW 0x03; XORWF TEMP1,w; BTFSC STATUS,Z; GOTO LOOP3; GOTO LOOP4;LOOP3 CALL LEFT_not; GOTO MAIN2;LOOP4 CALL LEFT_y

12、es;MAIN2 DECFSZ COUNT,f; GOTO Div_16; RETURN;LEFT_yes MOVLW 0x02; XORWF TEMP1,w; BTFSC STATUS,Z; GOTO LOP1; GOTO LOP2;LOP1 MOVLW 0x00; MOVWF TEMP2; MOVF ACCBLO,w; ADDWF ACCAHI,f; BCF STATUS,C; RLF ACCCHI; MOVLW 0x03; MOVWF TEMP1; MOVLW 0x00; MOVWF TEMP2; GOTO MAIN3;LOP2 MOVLW 0x03; MOVWF TEMP2; MOVF

13、 ACCFAN,w; ADDWF ACCAHI,f; BTFSC STATUS,C; GOTO LOOP5; GOTO LOOP6;LOOP5 CALL JINWEI; GOTO MAIN3;LOOP6 CALL WUJINWEI;MAIN3 return; LEFT_not MOVLW 0x00; MOVWF TEMP2; MOVF ACCBLO,w; ADDWF ACCAHI,f; BTFSC STATUS,C; GOTO LOOP7; GOTO LOOP8;LOOP7 CALL JINWEI; GOTO MAIN4;LOOP8 CALL WUJINWEI;MAIN4 return;JIN

14、WEI BCF STATUS,C; RLF ACCCHI; INCF ACCCHI,f; MOVLW 0x00; MOVWF TEMP1; MOVLW 0x03; MOVWF TEMP2; RETURN;WUJINWEI MOVLW 0x01; XORWF TEMP1,w; BTFSC STATUS,Z; GOTO LOOP9; GOTO LOOP10;LOOP9 BCF STATUS,C; RLF ACCCHI; INCF ACCCHI,f; MOVLW 0x00; MOVWF TEMP1; MOVLW 0x03; MOVWF TEMP2; GOTO MAIN5;LOOP10 BCF STA

15、TUS,C; RLF ACCCHI; MOVLW 0x03; MOVWF TEMP1; MOVLW 0x00; MOVWF TEMP2;MAIN5 RETURN;YUSHU MOVF ACCBLO,w; ADDWF ACCAHI,f; RETURN;END;3、實(shí)驗(yàn)截圖(1)編寫子程序Bin2BCD,實(shí)現(xiàn)二進(jìn)制數(shù)到壓縮BCD碼的轉(zhuǎn)換Movlw .45; w=45call Bin2BCD;nop ;w=0x45 MA=.45; MB=0x45;(2)編寫子程序Div_16,實(shí)現(xiàn)雙字節(jié)無符號(hào)數(shù)除法ACCAHI=0xd9;被除數(shù)高8位ACCALO=0xae;被除數(shù)低8位ACCBLO=0x93;除數(shù)A

16、CCCHI=0x7b;商FLAG=0x01;商的第九位ACCCLO=0x0d;余數(shù)ACCAHI=0xd9;被除數(shù)高8位ACCALO=0xae;被除數(shù)低8位ACCBLO=0xf6;除數(shù)ACCCHI=0xe2;商FLAG=0x00;商的第九位ACCCLO=0x82;余數(shù)六、實(shí)驗(yàn)數(shù)據(jù)誤差分析及反思:1、在做雙字節(jié)無符號(hào)數(shù)除法時(shí),首先多留兩位作為被除數(shù)和除數(shù)的符號(hào)位,并計(jì)算出除數(shù)的補(bǔ)碼,然后循環(huán),對(duì)被除數(shù)的符號(hào)位進(jìn)行判斷,若為0x00,則將商左移并在最低位置1,被除數(shù)先左移一位再進(jìn)行被除數(shù)高8位和除數(shù)補(bǔ)碼相加(包括符號(hào)位);若為0x03,則將商左移,被除數(shù)先左移一位再進(jìn)行被除數(shù)高8位和除數(shù)直接相加(包括符號(hào)位),循環(huán)8次以后,被除數(shù)的高8位即為余數(shù),程序運(yùn)行結(jié)束;2、當(dāng)編譯系統(tǒng)報(bào)錯(cuò)時(shí),應(yīng)該先檢查一下程序語(yǔ)法是否存在錯(cuò)誤,如果有則優(yōu)先改正,然后再解決程序中出現(xiàn)的邏輯錯(cuò)誤,這樣做會(huì)使得程序完成工作快速而有效;3、使用反匯編工具可以很好地發(fā)現(xiàn)子程序和宏指令之間的區(qū)別,宏指令(宏擴(kuò)展)只是用原來宏定義中的若干條匯編指令代替程序中的“一條”宏指令插入到此宏指令位置處,進(jìn)行直接替換功能,而子程序是調(diào)用一個(gè)程序塊;4、由于單片機(jī)指令長(zhǎng)度的限制,所以其內(nèi)部沒有直接進(jìn)行乘法和除法的指令,此時(shí)需要程序員自行編寫相關(guān)程序,在下次調(diào)用時(shí)可以很方便地進(jìn)行使用;七、實(shí)驗(yàn)總結(jié):

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論