《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > ARM題庫

ARM題庫

2015-09-25
關(guān)鍵詞: ARM 題庫

一、填空題

1.    常見的ARM處理器內(nèi)核有   ARM 7   、   ARM 9   和   ARM 11   等。

2.    ARM處理器有兩種狀態(tài),分別是   ARM    狀態(tài) 和    Thumb    狀態(tài)。

3.    按總線所傳送的信息類型,總線分為  數(shù)據(jù)總線  、  地址總線   和  控制總線   。

4.    ADS 是一套用來開發(fā)ARM 處理器應(yīng)用系統(tǒng)的開發(fā)工具包,用戶可以用ADS 編輯、編譯和調(diào)試C、C++以及匯編程序。目前的版本為 ADSv1.2  。

5.    與邏輯運算規(guī)則:0 ? 0=  0  ;0 ? 1=  0  ; 1 ? 0=  0  ; 1 ? 1=  1 

6.    或邏輯運算規(guī)則: 0 + 0=  0  ;0 +1=  1  ; 1 + 0=  1  ; 1 + 1=  1 

將2進制轉(zhuǎn)換為16進制:(10011100101101001000) B =            。

7.ARM 屬于  RISC    架構(gòu)。

8.ARM 指令集是     32      位寬,Thumb 指令集是     16      位寬。

9.ARM體系結(jié)構(gòu)版本中V___4___版架構(gòu)是目前應(yīng)用最廣的ARM體系架構(gòu),ARM7、___ ARM 9  ___都采用該架構(gòu)。

10.ARM微處理器共有__37_個__32_ 位寄存器,其中_31___個為通用寄存器,____6__個為狀態(tài)寄存器。

11.常用的嵌入式操作系統(tǒng)有 嵌入室Linux 、  VxWorks      等。

12.ARM嵌入式系統(tǒng)主要由 嵌入室硬件 、  嵌入室軟件   和   開發(fā)工具  構(gòu)成。

13.復(fù)位后,ARM處理器處于   SVC   工作模式,   ARM    狀態(tài)。

14.S3C2410采用的核心處理器是  ARM920T         。

15.S3C2410 支持兩種引導(dǎo)方式,分別是  Nor-Flash  啟動方式、 Nand-Flash 啟動方式。

16.GPIO的中文全稱是     通用輸入輸出端口        。

17.ARM處理器有兩種狀態(tài),分別是   ARM    和    Thumb     。

18.計算機結(jié)構(gòu)分為  哈佛體系   結(jié)構(gòu)和   馮諾依曼體系   結(jié)構(gòu)。

19.ARM處理器支持的數(shù)據(jù)類型中,字節(jié)為   8  位、半字為   16   位、字為   32   位。

20.將2進制轉(zhuǎn)換為16進制:(11011010101101101110) B = (           ) H

21.ARM狀態(tài)下,SP寄存器指的是     R13     、LR寄存器指的是      R14        、PC寄存器指的是  R15         。

22.一個嵌入式系統(tǒng)由3部分組成,分別是  嵌入式硬件   、  嵌入式軟件    和    開發(fā)工具          。

二、選擇題:

1.相對于ARM指令集,Thumb指令集的特點是___  。

A、指令執(zhí)行速度快

B、16位指令集,可以得到密度更高的代碼,對于需要嚴(yán)格控制成本的設(shè)計非常有意義

C、Thumb模式有自己獨立的寄存器

D、16位指令集,代碼密度高,加密性能好

2.在ARM寄存器結(jié)構(gòu)中,棧指針使用__B__寄存器。

A、R0             B、R13          C、R14          D、R15

3.在ARM體系結(jié)構(gòu)中,要從主動用戶模式(User)切換到超級用戶模式(Supervisor),應(yīng)采用何種方法?      

A、直接修改CPU狀態(tài)寄存器(CPSR)對應(yīng)的模式

