《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > ARM题库

ARM题库

2015-09-25
关键词: ARM 题库

一、填空题

1.    常见的ARM处理器内核有   ARM 7   、   ARM 9   和   ARM 11   等。

2.    ARM处理器有两种状态,分别是   ARM    状态 和    Thumb    状态。

3.    按总线所传送的信息类型,总线分为  数据总线  、  地址总线   和  控制总线   。

4.    ADS 是一套用来开发ARM 处理器应用系统的开发工具包,用户可以用ADS 编辑、编译和调试C、C++以及汇编程序。目前的版本为 ADSv1.2  。

5.    与逻辑运算规则:0 • 0=  0  ;0 • 1=  0  ; 1 • 0=  0  ; 1 • 1=  1 

6.    或逻辑运算规则: 0 + 0=  0  ;0 +1=  1  ; 1 + 0=  1  ; 1 + 1=  1 

将2进制转换为16进制:(10011100101101001000) B =            。

7.ARM 属于  RISC    架构。

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

9.ARM体系结构版本中V___4___版架构是目前应用最广的ARM体系架构,ARM7、___ ARM 9  ___都采用该架构。

10.ARM微处理器共有__37_个__32_ 位寄存器,其中_31___个为通用寄存器,____6__个为状态寄存器。

11.常用的嵌入式操作系统有 嵌入室Linux 、  VxWorks      等。

12.ARM嵌入式系统主要由 嵌入室硬件 、  嵌入室软件   和   开发工具  构成。

13.复位后,ARM处理器处于   SVC   工作模式,   ARM    状态。

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

15.S3C2410 支持两种引导方式,分别是  Nor-Flash  启动方式、 Nand-Flash 启动方式。

16.GPIO的中文全称是     通用输入输出端口        。

17.ARM处理器有两种状态,分别是   ARM    和    Thumb     。

18.计算机结构分为  哈佛体系   结构和   冯诺依曼体系   结构。

19.ARM处理器支持的数据类型中,字节为   8  位、半字为   16   位、字为   32   位。

20.将2进制转换为16进制:(11011010101101101110) B = (           ) H

21.ARM状态下,SP寄存器指的是     R13     、LR寄存器指的是      R14        、PC寄存器指的是  R15         。

22.一个嵌入式系统由3部分组成,分别是  嵌入式硬件   、  嵌入式软件    和    开发工具          。

二、选择题:

1.相对于ARM指令集,Thumb指令集的特点是___  。

A、指令执行速度快

B、16位指令集,可以得到密度更高的代码,对于需要严格控制成本的设计非常有意义

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

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

2.在ARM寄存器结构中,栈指针使用__B__寄存器。

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

3.在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法?      

A、直接修改CPU状态寄存器(CPSR)对应的模式

B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态

C、使用软件中断指令(SWI)

D、让处理器执行未定义指令

4.嵌入式系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。例如:对于S3C2410来说,Boot Loader会映射到______地址处。                                      

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

5.32位体系结构的ARM处理器有____种不同的处理器工作模式,和____个主要用来标识CPU工作状态和程序运行状态的状态寄存器。

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属于     结构,ARM9属于     结构。

A、 冯.诺依曼             B、 哈佛

8.ARM7是     级流水线,ARM9是     级流水线。

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

9.ARM中可以访问状态寄存器的指令是     ,能够访问内存的指令是     。

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

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

A、用户模式(User)

