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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第三章第一次作業(yè)1. ARM尋址方式有幾種?舉例說明ARM如何進行不同方式的尋址。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).相對尋址。如BL SUBR12. 簡述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為目標寄存器;Rn為存放第1個操作數(shù)的寄存器;operand2為第2個操作數(shù)。3. 假設R0的內(nèi)容為0x8000,寄存器R1、R2的內(nèi)容分別為0x01與0x10,存儲器中所有存儲單元的內(nèi)容均為0xFF。連續(xù)執(zhí)行下述兩條指令后,存儲器及寄存器的內(nèi)容如何變化? STMIB R0!, R1, R2 LDMIA R0!,

3、R1, R2存儲器里內(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處理器如何進入和退出Thumb指令模式?用匯編語言實現(xiàn)ARM狀態(tài)和Thumb狀態(tài)互相的切換。進入Thumb模式:有2種方法。一種是執(zhí)行一條交換轉(zhuǎn)移指令BX,將指令中的目標地址寄存器的最低位置1,并將其他位的值放入程序計數(shù)器PC,則可以進入Thumb指令。另一種方法是利用異常返回,也可把微處理器從ARM模式轉(zhuǎn)換為Thumb模式。

4、退出Thumb模式:也有2種方法。一種是執(zhí)行Thumb指令中的交換轉(zhuǎn)移BX指令可以顯式地返回到ARM指令流。另一種是利用異常進入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. 請將下面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é)為單位的字符串拷貝子程序,要求從存儲器某處拷貝到另一處。源字符串的起始地址放入R1,長度(以字節(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é)束時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. 請標出在塊拷貝后,寄存器中的值在存儲器中對應的位置以及基址寄存器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. 請使用MRS和MSR指令,通過修改CPSR寄存器,寫出將處理器工作模式變?yōu)楣芾砟J降淖映绦?。(注意不能影響其它位,管理模式的二進制編碼為10011)MRS R0, CPSRAND R0, R0, #0b11100000ORR R0, R0, #0b00010011MSR CPSR_c, R0MOV PC, LR10. 用匯編語言的移位指令實現(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論