B、先修改程序狀態(tài)備份寄存器(SPSR)到對應(yīng)的模式,再更新CPU狀態(tài)

C、使用軟件中斷指令(SWI)

D、讓處理器執(zhí)行未定義指令

4.嵌入式系統(tǒng)加電或復(fù)位后,所有的 CPU 通常都從某個由 CPU 制造商預(yù)先安排的地址上取指令。例如:對于S3C2410來說,Boot Loader會映射到______地址處。                                      

A  0x0c000000   B  0x00000000  C  0x00000018   D  0x40000018

5.32位體系結(jié)構(gòu)的ARM處理器有____種不同的處理器工作模式,和____個主要用來標(biāo)識CPU工作狀態(tài)和程序運行狀態(tài)的狀態(tài)寄存器。

A、7、7                        B、7、6                      C、6、6                      D、6、7

6.CPSR中的低8位稱為控制位,下列不屬于控制位的是____。

A、N                    B、I                     C、F                    D、T

7.ARM7屬于     結(jié)構(gòu),ARM9屬于     結(jié)構(gòu)。

A、 馮.諾依曼             B、 哈佛

8.ARM7是     級流水線,ARM9是     級流水線。

A、1              B、2                  C、3                  D、5

9.ARM中可以訪問狀態(tài)寄存器的指令是     ,能夠訪問內(nèi)存的指令是     。

A、MOV          B、ADD          C、LDR           D、MRS

10.在下列ARM處理器的各種模式中,只有_____模式不可以自由地改變處理器的工作模式。

A、用戶模式(User)

B、系統(tǒng)模式(System)

C、終止模式(Abort)

D、中斷模式(IRQ)

11.在ARM的匯編程序中,ADR、ADRL、     、     等被稱為偽指令。

A、AREA     B、SETA     C、LDR     D、NOP

12.下列條件碼中表示不相等的是     。

A、EQ                    B、NE                  C、CS                  D、CC

13.CPSR中的低8位稱為控制位,其中I位等于1表示     。

A、禁止IRQ中斷    B、禁止FIQ中斷    C、允許IRQ中斷    D、允許FIQ中斷

14.ARM微處理器支持7種工作模式。其中,除     之外的其余6種稱為特權(quán)模式,在這6種之中,除     之外的其余5種又稱為異常模式。

A、用戶模式    B、管理模式    C、中止模式    D、系統(tǒng)模式

15. ATPCS規(guī)定中,棧是     。

   A、滿遞增    B、滿遞減    C、空遞增    D、空遞減

16. 在用ARM匯編編程是,其寄存器有多個別名,通常PC是指R15,LR 是指     ,SP是指    

A、R12                 B、R13              C、R14              D、R15

17.下列條件碼中表示無符號數(shù)小于的是____。

A、HI                     B、LS                  C、CS                  D、CC

18.下列ARM指令中,可用于滿遞增堆棧操作的是____。

A、STMDA            B、STMIA            C、STMDB           D、STMIB

19.下列32位數(shù)中,不可作為立即數(shù)的是____。

A、0x81000007       B、0x04800000     C、0x00000012     D、0x8000007

20.ATPCS規(guī)定數(shù)據(jù)棧是____類型。

A、滿遞減              B、滿遞增            C、空遞減            D、空遞增

21.ARM偽指令中,可用于大范圍地址讀取的是____。

A、ADR                 B、ADRL             C、LDR                D、NOP

22.同CISC相比,下面哪一項不屬于RISC處理器的特征。____

A、采用固定長度的指令格式,指令規(guī)整、簡單、基本尋址方式有2~3種。

B、減少指令數(shù)和尋址方式,使控制部件簡化,加快執(zhí)行速度。

C、數(shù)據(jù)處理指令只對寄存器進行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率,同時簡化處理器的設(shè)計。

D、RISC處理器都采用哈佛結(jié)構(gòu)

