ARM與嵌入式實(shí)驗(yàn)報(bào)告_第1頁(yè)
ARM與嵌入式實(shí)驗(yàn)報(bào)告_第2頁(yè)
ARM與嵌入式實(shí)驗(yàn)報(bào)告_第3頁(yè)
ARM與嵌入式實(shí)驗(yàn)報(bào)告_第4頁(yè)
ARM與嵌入式實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩4頁(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)介

歡迎下載該文檔華中科技大學(xué)文華學(xué)院ARM實(shí)驗(yàn)專業(yè)班級(jí):姓名:學(xué)號(hào):指導(dǎo)老師:實(shí)驗(yàn)日期:2013年6月10日一、實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)使用EmbestIDE開(kāi)發(fā)環(huán)境及ARM軟件模擬器;

2.掌握簡(jiǎn)單ARM匯編指令,進(jìn)一步加強(qiáng)對(duì)嵌入式的熟悉和了解。二、實(shí)驗(yàn)設(shè)備硬件:PC機(jī)軟件:EmbestIDE開(kāi)發(fā)環(huán)境實(shí)驗(yàn)內(nèi)容分析及調(diào)試結(jié)果例2:編寫(xiě)程序?qū)2的高8位傳送到R3的低8位(不考慮R3的其它位)程序代碼:..global_start .code32 .text_start:movr2,#0x08000002movr1,r2,ror#0x18/*r2循環(huán)右移24位送給r1*/andr1,r1,#0xff/*屏蔽高24位*/movr3,#02andr3,r3,#0orrr3,r3,r1/*將r1中的數(shù)據(jù)送到r3中*/stop:bstop.end運(yùn)行結(jié)果分析:數(shù)據(jù)下載(2)r2中的高8位數(shù)據(jù)送到r1中(3)r1中的數(shù)據(jù)送到r3中調(diào)試所遇到的問(wèn)題及解決方法:就是有時(shí)把16進(jìn)制數(shù)和十進(jìn)制搞混了,造成循環(huán)位數(shù)出錯(cuò)。movr1,r2,ror#0x18→movr1,r2,ror#0x24忘記屏蔽高位的數(shù)據(jù),之前設(shè)置的數(shù)為(movr2,#0x08000000)就沒(méi)有發(fā)現(xiàn)這個(gè)問(wèn)題,后來(lái)修改為(movr2,#0x08000002)則為:例3:實(shí)現(xiàn)64位加法運(yùn)算,要求【R2:R1】+【R4:R3】,結(jié)果放回【R2:R1】中;程序代碼:.global_start .code32 .text_start:movr1,#0x6fmovr2,#0x08movr3,#0x20movr4,#0x05addsr1,r1,r3/*r1等于低32位相加,并影響標(biāo)志位*/adcr2,r2,r4/*r2等于高32位相加,并加上低位進(jìn)位*/stop:bstop.end運(yùn)行結(jié)果:數(shù)據(jù)下載低位相加送到r1、高位相加送到r2調(diào)試所遇到的問(wèn)題及解決方法:在這個(gè)程序中我注意到的就是低位相加影響到標(biāo)志位結(jié)果是因?yàn)闆](méi)有溢出,沒(méi)有進(jìn)位,沒(méi)有負(fù)數(shù),其實(shí)當(dāng)我將程序改為(movr1,#0x7f000000movr3,#0x7f000000),則會(huì)出現(xiàn)(crsr:0x900000d3),沒(méi)有進(jìn)位標(biāo)志。就是在這一點(diǎn)上無(wú)法體現(xiàn)這是兩個(gè)64位數(shù)的相加。例5:編寫(xiě)除法運(yùn)算(不使用移位指令),并保留商(若不能整除則要求保留余數(shù))程序代碼:.global_strat.text_strat:movr1,#65/*被除數(shù)65送到r1中*/movr3,#1/*計(jì)數(shù)*/loop:movr0,#4/*除數(shù)4送到r0*/mulr2,r0,r3movr0,r2addr3,r3,#1cmpr1,r0/*除數(shù)和被除數(shù)的比較*/bhiloop/*被除數(shù)大于除數(shù)跳到loop*/subr3,r3,#2/*求得商*/movr0,#4mulr2,r0,r3movr0,r2subr0,r1,r0/*求得余數(shù)*/stop:bstop.end運(yùn)行結(jié)果:數(shù)據(jù)下載加載被除數(shù)和除數(shù)逐步增大r3中的值當(dāng)除數(shù)大于被除數(shù)時(shí)跳出循環(huán)求得商值求得余數(shù)調(diào)試所遇到的問(wèn)題及解決方法:思路,利用乘法來(lái)實(shí)現(xiàn)除法。之前都不知道arm中沒(méi)有除法指令,到處找,結(jié)果找到了這個(gè)方法。在跳轉(zhuǎn)時(shí)需要被除數(shù)大于除數(shù),當(dāng)時(shí)也沒(méi)看書(shū),不知道該怎么弄,后來(lái)找到指令條件碼表,又把這個(gè)問(wèn)題解決了(bhiloop)。在之前的調(diào)試過(guò)程中漏掉了(movr0,#4)結(jié)果出現(xiàn)了負(fù)數(shù),這結(jié)果還是我在一步一步調(diào)試過(guò)程中找到的,不過(guò)我發(fā)現(xiàn)register窗口能很好的反映出代碼的執(zhí)行結(jié)果,很方便。要不然都不知道自己什么地方錯(cuò)了。例8:串拷貝(R1指向源數(shù)據(jù)串的首地址,R0指向目的數(shù)據(jù)串的首地址)。程序代碼:.global_start.text_start:ldrr1,src/*指向源數(shù)據(jù)串r1*/ldrr0,dst/*指向目標(biāo)數(shù)據(jù)串r0*/movr3,#10movlr,r15/*返回*/bcopy/*調(diào)用串拷貝子程序*/stop:bstopcopy:ldrbr2,[r1],#1/*裝載字節(jié)同時(shí)更新地址*/strbr2,[r0],#1/*存儲(chǔ)字節(jié)同時(shí)更新地址*/subr3,r3,#1cmpr3,#0bnecopymovr15,lr/*返回*/data:src:.long12,3,4,45,67,7,9,4,6,0/*定義源數(shù)據(jù)串*/dst:.long0,1,0,1,0,1,0,1,0,1/*定義目的字符串*/.end運(yùn)行結(jié)果:(1)數(shù)據(jù)下載逐步裝載字節(jié)最后寄存器的顯示調(diào)試所遇到的問(wèn)題及解決方法:1.對(duì)于串拷貝,這一類的程序我不大會(huì)弄,這個(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ù)網(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)論