資源描述:
《arm的存儲(chǔ)器訪問指令》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、ARM的存儲(chǔ)器訪問指令實(shí)驗(yàn)?zāi)康膌熟悉使用ADS開發(fā)環(huán)境。l通過實(shí)驗(yàn)掌握ARM存儲(chǔ)器訪問指令的使用方法。實(shí)驗(yàn)設(shè)備l硬件:PC機(jī)。l軟件:ADS集成開發(fā)環(huán)境,Windows2000/XP/2003。實(shí)驗(yàn)內(nèi)容l熟悉開發(fā)環(huán)境,并使用LDR/STR指令等訪問寄存器或存儲(chǔ)單元。。實(shí)驗(yàn)原理ARM處理器是Load/Store型的,即它對數(shù)據(jù)的操作是通過將數(shù)據(jù)從存儲(chǔ)器加載到片內(nèi)寄存器中進(jìn)行處理,處理完成后的結(jié)果經(jīng)過寄存器存回到存儲(chǔ)器中,以加快對片外存儲(chǔ)器進(jìn)行數(shù)據(jù)處理的執(zhí)行速度.存儲(chǔ)器訪問指令分為單寄存器操作指令,多寄存器操作指令和寄存器和存儲(chǔ)器交換指令。LDR指令用于從內(nèi)存中讀取單一字或
2、字節(jié)數(shù)據(jù)存入寄存器中,STR指令用于將寄存器中的單一字或字節(jié)數(shù)據(jù)保存到內(nèi)存。LDR{cond}{T}Rd,<地址>;將指定地址上的字?jǐn)?shù)據(jù)讀入RdSTR{cond}{T}Rd,<地址>;將Rd中的字?jǐn)?shù)據(jù)存入指定地址LDR{cond}B{T}Rd,<地址>;將指定地址上的字節(jié)數(shù)據(jù)讀入RdSTR{cond}B{T}Rd,<地址>;將Rd中的字節(jié)數(shù)據(jù)存入指定地址其中,T為可選后綴。若指令有T,那么即使處理器是在特權(quán)模式下,存儲(chǔ)系統(tǒng)也將訪問看成是在用戶模式下進(jìn)行的。T在用戶模式下無效,不能與前索引偏移一起使用T。LDR/STR指令尋址非常靈活,它由兩部分組成,其中一部分為一個(gè)基址
3、寄存器,可以為任一個(gè)通用寄存器;另一部分為一個(gè)地址偏移量。地址偏移量有以下3種格式:§立即數(shù)。立即數(shù)可以是一個(gè)無符號(hào)的數(shù)值。這個(gè)數(shù)據(jù)可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。如:LDRR1,[R0,#0x12]§寄存器。寄存器中的數(shù)值可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。如:LDRR1,[R0,R2]§寄存器及移位常數(shù)。寄存器移位后的值可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。如:LDRR1,[R0,R2,LSL#2]LDR和STR——字和無符號(hào)字節(jié)加載/存儲(chǔ)指令編碼指令執(zhí)行的條件碼I為0時(shí),偏移量為12位立即數(shù),為1時(shí),偏移量為
4、寄存器移位P表示前/后變址U表示加/減B為1表示字節(jié)訪問,為0表示字訪問W表示回寫為指令的尋址方式Rd為源/目標(biāo)寄存器Rn為基址寄存器L用于區(qū)別加載(L為1)或存儲(chǔ)(L為0)ARM存儲(chǔ)器訪問指令——多寄存器加載/存儲(chǔ)多寄存器加載/存儲(chǔ)指令可以實(shí)現(xiàn)在一組寄存器和一塊連續(xù)的內(nèi)存單元之間傳輸數(shù)據(jù)。LDM為加載多個(gè)寄存器;STM為存儲(chǔ)多個(gè)寄存器。允許一條指令傳送16個(gè)寄存器的任何子集或所有寄存器。它們主要用于現(xiàn)場保護(hù)、數(shù)據(jù)復(fù)制、常數(shù)傳遞等。助記符說明操作條件碼位置LDM{mode}Rn{!},reglist多寄存器加載reglist←[Rn...],Rn回寫等LDM{cond}
5、{mode}STM{mode}Rn{!},reglist多寄存器存儲(chǔ)[Rn...]←reglist,Rn回寫等STM{cond}{mode}實(shí)驗(yàn)參考程序AREAExample1,CODE,READONLY;聲明代碼段Example1ENTRY;標(biāo)識(shí)程序入口CODE32;聲明32位ARM指令STARTLDRR1,[R8]LDRR2,[R8,#4]STRR2,[R8]STRR1,[R8,#4]STOPMOVR0,#0x18LDRR1,=0x20026SWI0x123456END;標(biāo)記程序結(jié)束實(shí)驗(yàn)結(jié)論實(shí)驗(yàn)總結(jié)及心得體會(huì)實(shí)驗(yàn)思考題1.分別使用前變址,后變址,自動(dòng)回寫的尋址方式,
6、將存儲(chǔ)單元0x00000040,0x00000044的值存放到R1,R2.再將R1,R2的值存儲(chǔ)到內(nèi)存單元0x00000050,0x00000054.2.根據(jù)LDR/STR指令的二進(jìn)制編碼形式對下列指令譯碼,用16進(jìn)制表示.LDRR0,[R1,#0]LDRR3,[R5,-#0xC]STRR7,[R9],#8