23.以下敘述中,不符合RISC指令系統(tǒng)特點的是    。

A、 指令長度固定,指令種類少

B、 尋址方式種類豐富,指令功能盡量增強

C、 設(shè)置大量通用寄存器,訪問存儲器指令簡單

D、 選取使用頻率較高的一些簡單指令

24.下面關(guān)于ARM處理器的體系結(jié)構(gòu)描述哪一個是錯誤的。____

A、三地址指令格式

B、所有的指令都是多周期執(zhí)行

C、指令長度固定

D、Load-Store結(jié)構(gòu)

25.在ARM寄存器結(jié)構(gòu)中,棧指針使用____寄存器,

A、R0            B、R13           C、R14          D、R15

三、問答題:

1.ARM7TDMI采用了幾級流水線工作方式,簡要說明。

答:三級

2.ARM9采用了幾級流水線工作方式,簡要說明。

答:五級流水線工作方式,1.取指2.指令譯碼3.執(zhí)行4.數(shù)據(jù)存儲訪問5.寫寄存器

3.分別畫出采用大端格式及小端格式存放01020304H的存儲器示意圖

答:

4.寫出基于ARM920T核的處理器的異常優(yōu)先級由高到低的排列次序

答:復(fù)位

5.簡述ARM處理器從異常返回的步驟

答:

6.哈佛體系結(jié)構(gòu)和馮諾依曼體系結(jié)構(gòu)有何不同。

答:哈佛體系結(jié)構(gòu)有兩套地址總線和數(shù)據(jù)總線是分開的,馮諾依曼體系結(jié)構(gòu)是復(fù)用的。

7.用ARM匯編指令寫出實現(xiàn)64位加法和64位減法的代碼段,使用的寄存器請自行分配。

假定低32位數(shù)存放在r0和r1里面,高32位數(shù)存放在r2和r3里面。

答:

8.寫出四個s3c2410的中斷異常處理模塊中的主要寄存器,并簡要說明其作用。

答:158頁圖7-8 ,倒數(shù)第一行

9.ARM920T體系結(jié)構(gòu)支持哪兩種方法存儲字?jǐn)?shù)據(jù)?

答:大端模式和小端模式,大端模式高地址存的是數(shù)據(jù)的低位,低地址存存的是數(shù)據(jù)的高位。小端模式高地址存的是數(shù)據(jù)的高位,

四、程序分析題:

1.指出下面各條指令的尋址方式。

SUB    R0,R1,R2       ;尋址方式為: 寄存器尋址  

SUBS     R0,R0,#1       ;尋址方式為: 立即數(shù)尋址   

MOV   R0,R2,LSL #3   ;尋址方式為: 寄存器移位尋址   

SWP       R1,R1,[R2]     ;尋址方式為:          

LDR R2,[R3,#0x0C]  ;尋址方式為:          

2.分別寫出語句a)與b)中LDR的作用

a)  LDR r0,[r1,#6]              真正的ARM指令,取出r1+6為地址里面的存儲內(nèi)容送到r0里。

b)  LDR r0,=0x999   偽指令,把0x999這個常數(shù)送到r0里。

  3.假設(shè)R0的內(nèi)容為0x104,寄存器R1、R2的內(nèi)容分別為0x01與0x10,存儲器所有單元初始內(nèi)容為0。連續(xù)執(zhí)行下述指令后,說明存儲器及寄存器的內(nèi)容如何變化?

STMIB  R0!,{R1,R2}         //寄存器R0的內(nèi)容為0x10c, 存儲器0x108的內(nèi)容為0x01, 存儲器0x10 c的內(nèi)容為0x10,寄存器R1、R2的內(nèi)容分別為0x01與0x10。

LDMIA  R0!,{R1,R2}        

答:寄存器R0的內(nèi)容為0x114,寄存器R1的內(nèi)容為0x10,寄存器R2的內(nèi)容為0,存儲器0x10c的內(nèi)容為0 x10,存儲器0x108的內(nèi)容為0x01,存儲器其余各處的內(nèi)容都為0。

