视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
arm题库(部分)
2025-10-02 12:25:16 责编:小OO
文档
第一章:

1、嵌入式系统的定义

以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、成本、体积、功耗严格要求的专用计算机系统。

2、嵌入式系统的应用领域

工业控制领域:工控设备、智能仪表、汽车电子

消费电子领域:信息家电、智能玩具、通信设备、移动存储设备

网络技术:网络设备、电子商务

军事国防:军事电子、航海航天

3、嵌入式技术的发展趋势

嵌入式设备进入网络互联是未来的发展趋势

优化嵌入式系统软硬件内核,提高系统运行速度,降低功耗和硬件成本

指令级的并行计算技术将引入嵌入式微处理器

嵌入式微处理器将会向多核技术发展

嵌入式技术将引领信息时代

4、下面不符合嵌入式操作系统特点的是(B)

A、实时性  B、不可定制C、微型化 D、可移植性

第二章:ARM技术与ARM体系结构

1、RISC

Reduced Instruction Set Computer,精简指令集计算机

2、分析ARM7TDMI-S个字母所代表的含义

7:系列号

T:支持16位的Thumb指令集

D:支持JTAG片上调试

M:支持长乘法操作的ARM指令

I:带有嵌入式追踪宏单元ETM,用来设置断点和观察点的调试硬件

S:可综合版本,意味着处理器内核是以源代码形式提供的。

3、ARM处理器的工作模式

用户模式、FIQ模式、IRQ模式、SVC模式、中止模式、未定义指令异常模式、系统模式

4、7种工作模式哪几种属于模式、那种属于异常模式。

在7种工作模式中,除了用户模式以外,其他6种模式可以称为模式,在6种模式中,除了系统模式外其他5种称为异常模式。

5、ARM有15个通用寄存器、一个或两个状态寄存器和PC,有些模式共用同一个寄存器,一共具有37个寄存器。

6、R12一般在子程序连接代码中使用,作为子程序间的中间结果寄存器;R13通常被用做栈指针,也称做SP;R14又被称为连接寄存器LR

7、寄存器R14的两种特殊用途

存放当前子程序的返回地址;当发生异常中断的时候,该模式下的特定物理R14被设置成该异常模式将要返回的地址。

8、程序状态寄存器

标志位   

I :IRQ中断使能位;

F:FIQ中断使能位;

T:指令执行的状态控制位(说明本指令是THUMB指令还是ARM指令)

9、ARM异常处理的异常分类

数据中止、快速中断请求、普通中断请求、预取指中止、软件中断、复位及未定义指令

10、ARM处理器字数据的存储格式有哪两种?并指出这两种格式的区别。

大端对齐和小端对齐

11、ARM处理器寄存器R0中的数据内容为0xAABBCCDD,将其存放到内存地址0x10000开始的内存单元中,分别采用小端对齐存储格式和大端对齐格式存储,试分析内存地址0x10000字节单元的内容。

答:小端模式:0x10000~0x10003中依次存放的数据是0x DD   0x CC  0x BB 0xAA

大端模式:0x10000~0x10003中依次存放的数据是0xAA   0x BB    0x CC   0x DD 

12、ARM7采用的是三级流水技术,指令分为三个阶段执行:取指、译码、执行;ARM9采用的是五级流水技术,指令分为三个阶段执行:取指、译码、执行、存储器访问、寄存器写操作;

13、什么叫做流水线互锁

答:在流水线运行过程中可能会出现这种情况:当前指令的执行可能需要前面指令的执行结果,但这时前面的指令没有执行完毕,从而会导致当前指令的执行无法获得合法的操作数,这时就会引起流水线的等待,这种现象在流水线机制里称为互锁。

14、嵌入式处理器指令的执行周期包括(D)

A.启动 运行 退出

B.取指令 指令译码 执行指令 存储 

C.启动 运行 挂起 退出

D.取指令 指令译码 执行指令

15.Embedded Visual Studio是(B)

A.嵌入式硬件开发工具

B.嵌入式软件开发工具

C.嵌入式调试工具

D.嵌入式编译工具

16.JTAG的引脚TCK的主要功能是(C)

A.嵌入式硬件开发工具

B.嵌入式软件开发工具

C.嵌入式调试工具

