嵌入式系統(tǒng)原理第三章習(xí)題(1)_第1頁(yè)
嵌入式系統(tǒng)原理第三章習(xí)題(1)_第2頁(yè)
嵌入式系統(tǒng)原理第三章習(xí)題(1)_第3頁(yè)
嵌入式系統(tǒng)原理第三章習(xí)題(1)_第4頁(yè)
嵌入式系統(tǒng)原理第三章習(xí)題(1)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、第三章第一次作業(yè)1. ARM尋址方式有幾種?舉例說明ARM如何進(jìn)行不同方式的尋址。1).寄存器尋址;如MOV R1, R2 2).立即尋址;如MOV R0, #0xFF003).寄存器移位尋址;如MOV R0, R2, LSL #34).寄存器間接尋址;如LDR R1, R25).基址加偏址尋址;如LDR R2, R3,#0x0C6).多寄存器尋址;如LDMIA R1!, R2-R4,R67).堆棧尋址;如STMFD SP!, R1-R7,LR8).相對(duì)尋址。如BL SUBR12. 簡(jiǎn)述ARM指令分類及指令格式形式。ARM指令集可以分為6大類:數(shù)據(jù)處理指令、Load/Store指令、跳轉(zhuǎn)指令、

2、程序狀態(tài)寄存器處理指令、協(xié)處理器指令和異常產(chǎn)生指令。ARM指令的基本格式為:<opcode> <cond> S <Rd> ,<Rn>,<operand2>其中,opcode為操作碼;cond為可選的條件碼;S為可選后綴;Rd為目標(biāo)寄存器;Rn為存放第1個(gè)操作數(shù)的寄存器;operand2為第2個(gè)操作數(shù)。3. 假設(shè)R0的內(nèi)容為0x8000,寄存器R1、R2的內(nèi)容分別為0x01與0x10,存儲(chǔ)器中所有存儲(chǔ)單元的內(nèi)容均為0xFF。連續(xù)執(zhí)行下述兩條指令后,存儲(chǔ)器及寄存器的內(nèi)容如何變化? STMIB R0!, R1, R2 LDMIA R0!,

3、R1, R2存儲(chǔ)器里內(nèi)容為: 0xFF0x01 0x10 0xFF 0xFF 0xFF R0 0x8000 0x8004 0x8008 R1 0x800C R2R0 0x8010 0x8014 寄存器里內(nèi)容為:R0 0x8010 R1 0x10 R2 0xFF4. ARM處理器如何進(jìn)入和退出Thumb指令模式?用匯編語言實(shí)現(xiàn)ARM狀態(tài)和Thumb狀態(tài)互相的切換。進(jìn)入Thumb模式:有2種方法。一種是執(zhí)行一條交換轉(zhuǎn)移指令BX,將指令中的目標(biāo)地址寄存器的最低位置1,并將其他位的值放入程序計(jì)數(shù)器PC,則可以進(jìn)入Thumb指令。另一種方法是利用異常返回,也可把微處理器從ARM模式轉(zhuǎn)換為Thumb模式。

4、退出Thumb模式:也有2種方法。一種是執(zhí)行Thumb指令中的交換轉(zhuǎn)移BX指令可以顯式地返回到ARM指令流。另一種是利用異常進(jìn)入ARM指令流。ARM狀態(tài)切換到Thumb狀態(tài):CODE32LDR R0, =Lable+1BX R0CODE16Lable MOV R1, #12Thumb狀態(tài)切換到ARM狀態(tài): CODE16 LDR R0, =Lable BX R0 CODE32Lable MOV R1, #105. 請(qǐng)將下面C語言代碼轉(zhuǎn)換成匯編語言。 (1) If(a=0|b=1) c=d+e CMP R0, #0CMPNE R1, #1ADDEQ R2, R3, R4 (2) if (a= =

5、b)&&(c= = d)&&(e= =f) g+;CMP R0, R1CMPEQ R2, R3CMPEQ R4, R5ADDEQ R6, R6, #16. 編寫以字節(jié)為單位的字符串拷貝子程序,要求從存儲(chǔ)器某處拷貝到另一處。源字符串的起始地址放入R1,長(zhǎng)度(以字節(jié)為單位)放入R2,目的字符串的起始地址放入R3。LOOPLDRB R0, R1, #1STRB R0, R3, #1SUBS R2, R2, #1BNE LOOPMOV PC, LR7. 讀懂下面一段程序,程序執(zhí)行過程中寄存器R0、R1、R2中的內(nèi)容如何變化?試分析并給出程序每一步所得的結(jié)果。 從執(zhí)行完l

6、oop循環(huán)開始,循環(huán)結(jié)束時(shí)R0 0MOV R1, #y ;R1 76ADD R2, R0, R1, LSL #1 ;R2 152MOV SP, #0x1000 ;SP 0x1000STR R2, SP ;mem320x1000 152MOV R0, #Z ;R0 96AND R0, R0, #0XFF ;R0 96MOV R1, #y ;R1 76ADD R2, R0, R1, LSR #1 ;R2 134LDR R0, SP ;R0 152MOV R1, #0x01 ;R1 1ORR R0, R0, R1 ;R0 153 (0x99) (0b10011001)MOV R1, R2 ;R1 1

7、34 (0x86) (0b10000110)ADD R2, R0, R1, LSR #1 ;R2 220 (0xDC) (0b11011100)8. 請(qǐng)標(biāo)出在塊拷貝后,寄存器中的值在存儲(chǔ)器中對(duì)應(yīng)的位置以及基址寄存器R1的變化情況。(R3中的值為3,R4中的值為4,R5中的值為5)345R1àR1àSTMIA R1!,R3-R54008H4004H4000H4014H4010H400CH345R1ààR1àSTMDA R1!,R3-R54008H4004H4000H4014H4010H400CH345R1àR1àSTMIB R

8、1!,R3-R54008H4004H4000H4014H4010H400CH345R1àR1ààSTMDB R1!,R3-R54008H4004H4000H4014H4010H400CH9. 請(qǐng)使用MRS和MSR指令,通過修改CPSR寄存器,寫出將處理器工作模式變?yōu)楣芾砟J降淖映绦颉#ㄗ⒁獠荒苡绊懫渌?,管理模式的二進(jìn)制編碼為10011)MRS R0, CPSRAND R0, R0, #0b11100000ORR R0, R0, #0b00010011MSR CPSR_c, R0MOV PC, LR10. 用匯編語言的移位指令實(shí)現(xiàn) (變量A、B、C分別存放在寄存器R1、R2、R3中)ADD R1, R1, R1, LSL #3SUB R1, R1, R2, LSR R311. 用匯編語言

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論