ARM無(wú)符號(hào)整數(shù)乘除法_第1頁(yè)
ARM無(wú)符號(hào)整數(shù)乘除法_第2頁(yè)
ARM無(wú)符號(hào)整數(shù)乘除法_第3頁(yè)
ARM無(wú)符號(hào)整數(shù)乘除法_第4頁(yè)
ARM無(wú)符號(hào)整數(shù)乘除法_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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)介

1、1ARM 的無(wú)符號(hào)整數(shù)乘除法ARM無(wú)符號(hào)整數(shù)乘法一、實(shí)驗(yàn)?zāi)康恼莆?ARM 的匯編語(yǔ)言程序設(shè)計(jì)方法。二、實(shí)驗(yàn)原理及基本技術(shù)線路圖ARM 的乘法指令把一對(duì)寄存器的內(nèi)容相乘,然后根據(jù)指令類型把結(jié)果累加到其它的寄存器。長(zhǎng)整形的“乘累加”要使用代表 64 位的一對(duì)寄存器,最終的結(jié)果放在一個(gè)目標(biāo)寄存器或者一對(duì)寄存器中。乘法指令的語(yǔ)法:MLAvcondSRd,Rm,Rs,RnMULvcondSRd,Rm,RsMLA乘累加Rd=(RmxRs)+RnMUL乘法Rd=RmxRsvcondSRdLo,RdHi,Rm,RsSMLAL長(zhǎng)整型有符號(hào)乘累加RdHi,RdLo=RdHi,RdLo+(RmxRs)SMULL長(zhǎng)整

2、型有符號(hào)乘法RdHi,RdLo=RmxRsUMLAL長(zhǎng)整型無(wú)符號(hào)乘累加RdHi,RdLo=RdHi,RdLo+(RmxRs)UMULL長(zhǎng)整型無(wú)符號(hào)乘法RdHi,RdLo=RmxRs長(zhǎng)整型乘法指令產(chǎn)生 64 位的結(jié)果。由于結(jié)果太大,不能存放在一個(gè) 32 位寄存器,所以把結(jié)果存放在 2 個(gè) 32 位的寄存器 RdLo 和 RdHi 中。RdLo 存放低 32 位,RdHi 存放高 32 位。利用UMULL 和 SUMLL 指令可以進(jìn)行 32 位寬度的無(wú)符號(hào)或有符號(hào)的整數(shù)乘法運(yùn)算,得到 64 位的結(jié)果。在實(shí)際應(yīng)用中,有許多需要長(zhǎng)整型乘法運(yùn)算的應(yīng)用。例如,處理 C 中 longlong 整型算術(shù)運(yùn)算等

3、。對(duì)于 64 位整數(shù)乘法運(yùn)算可利用如下頁(yè)圖所示的擴(kuò)展方法來(lái)實(shí)現(xiàn)。其中:RO,R1 分別存放被乘數(shù)的低 32 位和高 32 位;R2,R3 分別存放乘數(shù)的低 32 位和高 32 位;128 位結(jié)果由低到高依次存放在 R4,R5,R6,R7 中。三、實(shí)驗(yàn)內(nèi)容依據(jù)圖 2-1 框圖所示方法編制 2 個(gè) 64 位無(wú)符號(hào)整數(shù)乘法的程序。2圖 2-1:2 個(gè) 64 位無(wú)符號(hào)整數(shù)乘法的擴(kuò)展方法四、所用儀器、材料PC一臺(tái)EmbestIDEEducationEditionforARM五、實(shí)驗(yàn)方法、步驟在 EmbestIDE 環(huán)境中新建工程,編寫程序;編譯成功后,連接下載進(jìn)行調(diào)試。六、實(shí)驗(yàn)過(guò)程原始記錄(數(shù)據(jù)、圖表、

4、計(jì)算等)1.實(shí)驗(yàn) A 源程序:.global_start.text_start:MOVR8,#20低 32 位初始化為 20MOVR9,#0高 32 位初始化為 0MOVR0,R8,#1初始化計(jì)數(shù)器Loop:MOVR1,R9暫存高位值UMULLR8,R9,R0,R83MILAR9,R1,R0,R9SUBSR0,R0,#1BNEloopStop:BStop.end七、實(shí)驗(yàn)結(jié)果、分析和結(jié)論(誤差分析與數(shù)據(jù)處理、成果總結(jié)等。其中,繪制曲線圖時(shí)必須用計(jì)算紙)實(shí)驗(yàn)結(jié)果截圖:ARM的無(wú)符號(hào)整數(shù)除法、實(shí)驗(yàn)?zāi)康模赫莆?ARM 的匯編語(yǔ)言程序設(shè)計(jì)方法。二、實(shí)驗(yàn)原理:ARM 內(nèi)核對(duì)除法運(yùn)算不提供硬件支持。除法運(yùn)算

