- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统复习题
一、
1.ARM7TDMI处理器可以工作在ARM和THUMB两种工作状态,在开始执行程序时,处理器只能处于ARM状态。
2.ARM处理器的5种异常模式分别是FIQ模式,IRQ模式,SVC模式,中止模式,未定义模式。
3. ARM指令全是32位的,并且指令编码的最高4位表示条件代码,所以ARM指令全部可以条件执行。
4. 在ARM处理器中,R13通常用作堆栈指针寄存器,R14通常用作链接寄存器,R15用作程序计数器。
5. 由于在ARM状态下指令总是字对齐的,所以PC的bit[1:0]总是00。
6. 若子程序的返回地址保存在LR中,执行指令MOV PC, LR可以实现子程序的返回。
7. 使用FIQ模式下的分组寄存器R8~R12可以使FIQ中断处理过程更加快速。
8. ARM的存储器系统存储数据时支持两种格式,若较高的字节数据存放在较高的地址,则称为小端格式。
9. ARM指令的条件码符号EQ表示相等,此时CPSR中的标志位Z=1。
10.ARM7TDMI中的T表示Thumb,M表示长乘。
11. 对于3级流水线的ARM处理器,PC总是指向下2 条指令的地址,因此PC保存的地址值是当前指令地址加8。
12. ARM处理器的5种异常模式分别是①管理,②中止,③未定义,④IRQ,⑤FIQ。
13. 每一种异常模式下都有自己的R13和R14寄存器,R13通常用作堆栈指针,R14用作链接寄存器。
14. ARM指令全是32位的,并且指令编码的最高4位表示条件代码。
15. ARM的存储器系统存储数据时支持大端模式和小端模式格式。
16. ARM数据处理指令使用2个源操作数,其中第2源操作数的形式可以是寄存器,寄存器移位和立即数。
17. LDR/STR指令是用于寄存器和存储器之间进行数据传送的指令。
18.变址寻址方式按照地址偏移量变化方式不同,可以分为前变址模式,模式,自动变址 模式。
19.ARM中实现程序的跳转可以使用B指令,也可以对PC直接赋值实现程序转移。
二、
1. 数据在存储器中存放如图,程序如下:
AREA PROC, CODE, READONLY
MOV R5 , #3
MOV R4, #0
LDR R2, =0x0C000000
LDR R3, =0x0C00000C
LOOP LDR R0, [R2], #4
LDR R1, [R3], #4
0x0C000000
2
0x0C000004
3
0x0C000008
4
0x0C
1
0x0C000010
2
0x0C000014
3
MLA R4, R0, R1, R4
SUBS R5, R5, #1
BNE LOOP
B .
END
伪操作AREA的作用是什么?伪指令LDR的作用是什么?
AREA定义一个程序段,LDR将地址装载到寄存器R2,R3.
该程序执行后, (R4)=20 , (R2)=0x0C00000C
2. AREA PROC, CODE, READONLY
MOV R5 , #3
MOV R4, #0
LDR R2, =tablex
LDR R3, =tabley
LOOP LDR R0, [R2], #4
LDR R1, [R3], #4
MLA R4, R0, R1, R4
SUBS R5, R5, #1
BNE LOOP
SWI 0x11
AREA data1,DATA
tablex DCD 0x2,0x3,0x4
tabley DCD 0x1,0x2,0x3
END
说明该程序的功能,该程序执行后,(R4)=20, (R5)= 0。
3. #include stdio.h
extern void str1(char *d,const char *s);
int main( ){
const char *src=“source” ;
char dst[ ]=“destination” ;
str1(dst, src);
printf(“%s\n” ,dst);
}
AREA STRING, CODE, READONLY
EXPORT str1
str1 LDRB R
文档评论(0)