嵌入式系統(tǒng)概論--課堂練習(xí)_第1頁
嵌入式系統(tǒng)概論--課堂練習(xí)_第2頁
嵌入式系統(tǒng)概論--課堂練習(xí)_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、、指令運(yùn)算1、利用假設(shè)干指令,完成以下計(jì)算1) 、求 R4R外R2R1,和放在 R6R5中ADDS R5, R3, R1ADCS R6, R4, R22) 、求 R4R3- 1,差放在 R6R5中SUBS R5,R3,#1SBC R6,R4,#03) 、求 R4R外1,和放在 R6R5中ADDS R5, R3,#1ADC R6,R4,#04) 、求 R4R3- R2R1,差放在 R6R5 中SUBS R5, R3, R1SBC R6 , R4, R22、寫出以下ARM旨令1) .將R0+0X12地址處的數(shù)據(jù)讀出,保存到 R1中LDR R1 , R0 , #0x122) .將R1中數(shù)據(jù)保存到 R

2、0+0X12地址處STR R1 , R0 , #0x123) .將R0- 0x12地址處的數(shù)據(jù)讀出,保存到 R1中LDR R1 , R0,- #0x124) .將R1中的數(shù)據(jù)保存到 R0- 0x12地址處R1 , R0, - #0x125) .將R0+R2地址處的數(shù)據(jù)讀出,保存到 R1中LDR R1 , R0, R26) .將R1中數(shù)據(jù)保存到 R0+R2地址處STR R1 , R0 , R27) .將R0- R2地址處的數(shù)據(jù)讀出,保存到 R1中LDR R1 , R0,- R28) .將R1中的數(shù)據(jù)保存到 R0- R2地址處STR R1 , R0,- R23、寫一條 ARM指令,完成操作 r1

3、= r2 * 3ADD R1,R2,R2,LSL #14、 初始值 R仁23H, R2=0FH執(zhí)行指令 BIC R0 , R1 , R2, LSL #1后,存放器 R0, R1 的值分別是多少?R0=21H R仁23H、指令操作1. ARM7TDMI(-S)有幾種尋址方式? LDR R1, R0 , #0x08屬于哪種尋址方式?1. 存放器尋址2. 立即尋址;3. 存放器移位尋址;4. 存放器間接尋址;5. 基址加偏址尋址;6. 多存放器尋址;7. 堆棧尋址;8. 塊復(fù)制尋址;9. 相對(duì)尋址;LDR R1,R0,#0x08屬于基址加偏址尋址。2. ARM旨令的條件碼有多少個(gè)?默認(rèn)條件碼是什么?

4、16條, 默認(rèn)條件碼是 ALo3. ARM旨令中第二個(gè)操作數(shù)有哪幾種形式?舉例5個(gè)8位圖立即數(shù)。 立即數(shù);(2)存放器;(3) 存放器與移位常數(shù);0x3FC (0xFF<<2)、0、0xF0000000(0xF0<<24)、200(0xC8)、0xF0000001(0x1F<<28)4. CMP旨令的操作是什么?寫一個(gè)程序,判斷R1的值是否大于0x30,是那么將R1 減去0x30 oCMP指令將存放器Rn的值減去operand2的值,根據(jù)操作的結(jié)果更新 CPSR中的相應(yīng)條件標(biāo)志位,以便后面的指令根據(jù)相應(yīng)的條件標(biāo)志來判斷是否執(zhí)行。CMP R1,#0x30SUB

5、HI R1,R1,#0x305調(diào)用子程序是用 B還是用BL指令?請(qǐng)寫出返回子程序的指令?BL指令用于子程序調(diào)用。MOV PC, LR6請(qǐng)指出LDR偽指令的用法。指令格式與LDR加載指令的區(qū)別是什么?LDR偽指令用于加載32位的立即數(shù)或一個(gè)地址值到指定存放器。第二個(gè)數(shù)為地址表達(dá)式。7將R0最后4位數(shù)據(jù)保存,并影響標(biāo)志位ANDS R0, R0, #0x0F8 .將R0的1, 3, 5位置1ORR R0 , R0, #0x2A9 .將RO的1, 3, 5位置0BIC RO , RO, #0x2A三、解釋應(yīng)用1、 說明指令STMIA r12!, rO-r11的操作功能。答:將R0至R11共12個(gè)存放器

6、中的32位數(shù)據(jù),存儲(chǔ)到 R12地址指針為 起始地址的存中,地址的操作方式是先操作、后增加,并更新地址。2、簡單說明ARM7 TDMI的含義。64位乘法指令帶M后綴的、支持片上調(diào)試帶 D后綴的、 高密度16位的Thumb指令機(jī)擴(kuò)展帶 T后綴的EmbededICE觀察點(diǎn)硬件帶I后綴的3、什么是小端和大端存儲(chǔ)器組織?答:1小端存儲(chǔ)器組織是較高的有效字節(jié)存放在較高的存儲(chǔ)器地址,較低的有效字節(jié)存放在較低的存儲(chǔ)器地址。2大端存儲(chǔ)器組織是較高的有效字節(jié)存放在較低的存儲(chǔ)器地址,較 低的有效字節(jié)存放在較高的存儲(chǔ)器地址。4、分別列舉ARM的處理器模式和狀態(tài)狀態(tài):ARM狀態(tài)32位,這種狀態(tài)下執(zhí)行的是字方式的ARM指

