嵌入式復(fù)習(xí)思考題(1)答案_第1頁(yè)
嵌入式復(fù)習(xí)思考題(1)答案_第2頁(yè)
嵌入式復(fù)習(xí)思考題(1)答案_第3頁(yè)
嵌入式復(fù)習(xí)思考題(1)答案_第4頁(yè)
嵌入式復(fù)習(xí)思考題(1)答案_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

千里之行,始于足下讓知識(shí)帶有溫度。第第2頁(yè)/共2頁(yè)精品文檔推薦嵌入式復(fù)習(xí)思考題(1)答案嵌入式復(fù)習(xí)思量題及答案(1)

一、簡(jiǎn)答題

1、ARM9有哪幾種工作模式?其中哪幾種屬于特權(quán)模式?哪幾種屬于幾種異樣模式?

答:實(shí)用戶(hù)、系統(tǒng)、管理、中止、未定義、一般中斷、迅速中斷。系統(tǒng)、管理、中止、未定義、一般中斷、迅速中斷屬于特權(quán)模式。管理、中止、未定義、一般中斷、迅速中斷屬于幾種異樣模式。

2、ARM9有哪2種工作狀態(tài)?各自特點(diǎn)?實(shí)現(xiàn)狀態(tài)切換指令的是什么?

答:ARM狀態(tài)與Thumb狀態(tài)。ARM狀態(tài)指令是32位;Thumb狀態(tài)指令是16位。切換指令是BX。

3、簡(jiǎn)述ARM9在不同工作模式下寄存器分布狀況(用圖表說(shuō)明)。R13、R1

4、R15的固定用途;CPRS和SPRS名稱(chēng)及功能。

答:R13常作為堆棧指針SP、R14作為鏈接寄存器LR、R15作為程序計(jì)數(shù)器PC。CPRS是當(dāng)前程序狀態(tài)寄存器,包含條件代碼、中斷禁止位、當(dāng)前處理器模式以及其他狀態(tài)和控制信息。SPRS是程序狀態(tài)保存寄存器,異樣浮現(xiàn)時(shí)用于保存CPRS的狀態(tài)。

4

5

答:響應(yīng)過(guò)程:1、將引起異樣指令的下一條指令的地址保存到新的異樣工作模式的R14中;

2、將CPSR的內(nèi)容保存到將要執(zhí)行的異樣中斷對(duì)應(yīng)的SPSR中;

3、按照異樣類(lèi)型CPSR中的運(yùn)行模式位;

4、將相應(yīng)的矢量地址賦值給PC,開(kāi)頭執(zhí)行異樣處理程序。還可設(shè)中斷禁止位。

返回過(guò)程:1、將銜接寄存器LR的值減去相應(yīng)的偏移量后送到PC中;

2、將SPSR內(nèi)容送回CPSR;

3、若在進(jìn)入異樣處理時(shí)設(shè)置了中斷禁止位,要在此清除。

6、寫(xiě)出ARM9支持的尋址方式,各舉一例。

答:略

7、寫(xiě)出指令LDRB/LDRH/LDR的區(qū)分。

答:LDRB將內(nèi)存單元一個(gè)字節(jié)的數(shù)據(jù)擴(kuò)展到32位裝載到寄存器;

LDRH將內(nèi)存單元半字(兩個(gè)字節(jié))的數(shù)據(jù)擴(kuò)展到32位裝載到寄存器;

LDR將內(nèi)存單元一個(gè)字的數(shù)據(jù)裝載到寄存器。

8、寫(xiě)出LDM、STM指令用于數(shù)據(jù)塊拷貝時(shí)對(duì)應(yīng)的4種后綴以及用于堆棧操作對(duì)應(yīng)的4種后綴。

解釋各自的執(zhí)行過(guò)程。

答:數(shù)據(jù)塊拷貝后綴:IA操作后指針增;DA操作后指針減;

IB操作前指針增;DB操作前指針減。

堆棧操作后綴:FD滿(mǎn)遞減;ED空遞減;FA滿(mǎn)遞增;EA空遞增。

9、ARM和Thumb兩種狀態(tài)下各自堆棧的生成方式有何不同?寫(xiě)出各自對(duì)應(yīng)的入棧、出棧指令。答:ARM堆棧有4種生成方式滿(mǎn)遞增、滿(mǎn)遞減、空遞增、空遞減;