5、必須通過(guò)調(diào)用基于標(biāo)準(zhǔn)算術(shù)操作的軟件程序來(lái)完成。通過(guò)試探減法實(shí)現(xiàn)無(wú)符號(hào)數(shù)除法,在 ARM 的運(yùn)算中是很有用的。其原理如下:計(jì)算無(wú)符號(hào)整數(shù) n 和 d 的商 q=n/d 和余數(shù) r=n%d。假定已知商 q 不超過(guò) N 位,n/d2N,或者說(shuō) n(dN)。試探減法算法以最高有效位第 N-1 位開(kāi)始,通過(guò)依次試圖設(shè)置各個(gè)位來(lái)確定 q 的 N 位值。這種做法和對(duì)結(jié)果的二分搜索是等價(jià)的。如果可以從當(dāng)前的余數(shù)減去(dD0 x00011Ptil!swinuswinuswinusminuswinuswinuswinuswinuQNfSUFFFFFFgxUUFFFFffQxOFFFFffIXOOFFffffBxO

6、OFFFFffOxOQFFFFfFQxaaFFFfffQxOOFFffffra.on=d)蘭 ABegJ;Register|晶 Pmriphm 胡|4/*移到下一位*/*ifr=d*(1N)*/5r-=(dN);q+=(1N);while(N);returnq;、實(shí)驗(yàn)內(nèi)容利用試探減法編制 2 個(gè) 64 位有符號(hào)整數(shù)除法的程序。四、所用儀器、材料PC一臺(tái)EmbestIDEEducationEditionforARM五、實(shí)驗(yàn)方法、步驟在 EmbestIDE 環(huán)境中新建工程,編寫程序;編譯成功后,連接下載進(jìn)行調(diào)試。/*計(jì)算余數(shù)*/*計(jì)算商*/六、實(shí)驗(yàn)過(guò)程原始記錄(數(shù)據(jù)、圖表、1.實(shí)驗(yàn)源程序:.glo

7、bal_start.macromCLZRd,Rs計(jì)算等)MOVRd,#0在某些 ARM 中,_mCLZ_L1:TSTRs,#0 x80000000ADDEQRd,Rd,#1MOVEQRs,Rs,ROR#31BEQ_mCLZ_L1MOVRs,Rs,LSRRd.endm.macromUNSIGNRd,Rs將一個(gè)數(shù)無(wú)符號(hào)化TSTRs,#0 x80000000將無(wú)符號(hào)的整數(shù)放到Rs 中可以使用指令CLZEORNEMVNNERd,Rd,#1Rs,RsADDNERs,Rs,#1.endm.arm.textstart:LDRLDRR0,=-123456R1,=523被除數(shù)除數(shù)Div:代替求一個(gè)數(shù)的前導(dǎo) 0

8、個(gè)數(shù)6Stop:BStop.endMOVR6,#0mUNSIGNR6,R0mUNSIGNR6,R1MOVR5,#0CMPR0,R1BLTDivision_ L2mCLZR3,R1SUBR3,R3,#1MOVR1,R1,LSLR3Division_L1:MOVR5,R5,LSL#1CMPR0,R1SUBGTR0,R0,R1ORRGTR5,R5,#1SUBSR3,R3,#1MOVCSR1,R1,LSR#1BCSDivision_L1Division_L2:TSTR6,#1MVNNER5,R5ADDNER5,R5,#1Division_F:MOVR1,R0MOVR0,R5結(jié)果的符號(hào)位判斷被除數(shù)和除數(shù)

9、的符號(hào),無(wú)符號(hào)化商如果被除數(shù)小于除數(shù)直接商 0 判斷除數(shù)位數(shù),確定移位情況判斷是否夠減如果夠減,做減法,上商 1處理結(jié)果的符號(hào)7七、實(shí)驗(yàn)結(jié)果、分析和結(jié)論(誤差分析與數(shù)據(jù)處理、成果總結(jié)等。其中,繪制曲線圖時(shí)必須用計(jì)算紙)實(shí)驗(yàn)結(jié)果截圖:EliuisionL1i3QxOOQMffiSrwvrS.r5151M1Ox00008KConfjt0.rl0X09909960subgtr6.rB,r1nrrgtr5BBlHxHUUlfHW&ElJlbSr3prS,tilQX0QOO&MCnoucEr1pIsr110XBDOO8070bes0 x805SDiuisluH_L2:胴如QQ9麗J|ts

10、tr*.n0XUUU1UIH7Rounner5FrS00000807caddnerSpi*5stt1Diui5ion_F:_JOx00088ffiDnwvr1.rO陽(yáng)MOOS囲沖FMVto.rs航up:DxUUUlkHtlEHH:lbIkxMNHH1XQxeoo( (t8decEvinuDxOfifeld匚囪x9900SWQaiiideqrOB嘰FpoxioosmsuinvOxOflfFFFff0XOO8W8sulnu&K0CfFff!FfHNOdnimricswinvllxnffFFFHxMUUtmnaGlwinu111R廠E十.-一CurrentAROflxffFfFFIdR1nnnHQaaicR2OM0OODDOO0RSQxfFFfFFFF站tiiaBMUuuiinF

溫馨提示

  • 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)論