B、系统模式(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种称为特权模式,在这6种之中,除     之外的其余5种又称为异常模式。

A、用户模式    B、管理模式    C、中止模式    D、系统模式

15. ATPCS规定中,栈是     。

   A、满递增    B、满递减    C、空递增    D、空递减

16. 在用ARM汇编编程是,其寄存器有多个别名,通常PC是指R15,LR 是指     ,SP是指    

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

17.下列条件码中表示无符号数小于的是____。

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

18.下列ARM指令中,可用于满递增堆栈操作的是____。

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

19.下列32位数中,不可作为立即数的是____。

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

20.ATPCS规定数据栈是____类型。

A、满递减              B、满递增            C、空递减            D、空递增

21.ARM伪指令中,可用于大范围地址读取的是____。

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

22.同CISC相比,下面哪一项不属于RISC处理器的特征。____

A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有2~3种。

B、减少指令数和寻址方式,使控制部件简化,加快执行速度。

C、数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率,同时简化处理器的设计。

D、RISC处理器都采用哈佛结构

23.以下叙述中,不符合RISC指令系统特点的是    。

A、 指令长度固定,指令种类少

B、 寻址方式种类丰富,指令功能尽量增强

C、 设置大量通用寄存器,访问存储器指令简单

D、 选取使用频率较高的一些简单指令

24.下面关于ARM处理器的体系结构描述哪一个是错误的。____

A、三地址指令格式

B、所有的指令都是多周期执行

C、指令长度固定

D、Load-Store结构

25.在ARM寄存器结构中,栈指针使用____寄存器,

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

三、问答题:

1.ARM7TDMI采用了几级流水线工作方式,简要说明。

答:三级

2.ARM9采用了几级流水线工作方式,简要说明。

答:五级流水线工作方式,1.取指2.指令译码3.执行4.数据存储访问5.写寄存器

3.分别画出采用大端格式及小端格式存放01020304H的存储器示意图

答:

4.写出基于ARM920T核的处理器的异常优先级由高到低的排列次序

答:复位

5.简述ARM处理器从异常返回的步骤

答:

6.哈佛体系结构和冯诺依曼体系结构有何不同。

答:哈佛体系结构有两套地址总线和数据总线是分开的,冯诺依曼体系结构是复用的。

7.用ARM汇编指令写出实现64位加法和64位减法的代码段,使用的寄存器请自行分配。

假定低32位数存放在r0和r1里面,高32位数存放在r2和r3里面。

答:

8.写出四个s3c2410的中断异常处理模块中的主要寄存器,并简要说明其作用。

答:158页图7-8 ,倒数第一行

9.ARM920T体系结构支持哪两种方法存储字数据?

答:大端模式和小端模式,大端模式高地址存的是数据的低位,低地址存存的是数据的高位。小端模式高地址存的是数据的高位,

四、程序分析题:

1.指出下面各条指令的寻址方式。

SUB    R0,R1,R2       ;寻址方式为: 寄存器寻址  

SUBS     R0,R0,#1       ;寻址方式为: 立即数寻址   

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为地址里面的存储内容送到r0里。

b)  LDR r0,=0x999   伪指令,把0x999这个常数送到r0里。

  3.假设R0的内容为0x104,寄存器R1、R2的内容分别为0x01与0x10,存储器所有单元初始内容为0。连续执行下述指令后,说明存储器及寄存器的内容如何变化?

STMIB  R0!,{R1,R2}         //寄存器R0的内容为0x10c, 存储器0x108的内容为0x01, 存储器0x10 c的内容为0x10,寄存器R1、R2的内容分别为0x01与0x10。

LDMIA  R0!,{R1,R2}        

答:寄存器R0的内容为0x114,寄存器R1的内容为0x10,寄存器R2的内容为0,存储器0x10c的内容为0 x10,存储器0x108的内容为0x01,存储器其余各处的内容都为0。

4.分析下面的程序,正确填写下面的空格。

; 功能: 通过累加可以计算出10的整数倍    

                AREA Example1, CODE  ,READONLY       ; 此语句是声明 代码段Example1

                     ENTRY                                      ;此语句功能是 标识程序入口         

                     CODE32                                    ; 声明32位ARM指令

START         MOV             R0,#0                        ; R0 =  0  

                     MOV             R1,#10              ; R1 =  10  

LOOP            BL          ADD_SUB                       ; 调用子程序    ADD_SUB   

                     B         LOOP                              ; 跳转到LOOP

ADD_SUB

                     ADDS     R0,R0,R1                            ; 此语句作用是完成    R0+R1再赋给R0,并且会影响CPSR中的C标志位       

                     MOV             PC,   LR            ; 子程序返回

                     END                                          ; 此语句作用是声明 整个程序结束     

五、编程题

1.       用汇编语言调用C语言实现n个数相加,n为C函数的参数,由汇编语言传递,结果存放在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            //导入allsum

       ENTRY                        //入口点

 

       MOV      R0,#20          

       BL          allsum            //“B”子函数调用命令“L”返回主函数

       MOV      R5,R0           

HALT  B  HALT        //死循环

       END

2.利用S3C2410X的GPF4、GPF5、GPF6、GPF7四个I/O管脚控制4个LED发光二极管,编程使其实现所有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地址上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。

答:

COUNT  EQU       0x40003100                  ; 定义一个变量,地址为0x40003100      

 

                     AREA     Example2,CODE,READONLY     ; 声明代码段Example2

                     ENTRY                                      ; 标识程序入口

                     CODE32                                    ; 声明32位ARM指令

START    LDR R1,=COUNT                ; R1 <= COUNT

                     MOV      R0,#0                           ; R0 <= 0

                     STR        R0,[R1]                     ; [R1] <= R0,即设置COUNT为0

 

       LOOP     LDR R1,=COUNT 

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

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

                     CMP       R0,#10                         ; R0与10比较,影响条件码标志

                     MOVHS  R0,#0                           ; 若R0大于等于10,则此指令执行,R0 <= 0

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

 

                  B  LOOP                   

                     END      


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。