入棧指令:STM(FD\ED\FA\EA4種后綴之一)出棧指令:LDM(FD\ED\FA\EA4種后綴之一)Thumb堆棧采納滿(mǎn)遞減的生成方式。入棧指令:PUSH.出棧指令:POP

10、寫(xiě)出條件代碼NE、EQ的推斷條件。

答:NEZ=0(不相等);EQZ=1(相等)

11、B、BL及BX指令有何區(qū)分?寫(xiě)出無(wú)嵌套的子程序調(diào)用及返回指令。

答:B是容易的轉(zhuǎn)移指令,實(shí)現(xiàn)向目的地址的容易的跳轉(zhuǎn);

BL是帶鏈接的轉(zhuǎn)移指令,將轉(zhuǎn)移指令后的下一條指令抵制保存到鏈接寄存器LR;

BX是帶狀態(tài)切換的轉(zhuǎn)移指令。

子程序調(diào)用指令:BLDELAY;無(wú)嵌套的子程序返回指令MOVPC,LR

12、舉例說(shuō)明偽指令LDR的2個(gè)主要用途。

答:LDRR1,=0X30408020加載32位立刻數(shù)到寄存器;

LDRR1,=SRC加載一個(gè)地址值到寄存器。

13、什么是ATPCS?它有哪些規(guī)章?

答:ATPCS是ARM程序和Thumb程序中子程序調(diào)用的基本規(guī)章,使單獨(dú)編譯的C程序和匯編程序能互相調(diào)用。有數(shù)據(jù)棧規(guī)章、參數(shù)傳遞規(guī)章和子程序調(diào)用時(shí)寄存器使用規(guī)章。

二、程序閱讀題(重點(diǎn)檢測(cè)尋址方式及指令)

1、在每條語(yǔ)句后做簡(jiǎn)要解釋?zhuān)瑢?xiě)出程序執(zhí)行后R0、R1、R2和C的值。

(學(xué)問(wèn)點(diǎn):算術(shù)、規(guī)律操作、影響標(biāo)志位S)

AREASUMM,CODE,READONLY

XEQU8

YEQU16

ENTRY

MOVR0,#X

MOVR1,#Y

ADDR2,R0,R1

ANDR0,R2,#0X0F

MOVR2,#Y

ADDSR2,R0,R1,LSR#1

STOPBSTOP程序執(zhí)行后R0=8、R1=16、R2=16和C=0。

END

2、分析程序,根據(jù)加“//”語(yǔ)句的要求解答。(學(xué)問(wèn)點(diǎn):堆棧操作)

AREASTK,CODE,READONLY

ENTRY

MOVR1,#0X30

MOVR2,#0X08

MOVSP,#0X400

STMFDSP!,{R1,R2};//①寫(xiě)出語(yǔ)句執(zhí)行后SP和R2的值SP=0X3F8;R2=0X08

LDMFDSP!,{R5,R6};//②寫(xiě)出語(yǔ)句執(zhí)行后SP、R5和R6的值SP=0X400;R5=0X30;R6=0X08LOOPBLOOP

END

3、寫(xiě)出程序?qū)崿F(xiàn)的功能,并在每條語(yǔ)句后做簡(jiǎn)要解釋。

(學(xué)問(wèn)點(diǎn):尋址方式[Rn],#immediate、循環(huán)體、數(shù)據(jù)拷貝)

AREAarmcopyCODE,READONLY

numEQU16

ENTRY

ADRr1,src

ADRr3,dst

MOVr2,#num程序?qū)崿F(xiàn)了將內(nèi)存src處的16個(gè)字拷貝到dst處。

copyLDRR0,[r1],#4

STRR0,[r3],#4

SUBSr2,r2,#1

BNEcopy

stopBstop

srcDCD1,2,3,4,1,2,3,4,5,6,1,2,3,4,1,2

dstDCD0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

END

4、分析程序功能,并寫(xiě)出加序號(hào)語(yǔ)句的作用。(學(xué)問(wèn)點(diǎn):狀態(tài)切換)

程序?qū)崿F(xiàn)了從ARM狀態(tài)切換到Thumb狀態(tài)實(shí)現(xiàn)4個(gè)字節(jié)數(shù)據(jù)的拷貝。

AREAthcopy,CODE,READONLY

ENTRY

