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

下載本文檔

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

文檔簡(jiǎn)介

./實(shí)驗(yàn)名稱Keil的使用與匯編語(yǔ)言上機(jī)操作成績(jī)?nèi)蝿?wù)要求1.掌握Keil環(huán)境的使用1字節(jié)拆分、合并:調(diào)試e421.asm程序,觀察相關(guān)寄存器和單元的內(nèi)容.2數(shù)據(jù)塊填充:調(diào)試fill.asm程序,觀察相關(guān)寄存器和單元的內(nèi)容.2.編寫多個(gè)十六位數(shù)的加法程序有4個(gè)十六位無(wú)符號(hào)數(shù),連續(xù)存放在20H開(kāi)始的片上數(shù)據(jù)區(qū)中,低八位先存,高八位在后.要求:和存于R3〔高八位和R2〔低八位,進(jìn)位位存于R4.設(shè)計(jì)思路實(shí)驗(yàn)一已給出程序代碼,不需要設(shè)計(jì),下面闡明實(shí)驗(yàn)二,編寫多個(gè)十六位數(shù)的加法程序的設(shè)計(jì)思路.十六位數(shù)相加,先是低八位相加,低八位相加不用考慮進(jìn)位,所以,此時(shí)用ADD指令,但因?yàn)樵诿看窝h(huán)時(shí)都有CLRC操作,所以也可以用ADDC指令.而且題目中要求將和的低八位存于R2,所以將每次低八位相加的和存于R2,然后從R2中取值求和.低八位相加后高八位相加,因?yàn)楸仨毺幚淼臀幌嗉拥倪M(jìn)位問(wèn)題,所以必須用ADDC指令.而且因?yàn)橐蟾呶缓痛嬗赗3,所以將每次計(jì)算的和存于R3,每次從R3中取數(shù)跟新的高八位相加.另外考慮到高位進(jìn)位的問(wèn)題,所以必須安排一個(gè)地址單元或者寄存器存放最高位,也正是因?yàn)槊看窝h(huán)中,進(jìn)位都會(huì)被處理,所以每次循環(huán)開(kāi)始要CLRC.資源分配4個(gè)十六位無(wú)符號(hào)數(shù),連續(xù)存放在20H開(kāi)始的片上數(shù)據(jù)區(qū)中,低八位先存,高八位在后.和存于R3〔高八位和R2〔低八位,進(jìn)位位存于R4.R0和R1作為數(shù)據(jù)指針,存放低八位和高八位的地址.循環(huán)次數(shù)存于R5.流程圖源代碼〔含文件頭說(shuō)明、語(yǔ)句行注釋四個(gè)十六位數(shù)的加法程序:Filename:3.asmDescription:四個(gè)十六位數(shù)的加法程序Date:2016/09/23Designedby:陳鈺Sourceused:R0,R1數(shù)據(jù)指針R2,R3,R4,R5寄存器20H-27HORG 0000H LJMPMAIN ORG0100HMAIN: MOVR0,#20H MOVR1,#21H;設(shè)數(shù)據(jù)指針 MOVR2,20H MOVR3,21H;R2←<20H>,R3←<21H> MOVR4,#00H;最高位進(jìn)位清零 MOVR5,#03H;設(shè)置循環(huán)次數(shù)LOOP: CLRC;進(jìn)位清零 MOVA,R2;A←R2 INCR0 INCR0;R0←R0+1+1,R0指向下一個(gè)低八位 ADDA,@R0;A←A+<R0>,低八位相加 MOVR2,A;R2←A,低八位的和存于R2 MOVA,R3;A←R3 INCR1 INCR1;R1←R1+1+1,R1指向下一個(gè)高八位 ADDCA,@R1;A←A+<R1>+C,高八位加進(jìn)位的和 MOVR3,A;R3←A,高八位的和存于R3 CLRA;A寄存器清零 ADDCA,R4;A←A+R4+C,計(jì)算進(jìn)位 MOVR4,A;R4←A,進(jìn)位信息存入R4 DJNZR5,LOOP;判斷R5是否等于零判斷循環(huán)是否結(jié)束HERE: SJMPHERE END程序測(cè)試方法與結(jié)果字節(jié)拆分、合并程序:〔存于30H的數(shù)被拆分,分別轉(zhuǎn)為ASCII碼存于31H和32H,最后再合并存于33H數(shù)據(jù)塊填充程序〔將片外RAM7000H-70FFH單元按一定規(guī)律填充四個(gè)十六位數(shù)的加法程序輸入的數(shù):結(jié)果:思考題怎樣查看工作寄存器、SFR、片內(nèi)RAM、片外RAM及程序代碼空間內(nèi)容?Disassembly窗口有何作用?1觀察工作寄存器,SFR:點(diǎn)擊ViewRegistersWindow,彈開(kāi)"Registers"窗口.在此窗口查看.2觀察IO端口,Timer,中斷控制寄存器:點(diǎn)擊菜單Peripherals,彈出外設(shè)選項(xiàng)欄,選擇對(duì)應(yīng)外設(shè),彈出相應(yīng)外設(shè)控制寄存器窗口,即可觀察.3觀察片內(nèi)RAM,代碼區(qū)和片外數(shù)據(jù)區(qū):點(diǎn)擊菜單View選擇MemoryWindows,在Address欄中鍵入存儲(chǔ)空間類型和地址,可以觀察到相應(yīng)內(nèi)容.Disassembly窗口顯示代碼及其相應(yīng)的機(jī)器碼,也展示了代碼的PC地址.字節(jié)拆分、合并還有哪些方法,舉一例說(shuō)明.舉例:ORG0100HMAIN: MOVSP,#40H;賦堆棧指針 MOV30H,#49H;30H單元賦值 MOVA,30H ANLA,#0FH;拆分出低四位 ORL32H,#30H;轉(zhuǎn)換為ASCII MOVA,30HANLA,#0F0HSWAPA;拆分出高四位 ORLA,#30H;轉(zhuǎn)換為ASCII MOV31H,A;結(jié)果存于31H單元 HERE: SJMPHERE;踏步 END若按遞減1規(guī)律填充數(shù)據(jù)塊,應(yīng)如何修改程序?將"INCA"改為"DECA"改后運(yùn)行結(jié)果如下:若從7010H單元開(kāi)始,連續(xù)填充20個(gè)字節(jié),應(yīng)該如何修改程序? ORG0000H LJMPMAIN ORG 0100HMAIN: MOVSP,#40HFILL: CLRA;A寄存器清零 MOVR0,#20 ;設(shè)循環(huán)計(jì)數(shù)器 MOVDPTR,#7010H ;設(shè)數(shù)據(jù)指針FILL1: MOVX@DPTR,A ;傳送到片外RAM DECA ;A內(nèi)容加1 INC DPTR ;修改數(shù)據(jù)指針 DJNZR0,FILL1 ;判斷是否結(jié)束HERE: SJMPHERE ;原地踏步 END 運(yùn)行結(jié)果:若完成雙字節(jié)BCD碼加法,應(yīng)如何修改程序?在"ADDA,@R0"和代碼"ADDCA,@R1"下各加一條代碼"DAA".輸入數(shù)據(jù):運(yùn)行結(jié)果:

溫馨提示

  • 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ù)網(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)論