版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版土地租賃與使用權(quán)置換協(xié)議3篇
- 校企攜手2025年度共建紡織工藝培訓(xùn)基地合同3篇
- 二零二五年度文化藝術(shù)展覽場(chǎng)地臨時(shí)使用協(xié)議書3篇
- 2025版建筑工程碎石料采購(gòu)與安全管理合同3篇
- 2025年度個(gè)人教育培訓(xùn)機(jī)構(gòu)投資合同書(教育連鎖版)4篇
- 二零二五年深海油氣資源開發(fā)電焊工勞務(wù)分包協(xié)議3篇
- 個(gè)人出租車的對(duì)外承包協(xié)議書 3篇
- 二零二五版淋浴房環(huán)保材料生產(chǎn)與應(yīng)用合同3篇
- 二零二五年度城市道路施工監(jiān)理合同標(biāo)準(zhǔn)版4篇
- 二零二五年度健康醫(yī)療大數(shù)據(jù)合作投資合同3篇
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計(jì))(人教版2024)八年級(jí)物理下冊(cè)
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末質(zhì)量檢測(cè)數(shù)學(xué)試卷(含解析)
- 單位往個(gè)人轉(zhuǎn)賬的合同(2篇)
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國(guó)式摔跤課程學(xué)生運(yùn)動(dòng)能力測(cè)評(píng)規(guī)范
- 高危妊娠的評(píng)估和護(hù)理
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 兒童10歲生日-百日宴-滿月酒生日會(huì)成長(zhǎng)相冊(cè)展示(共二篇)
- 2023年高考全國(guó)甲卷數(shù)學(xué)(理)試卷【含答案】
評(píng)論
0/150
提交評(píng)論