7、令Thumb狀態(tài) 16 位,這種狀態(tài)下執(zhí)行半字方式的Thumb指令Thumb-2狀態(tài)可以以執(zhí)行16位或32位混合的Thumb-2指令Thumb-2EE狀態(tài) V7以后新定義的可實(shí)時(shí)編譯的指令集執(zhí)行環(huán)境模式:用戶模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式。5、簡單表達(dá)CPSR存放器和SPSR存放器的作用,以與CPSR各狀態(tài)位的作用是什么。答:1CPSR包含條件碼標(biāo)志、中斷禁止位、當(dāng)前處理器模式以與其它狀態(tài)和控制信息。所有處理器模式下都可以訪問當(dāng)前的程序狀態(tài)存放器CPSR2在每種異常模式下都有一個(gè)對(duì)應(yīng)的物理存放器一一程序狀態(tài)保存存放器SPSR當(dāng)異常出現(xiàn)時(shí),SPSF用于保存C

8、PSR的狀態(tài),以便異常返回后恢復(fù)異 常發(fā)生時(shí)的工作狀態(tài)。6、請(qǐng)指出MOV旨令與LDR加載指令的區(qū)別與用途。1、MOV將8位圖pattern立即數(shù)或存放器operand2傳送到目標(biāo)存放 器Rd,可用于移位運(yùn)算等操作。2、LDR讀取指定地址上的存儲(chǔ)器單元容,執(zhí)行條件AL.7、采用多存放器尋址方式, 可以用一條指令完成傳送最多16個(gè)通用存放器的值。請(qǐng)解釋以下指令的含義:LDMIAR0, R1, R2, R3, R4;該指令的后綴IA表示在每次執(zhí)行完加載 指令可將R0所指的連續(xù)存儲(chǔ)單元的值傳送到/存儲(chǔ)操作后,R0按字長度增加,因此, R1R4指令執(zhí)行過程如下:R2 R0 + 4R1 R0RA R0 +

9、 8R4 R0 + 12四、程序設(shè)計(jì)題1. 把下面的C代碼轉(zhuǎn)換成匯編代碼。數(shù)組a和b分別存放在以0x4000和0x5000為起始地址的存儲(chǔ)區(qū),類型為Iong(即32位)。把編寫的匯編語言進(jìn)行編譯連接,并進(jìn)行調(diào)試。for (i=0; i<8; i+)ai = b7-i;2、用ARM編程實(shí)現(xiàn)如下功能:;for(i = 0;i < 10;i+);x+;r0 = x,r2 = iARM程序如下:MOVMOVFOR_LPCMPBHSR0,#0R2,#0R2,#10FOR_ENDADDADDBFOR_ENDNOPR0,R0,#1R2,R2,#1FOR_LP3、寫一段ARM匯編程序:循環(huán)累加隊(duì)列

10、 myarray中的所有元素,直到碰上零值元素,結(jié)果放在r4中。程序框架如下,補(bǔ)充代碼完成上述功能。AREA total, CODE READONLYENTRYstartMOVr4, #0ADRrO, myarray;在此補(bǔ)充代碼loopLDR r1, r0, #4ADD r4, r4, r1CMP r1, #0BNE loopstopB stopmyarrayDCD 0x11DCD 0x22DCD 0x0END4、編寫程序?qū)0和R1的容相加的結(jié)果放入 將R0*2和R1的容相加的結(jié)果放入 R4AREA Examplel,CODE,READONLY ENTRYCODE32R2,將R0和R1的容

11、相減的結(jié)果放入;聲明代碼段Examplel;標(biāo)識(shí)程序入口;聲明32位ARM旨令R3,START MOV R0 , #0;設(shè)置參數(shù)MOV R1 , #10LOOP BL ADD_SUBB LOOP;調(diào)用子程序ADD_SUB;跳轉(zhuǎn)到LOOPADD_SUBADDS R2 R0, R1SUBS R3 R0, R1MOV R0 R0, LSL #1ADDS R4 , R0, R1;子程序返回;文件完畢MOV PC , LRENDBL指令調(diào)用子程R0和R1中,使用5、用STMFD/LDMFD, MU指令編寫一個(gè)整數(shù)乘方的子程序,然后使用 序計(jì)算Xn的值。原理:Xn = X*X* *X,其中相乘的X個(gè)數(shù)為n

12、個(gè),先將X的值裝入R2作計(jì)數(shù)器,循環(huán)次數(shù) n-1次R0 = R0*R1,運(yùn)算結(jié)果保存在 R0中: 編程如下:;MAIN ROUTINEXEQU9nEQU8AREA MyPro,CODE,READONLYENTRYCODE32STARTLDRSP,= 0x40003F00LDRR0,= XLDRR1,= nBLPOWHALT BHALT;POW SUBROUTINE;INPUT R0,R1;OUTPUT ROPOWSTMFD SP!,R1-R12, LRMOVS R2,R1MOVEQ R0,#1BEQ POW_ENDMOV R1,R0SUB R2,R2,#1POW_CONTIBLDO_MULSUBS R2,R2,#1BNEPOW_CONTIPOW_ENDLDMFD SP!,R1-R12, LR;DO_MUL SUBROUTI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論