D.嵌入式编译工具

17、数据与指令都存储在存储器中是冯诺依曼体系结构的主要特点。ARM一般采用的是哈佛体系结构。

18、以下叙述中,不符合RICS特征的是(B )

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

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

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

D. 选取使用频率较高的指令

19、在下列ARM处理器模式中,(D)模式有自己的R8-R14寄存器。

A.系统模式

B.终止模式

C.中断模式

D.快速中断模式

20、按照ARM过程调用标准(APCS),栈指针使用(B)寄存器

A.R0

B.R13

C.R14

D.R15

21、嵌入式系统应用软件一般在宿主机上开发,在目标机上运行,因此需要一个(B)环境。

A.交互操作系统

B.交叉编译

C.交互平台

D.分布式计算

22、ARM处理器中断有两种处理模式,分别为快速中断模式和外部中断模式。

23、嵌入式系统中按照总线的传送的信息类型,可以分为数据总线、地址总线和控制总线

第三章 ARM指令集寻址方式

1、立即数

每个立即数由一个8位的常数进行32位循环右移偶数位得到,其中循环右移的位数由一个4位二进制的两倍表示。

选择题:下列哪个不是合法的立即数:0xFF, 0x104, 0x39C00, 0x1FE800

2、寄存器寻址

选择题:下列哪条指令属于寄存器寻址?

MOV R1 ,#0x198   LDR R0 , [R1 , #4]   MOV R3 , R0   MOV R0 , [R2] ,#4

3、下面哪条语句执行后,实现了R0=[R1+R2*4],