4.分析下面的程序,正確填寫下面的空格。

; 功能: 通過累加可以計算出10的整數(shù)倍    

                AREA Example1, CODE  ,READONLY       ; 此語句是聲明 代碼段Example1

                     ENTRY                                      ;此語句功能是 標(biāo)識程序入口         

                     CODE32                                    ; 聲明32位ARM指令

START         MOV             R0,#0                        ; R0 =  0  

                     MOV             R1,#10              ; R1 =  10  

LOOP            BL          ADD_SUB                       ; 調(diào)用子程序    ADD_SUB   

                     B         LOOP                              ; 跳轉(zhuǎn)到LOOP

ADD_SUB

                     ADDS     R0,R0,R1                            ; 此語句作用是完成    R0+R1再賦給R0,并且會影響CPSR中的C標(biāo)志位       

                     MOV             PC,   LR            ; 子程序返回

                     END                                          ; 此語句作用是聲明 整個程序結(jié)束     

五、編程題

1.       用匯編語言調(diào)用C語言實現(xiàn)n個數(shù)相加,n為C函數(shù)的參數(shù),由匯編語言傳遞,結(jié)果存放在R5寄存器中。

答:C程序:

int   allsum(int n)

{

       int i;

       int   nsum = 0;

       for(i=1;i<=n;i++)

{

              nsum += i;

       }

       return      nsum;

}

 

匯編程序:

       AREA  scaller, CODE,READONLY

       IMPORT allsum            //導(dǎo)入allsum

       ENTRY                        //入口點

 

       MOV      R0,#20          

       BL          allsum            //“B”子函數(shù)調(diào)用命令“L”返回主函數(shù)

       MOV      R5,R0           

HALT  B  HALT        //死循環(huán)

       END

2.利用S3C2410X的GPF4、GPF5、GPF6、GPF7四個I/O管腳控制4個LED發(fā)光二極管,編程使其實現(xiàn)所有LED全亮,間隔一段時間,所有LED全滅。

電路原理圖如下:

 

10.png

答:

void main()

{

       rGPFCON = 0x5500;                   //端口初始化  輸出端口

    rGPFUP  = 0xff;                    //不啟用上拉功能

       int i;

    rGPFDAT=0;                 //所有LED全亮

    for(i=0;i<100000;i++);

    rGPFDAT=0xF0;              //所有LED全滅

    for(i=0;i<100000;i++);

}

3.用匯編語言編寫程序讀取存儲器0x40003100地址上的數(shù)據(jù),將數(shù)據(jù)加1,若結(jié)果小于10則使用STR指令把結(jié)果寫回原地址,若結(jié)果大于等于10,則把0寫回原地址。

答:

COUNT  EQU       0x40003100                  ; 定義一個變量,地址為0x40003100      

 

                     AREA     Example2,CODE,READONLY     ; 聲明代碼段Example2

                     ENTRY                                      ; 標(biāo)識程序入口

                     CODE32                                    ; 聲明32位ARM指令

START    LDR R1,=COUNT                ; R1 <= COUNT

                     MOV      R0,#0                           ; R0 <= 0

                     STR        R0,[R1]                     ; [R1] <= R0,即設(shè)置COUNT為0

 

       LOOP     LDR R1,=COUNT 

                     LDR R0,[R1]                        ; R0 <= [R1]

                     ADD       R0,R0,#1                   ; R0 <= R0 + 1

                     CMP       R0,#10                         ; R0與10比較,影響條件碼標(biāo)志

                     MOVHS  R0,#0                           ; 若R0大于等于10,則此指令執(zhí)行,R0 <= 0

                     STR        R0,[R1]                        ; [R1] <= R0,即保存COUNT

 

                  B  LOOP                   

                     END      


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。