嵌入式系统第3次离线作业(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《嵌入式系统》作业三
一、判断题
1.ARM属于CISC体系架构。F
2.除了用户模式外,ARM处理器的其它几种工作模式属于特权模式。T
3.在任何模式下,ARM处理器都可以访问全部寄存器。F
4.在ARM处理器中,快速中断(FIQ)的优先级高于外部中断(IRQ)。T
5.使用立即寻址时,目标寄存器可以为立即数。F
6.BLX指令可以将处理器切换到Thumb状态。T
7.链接寄存器(LR)用于保存子程序的返回地址,它不能用作其他用途。F
8.由于使用寄存器R0-R3来传递参数,所以调用子程序时,参数不能超过4个。F
9.使用汇编编写ARM程序时,可直接为PC寄存器赋值。T
10.ATPCS是ARM程序和Thumb程序中子程序调用的规则,它是一套强制规则。F
二、选择题
11.下列哪项不是ARM处理器的特点。B
A.小体积、低功耗
B.可以使用除加载/存储指令外的多种指令访问存储器
C.大多数数据操作在寄存器中完成,执行速度快
D.支持Thumb/ARM双指令集
12.当加法指令产生进位时,下列哪个条件标志位会发生变化:A
A. C
B.T
C.I
D. F
13.下列哪个不属于ARM处理器的寻址方式:D
A.立即寻址
B.寄存器寻址
C.寄存器间接寻址
D.链表寻址
14.下列哪条指令是块操作指令:C
A.STMFD
B.POP
C.LDMIA
D.PUSH
15.下列哪条指令把寄存器R1、R2的值相加后存到R0中:C
A.AND R0, R1, R2
B.SUB R0, R1, R2
C.ADD R0, R1, R2
D.AND R1, R2, R0
16.R0的中的值为0xFFF3,执行指令AND R0, R0, #3后,R0的值为:A
A.0x0003
B.0xFFFF
C.0xFFF0
D.0xFFF3
17.CPZSR寄存器中的Z条件码为0,当前的PC值为0xFF00,则执行BEQ 0xAAA0后,
PC值为:C
A.0xAAA0
B.0xAAA4
C.0xFF04
D.0xFF00
18.下列哪条ARM汇编伪指令可用来定义符号:A
A.GBLA
B.IF
C.MAP
D.WHILE
阅读下列程序,回答9~10题:
LDR R0, 0x22
LDR R1, 0x11
SUB R0, R0, R1
CMP R0, R1
19.执行这段程序后,R0的值为:C
A. A 0x22
B. B 0x33
C. C 0x11
D. D 0
20.执行这段程序后,CPSR的下列哪个标志位将发生变化:C
A. C
B.V
C.Z
D.以上都不对
三、简答题
21.请简述ARM处理器的堆栈寻址和块拷贝寻址模式,并比较它们的不同点。
答:堆栈寻址: 按先入先出的方式工作。
块拷贝寻址: 一种多寄存器传送指令,用于将一块数据从存储器的某一块位置拷贝到多个寄存器中或相反。
主要不同点:两者存放数据的顺序相反。
22.函数strncpy的作用是将长度为n的数组s拷贝至d,void strncpy(char *s, const char *d, int n)
{
int c;
__asm
{
loop:
CMP n,#0
BEQ out
LDRB c,[s],#1
STRB c,[d],#1
SUB n,n,#1
B loop
out:
}
}
请将该函数补充完整。