CODE32;偽操作,指示以下指令是32位的ARM指令LDRr1,=src

LDRr3,=dst

MOVr2,#4

LDRr4,=copy+1;①;偽指令,裝載跳轉(zhuǎn)地址以及最后的狀態(tài)切換位

BXr4;②;從ARM狀態(tài)跳轉(zhuǎn)到Thumb狀態(tài)

CODE16;③;偽操作,指示以下指令是16位的Thumb指令

copy

LDRBr0,[r1]

ADDr1,#1

STRBr0,[r3]

ADDr3,#1

SUBr2,r2,#1

BNEcopy

stopBstop

srcDCB1,2,3,4

dstDCB0,0,0,0

END

5、寫(xiě)出下列程序執(zhí)行后r0的值,并寫(xiě)出加序號(hào)語(yǔ)句的作用。(學(xué)問(wèn)點(diǎn):跳轉(zhuǎn)表、子程序的調(diào)用返回)

AREAJump,CODE,READONLY

ENTRY

StartMOVr0,#0

MOVr1,#8

MOVr2,#5

BLcount;①調(diào)用子程序

stopBstop

countCMPr0,#2;②r0與2比較

MOVHSpc,lr;③假如r0大于2則子程序返回

LDRr3,=JumpTable;④否則將跳轉(zhuǎn)表首地址送r3

LDRpc,[r3,r0,LSL#2];⑤將r3+r0×4(即跳轉(zhuǎn)地址)送pc

JumpTable

DCDDoAdd

DCDDoSub

DoAdd

ADDr0,r1,r2

MOVpc,lr;⑥子程序返回

DoSub

SUBr0,r1,r2

MOVpc,lr程序執(zhí)行后r0=13

END

6、分析下面這段混合程序回答:

(1)、程序?qū)崿F(xiàn)了什么功能?在C中調(diào)用匯編函數(shù)實(shí)現(xiàn)字符串拷貝

(2)C語(yǔ)言程序和匯編代碼如何傳遞參數(shù)?dststrR0;srcstrR1

(3)在每條語(yǔ)句后做簡(jiǎn)要解釋。

(學(xué)問(wèn)點(diǎn):C和匯編混合編程框架、ATPCS規(guī)章、字節(jié)拷貝)

externvoidstrcpy(char*d,constchar*s);聲明外部函數(shù)

intmain(void)

{

constchar*srcstr=”abcdefg”;

char*dststr=”jjjjjjjjjj”;

strcopy(dststr,srcstr);調(diào)用匯編函數(shù)(通過(guò)R0和R1實(shí)現(xiàn)參數(shù)傳遞)printf(“%s\n%\n”,srcstr,dststr);

return(0);

}

AREASCopy,CODE,READONLY

EXPORTstrcopy;聲明一個(gè)全局標(biāo)號(hào),可以在其他文件中引用strcopyLDRBr2,[r1],#1

STRBr2,[r0],#1

CMPr2,#0

BNEstrcpy

MOVpc,lr;子程序返回

END

三、設(shè)計(jì)題

(把握匯編及C語(yǔ)言容易程序設(shè)計(jì)。如數(shù)據(jù)拷貝、跳轉(zhuǎn)表、混合編程。)

1、用匯編語(yǔ)言編寫(xiě)數(shù)據(jù)塊或字符拷貝程序(如閱讀程序題)。

2、用匯編語(yǔ)言編寫(xiě)含有2個(gè)分支的跳轉(zhuǎn)表實(shí)現(xiàn)程序跳轉(zhuǎn)。R2寄存器中存放的是跳轉(zhuǎn)表的基地址。R1中用于挑選不同的子程序,子程序可以隨意命名。R1的不同值挑選不同的子程序。并做容易解釋。(如閱讀程序題)

3、編寫(xiě)一段C語(yǔ)言與匯編語(yǔ)言的混合編程代碼,在C語(yǔ)言程序中調(diào)用匯編語(yǔ)言代碼,完成字符串的拷貝。(如閱讀程序題)

4、在匯編子程序中調(diào)用一個(gè)計(jì)算a、b、c三者之和的C語(yǔ)言函數(shù)add3(),計(jì)算i+2i+3i,

假設(shè)i就在R0中。(要求說(shuō)明匯編程序和C函數(shù)之間如何舉行參數(shù)傳遞)。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論