ARM题库

更新时间:2024-01-20 20:02:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、填空题

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 LDR

R1,R1,[R2] ;寻址方式为: 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

;此语句功能是 标识程序入口 ; 声明32位ARM指令 ; R0 = 0

CODE32 MOV MOV BL B

R0,#0

START

R1,#10 ; R1 = 10

; 调用子程序 ADD_SUB ; 跳转到LOOP

LOOP

ADD_SUB

LOOP

ADD_SUB

ADDS R0,R0,R1 ; 此语句作用是完成 R0+R1再

赋给R0,并且会影响CPSR中的C标志位

MOV END

PC, LR ; 子程序返回

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

五、编程题

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 BL MOV HALT END

R0,#20 allsum R5,R0 B HALT

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

//死循环

2.利用S3C2410X的GPF4、GPF5、GPF6、GPF7四个I/O管脚控制4个LED发光二极管,编程使其实现所有LED全亮,间隔一段时间,所有LED全灭。 电路原理图如下: 当这几个引脚输出高电平的时候发光二极管熄灭; 当这几个引脚输出低电平的时候发光二极管点亮。

附F组端口寄存器定义:

GPFCON寄存器(端口F配置寄存器) GPFCON GPF7 GPF6 GPF5 GPF4 GPF3 GPF2 GPF1 GPF0 位 [15:14] [13:12] [11:10] [9:8] [7:6] [5:4] [3:2] [1:0] 位 描述 00=Input 01=Output 10=EINT7 11=Reserved 00=Input 01=Output 10=EINT6 11=Reserved 00=Input 01=Output 10=EINT5 11=Reserved 00=Input 01=Output 10=EINT4 11=Reserved 00=Input 01=Output 10=EINT3 11=Reserved 00=Input 01=Output 10=EINT2 11=Reserved 00=Input 01=Output 10=EINT1 11=Reserved 00=Input 01=Output 10=EINT0 11=Reserved 描述 当端口被配置成输入时,外部数据可以从对应的端口读出;当GPF[7:0] [7:0] 端口被配置成输出时,写入该寄存器的数据会被送到对应的引脚上;当端口被配置成功能脚时,此寄存器未定义 GPFDAT寄存器(端口F数据寄存器)

GPFDAT 答:

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

LOOP

LDR

LDR ADD

R1,=COUNT R0,[R1] R0,R0,#1

; R0 <= [R1] ; R0 <= R0 + 1

0x40003100

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

AREA Example2,CODE,READONLY ; 声明代码段Example2 ENTRY ; 标识程序入口 CODE32

; 声明32位ARM指令

; R1 <= COUNT

; R0 <= 0

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

R1,=COUNT R0,#0 R0,[R1]

START LDR

MOV STR

CMP R0,#10

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

; 若R0大于等于10,则此指令执行,R0 <= 0 ; [R1] <= R0,即保存COUNT

MOVHS R0,#0 STR R0,[R1]

B LOOP

END

本文来源:https://www.bwwdw.com/article/8mao.html

Top