LDR  R0 ,[ R1,R2,LSL #2 ];

LDR  R0 ,[ R1,R2,LSL #2 ]!;

LDR  R0 ,[ R1],R2,LSL #2 ;

LDR  R0 ,[ R2,R1,LSL #2 ];

第四章 ARM指令系统

1、算术运算指令

选择题:下列哪条指令逆向减法指令?

SUB R0,R1; SUBS R0, R1;SBC R0, R1;RSB R0,R1;

2、逻辑运算指令

选择题:下列哪条指令能实现清除R0中的低8位,其他位保持不变?

ADD  R0,R0,#0Xff ;

ORR  R0,R0,#0Xff ; 

EOR  R0,R0,#0Xff ; 

BIC  R0,R0,#0Xff ; 

3、ARM分支指令

选择题:下列哪条指令是带状态切换的跳转指令

B      BL       BX       BLX

第五章:

Thumb指令与ARM指令性能比较,分别有什么优缺点。

答:Thumb代码所需的存储空间约为ARM代码的60%~70%

Thumb代码使用的指令数比ARM代码多30%~40%

若使用32位的存储器,ARM代码比Thumb代码快约40%

若使用16位的存储器,Thumb代码比ARM代码快约40%~50%

在ARM代码相比较,使用Thumb代码,存储器的功耗会降低约30%

第六章

第七章 汇编语言程序设计

1、写出完成下列操作的指令

(1)R0=16    MOV R0,#16;

(2)R1=R0*4  MUL R1,R0,#4;

(3)R0=R1/16  MOV R0,R1,LSL#4;

(4)R1=R2*7   MUL R1,R2,#7;

2、下列指令完成什么操作

(1)ADDS  R0,R1,R1,LSL #2     R0=R1+(R1<<4);

(2)RSB  R2,R1,#0               R2=R1-0

(3)ADD  R0,R1,R1,LSL  #1   R0=R1+(R1<<2)

(4)SUB  R0,R0,R1,LSL  #4     R0=R0-(R1<<16)

(5)ADD  R0,R0,R1,LSL  #7    R0=R0+(R1<<128)

(6)MLA  R0,R1,R2              R0=R1×R2

(7)SMULL  R0,R1,R2,R3

                                    R0=(R2×R3)的低32位

                                    R1=(R2×R3)的高32位

(8)BL  LABEL            当程序无条件跳转到标号LABEL处执行时,同时将当前的PC值保存到R14中

3、用ARM汇编语言设计程序实现求20!(20的阶乘),并将其位结果放在[R9:R8]中(R9中存放高32位)。

AREA  Fctrl, CODE, READONLY

ENTRY

CODE32

STARY

     MOV   R8, #20

     MOV   R9, #0

     SUB    R0, R8, #1

LOOP

     MOV   R1, R9

     UMULL R8, R9, R0,R8

     MLA    R9,R1,R0,R9

     SUBS    R0,R0, #1

     BNE    LOOP

STOP

     B  STOP

     END

4、先对内存地址0x3000开始的100个内存单元填入0x10000001~0x100000字数据,然后将每个字单元进行位累加结果保存于[R9:R8](R9中存放高32位)

AREA  Fctrl, CODE, READONLY

ENTRY

CODE32

STARY

     MOV   R0, #3000

     MOV   R1, #0x10000001

     MOV   R2, #0x100

LOOP_1

     STR    R1,[R0],#4

     ADD   R1, R1, #1

     SUBS  R2,R2, #1

     BNE   LOOP_1

     MOV   R0, #0x3000

     MOV   R2, #0x100

MOV   R9, #0

MOV   R8, #0

LOOP_2

     LDR    R1, [R0], #4

ADDS   R8, R1, R8

     ADC  R9, R9,#0

     SUBS    R2, R2 ,#1

     BNE    LOOP_2

STOP

     B  STOP

     END

5、8421码是一种十进制数,它采用4个bit位表示一个十进制位,分别用0000~1001表示十进制的0~9。设计汇编程序将一个可以表示8位十进制的8421码数据转换成等价的整数形数据。

AREA  Dec, CODE, READONLY

ENTRY

CODE32

LDR  R0,=0x12345678

Dec2int

MOV  R1, #0

MOV  R2, #8

MOV  R5,#10

Dec2int_l1

MUL  R4, R1, R5

MOV  R0, R0, ROR  #28

AND  R3, R0, #0Xf

ADD  R1, R4, R3

SUBS  R2, R2, #1

BNE  Dec2int_l1

STOP

     B  STOP

     END

第8章ARM汇编语言与嵌入式C混合编程

1、下面关于嵌入式C的描述,正确的是(c)

A、总在第一个定义的函数执行B、要调用的函数,必须在main( )中定义

C、总是从main( )处开始执行  D、main( )必须放在程序的开始处

2、已知有变量data1定义如下:(c)

Union data

{  int i;

   Char ch;

   Float f;

}data1;

则变量data1所占的内存存储空间可表示为。

A.sizeof(int)

B.sizeof(char)

C.sizeof(float)

D.sizeof(int)+ sizeof(char)+ sizeof(float)

3、什么是交叉编译,为什么要采用交叉编译(5分)

答:所谓交叉编译,是指在一个平台上编译生成在另一个平台上运行的可执行程序。(3分)之所以采用交叉编译,是因为目标平台上不具备直接运行开发环境的条件(2分)。

4、在ARM系统中,函数调用的时候,参数是通过哪种方式传递的?

参:应用程序中使用中间寄存器和数据栈来传递参数。在ARM汇编中,如果第1-4个参数通过R0-R4来传递,超过4个的使用数据栈进行传递,输出函数R0传递。

5、中断(interrupt,如键盘中断)与异常(exception,如除0异常)有什么区别?

参:所谓的中断应该是指外部硬件产生的一个电信号,从cpu的中断引脚进入,打断cpu当前的运行。

所谓异常,是指软件运行中发生了一些必须作出处理的事件,cpu自动产生一个陷入来打断当前运行,转入异常处理流程。

6、通过取出LedStatus的特定位进行判断选择对端口B的数据寄存器进行特定的清零,控制LED1和LED2灯的点亮,其中端口B(rPDATAB)的第2、3管脚分别连接LED1、LED2(注:管脚从第0管脚开始编号,低电平点亮,程序不更改其他位)

参:

(1)取出LedStatus的第0位进行判断,如果成立则把端口B的数据寄存器的第2位清零,其余位状态保留,点亮LED1:

If((Ledstatus & 0x01) = = 0x01)

  rPDATAB= rPDATAB & 0Xfffffffb;

(2)取出LedStatus的第1进行判断,如果成立则把端口B的数据寄存器的第3清零,其余位状态保留,点亮LED2

If((Ledstatus & 0x01) = = 0x02)

  rPDATAB= rPDATAB & 0Xfffffff7;下载本文

显示全文
专题