ARM试题A卷

  • 格式:docx
  • 大小:12.47 KB
  • 文档页数:4

1ARM体系结构与编程 _学期_______________________________ 课程考试试题
吴希英学院(系):______________________________ 拟题人:
适用专业:(答案写在答题纸上,写在试题纸上无对人:
一、填空题(每空1分,共30分)
1.常见的ARM处理器内核有ARM7、ARM9和【ARM9E】等。

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

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

目前的版本为【版本】。

4.与逻辑运算规则:0?0=【0】;0?仁【0】;1?0=【0】;1?1=【1】
5.或逻辑运算规则:0+0=【0】;0+1=【1】;1+0=【1】;1+1=【1】
将2 进制转换为16 进制:(1001,1100,1011,0100, 1000)B=【9】。

属于【RISC】架构。

指令集是【32】位宽,Thumb指令集是【16】位宽。

微处理器共有【37】个【32】位寄存器,其中【31】个为通用寄存器,【6】个为状态寄存器。

9•复位后,ARM处理器处于【管理】工作模式,【ARM】状态。

3C采用的核心处理器是【ARM920T】。

的中文全称是【通用I/O端口】。

处理器有两种状态,分别是【ARM】和【Thumb]。

13.计算机结构分为【哈佛】结构和【冯诺依曼】结构。

处理器支持的数据类型中,字节为【8】位、半字为【16]位、字为【32]位。

25.将2 进制转换为16 进制:(1101,1010, 1011,01101110)B=【DAB6E 】
二、选择题:(每个选择2分,共30分)
1.在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法?【B】
A、直接修改CPU状态寄存器(CPSR)对应的模式
B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态
C、使用软件中断指令(SWI)
D、让处理器执行未定义指令
2.嵌入式系统加电或复位后,所有的CPU 通常都从某个由CPU 制造商预先安排的地址上取指令。

例如:对于S3C2410来说,BootLoader会映射到【B】地址处。

A0x0c000000B0x00000000 C0x00000018D
中的低8 位称为控制位,下列不属于控制位的是【A】。

A、N
B、I C 、F D、T
中可以访问状态寄存器的指令是【D】,能够访问内存的指令是【C】
A、MOV
B、ADD
C、LDR
D

MRS
5.下列条件码中表示不相等的是【B】。

A、EQ
B、NE C
、CS D、CC
中的低8位称为控制位,其中I位等于1表示【A】。

A、禁止IRQ中断
B、禁止FIQ中断
C、允许IRQ中断
D、允许FIQ中断
微处理器支持7种工作模式。

其中,除【A】之外的其余6种称为特权模式,在这6 种之中,除【D】之外的其余5种又称为异常模式。

A、用户模式
B、管理模式
C、中止模式
D、系统模式
规定中,栈是【B】。

A、满递增
B、满递减
C、空递增
D、空递减
9•在用ARM汇编编程是,其寄存器有多个别名,通常PC是指R15, LR是指【C】,
SP是指【B】
A、R12
B、R13
C、R14
D、R15
10.下列ARM 指令中,可用于满递增堆栈操作的是【D】。

A、STMDA
B、STMIA
C、STMDB
D、STMIB
11.下列32位数中,不可作为立即数的是【A】。

B、0x04800000
C、0x00000012
D、0x8000007
伪指令中,可用于大范围地址读取的是【C】。

A、ADR
B、ADRL
C、LDR
D、NOP
13.同CISC 相比,下面哪一项不属于RISC 处理器的特征。

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

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

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

D、RISC处理器都采用哈佛结构
14•以下叙述中,不符合RISC指令系统特点的是【B】。

A、指令长度固定,指令种类少
B、寻址方式种类丰富,指令功能尽量增强
C、设置大量通用寄存器,访问存储器指令简单
D、选取使用频率较高的一些简单指令
15.下面关于ARM处理器的体系结构描述哪一个是错误的。

【B】
A、三地址指令格式
B、所有的指令都是多周期执行
C、指令长度固定
D、Load-Store 结构
三、简答(7+2+3+5+6+8+9=40 分)
1、请写出以下相关ARM指令语句的注释:(7分)
MOVR0,PC把PC的值传送到R0寄存器,此时PC地址为当前指令位置+8
ADD R0, R1,#1 把R1加上1的结果给R0寄存器
LDR R0, 是伪指令,把0x5600010 f放到R0寄存器中,采用文字池技术
LDR PC, [PC,#4]把当前的PC值加4位置的内容赋值给PC,实现绝对跳转
MRS R0, CPSR 把CPSR的值传送给R0
BL LOOP 带返回地址的跳转指令,把下一条指令给LR后,跳转到Loop地址
STMFDR13!,{R0-R12}压栈指令,把R0到R12寄存器的值通过R13栈指针进行压站保存
2、什么是立即数?请简要描述立即数在使用时有什么注意要点。

(2分)
答:立即数,主要是指寻址时直接在指令中出现的数。

在使用时注意(1)立即数前需要加#(2)ARM指令只有32位长,立即数在指令中占12位存储空间,ARM用这12位空间8位表示有效数字—基数B ,4位表示译为的数M,按照把B循环右移M*2 位,构造成一个新的32位的数,其它位补0,所以在使用立即数时,要注意其是否合法。

3、请问BL指令跳转时LR寄存器保存的是什么内容?并请简述原因。

(3分)答:BL
跳转时丄R中保存的是执行BL跳转指令的下一条指令的地址,考虑流水
线的情况,即当前的PC-4。

LR用来在需要返回程序时从LR中还原程序执行的位置继续执行。

4、ARM内核有多少个寄存器,请列举出这些寄存器的名字和数量。

(5分)答:ARM有37个寄存器,(1)未分组寄存器:R0-R7,共8个;(2)分组寄存器R8-R14,其中FIQ模式下有单独的一组R8-R12共5个,另外6种模式共用一组
R8-R12,共5个,USR和SYS模式共用一组R13-R14,共2个,另外5种模式下各有独自
的一组R13-R14,共10个;(3)程序计数器PC即R15寄存器,共1个;(4)状态寄存器CPSR,和5个备份状态寄存器SPSR,共6个;ARM总计37个寄存器。

5、ARM 通用寄存器中,有3个寄存器有特殊功能和作用,请写出它们的名字和作用。

(6 分)
答:R13:SP栈指针寄存器,用来保存程序执行时的栈指针位置;R14:LR返回链接寄存器,用来保存程序执行BL 指令或模式切换时的返回原程序继续执行的地址;R15:PC程序计数器,保存程序执行的当前地址。

6、ARM的CPSR寄存器的位定义如图所示,试简述各位的功能。

(8分)
条件位(指令进行算术运算后的结果是否有进位,借位等),I 位(IRQ 异常允许位),F 位(FIQ 异常允许位),T 位(ARM/Thumb 工作状态),模式位(处理器工作模式)
7、(9 分)。