- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM复习题答案
二、全书练习题答案
第1章:
答案-填空题
1.T、D、M、I
2.存储空间管理单元(MMU)和8K Cache片内缓存(提高CPU性能)
3.QFP、TQFP、PQFP、LQFP、BGA、LBGA
4.37、32、31、6
5.大端格式和小端格式
6.片内的MMU、指令和数据缓存(IDC)、写缓冲(Write Buffer)
答案-问答题
1.ARM内核有四个功能模块T、D、M、I,可供生产厂商根据不同用户的要求来配置生产ARM芯片。
其中T功能模块表示16位Thumb,可以在兼顾性能的同时减少代码尺寸。M功能模块表示8位乘法器。D功能模块表示Debug,该内核中放置了用于调试的结构,通常它为一个边界扫描链JTAG,可使CPU进入调试模式,从而可方便地进行断点设置、单步调试。 I功能模块表示EmbeddedICE Logic,用于实现断点观测及变量观测的逻辑电路部分,其中的TAP控制器可接入到边界扫描链。
2.一个ARM720T内核基本由以下四部分组成。
(1)ARM7TDMI CPU核。该CPU核支持Thumb指令集、核调试、增强的乘法器、JTAG及嵌入式ICE。它的时钟速率可编程为18MHz、36MHz、49MHz、74MHz。
(2)内存管理单元(MMU)与ARM710核兼容,并增加了对Windows CE的支持。该内存管理单元提供了地址转换和一个有64个项的转换旁路缓冲器。
(3)8KB单一指令和数据高速缓冲存储器,以及一个四路相联高速缓冲存储器控制器。
(4)写缓冲器Write Buffer。
3.通用寄存器包括R0~R15,可以分为三类:
(1)未分组寄存器R0~R7;
(2)分组寄存器R8~R14;
(3)程序计数器PC(R15)。
4.Thumb状态下的寄存器与ARM状态下的寄存器有如下关系:
(1)Thumb状态下和ARM状态下的R0~R7是相同的。
(2)Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的。
(3)Thumb状态下的SP对应于ARM状态下的R13。
(4)Thumb状态下的LR对应于ARM状态下的R14。
(5)Thumb状态下的程序计数器对应于ARM状态下的R15。
5.当一个异常出现以后,ARM微处理器会执行以下几步操作。
(1)将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,则LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。例如:在软件中断异常SWI,指令 MOV PC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。
(2)将CPSR复制到相应的SPSR中。
(3)根据异常类型,强制设置CPSR的运行模式位。
(4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
第2章:
答案-填空题
1.ARM指令集、Thumb指令集
2.寄存器寻址、立即寻址、寄存器偏移寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、块拷贝寻址、相对寻址
3.跳转指令、数据处理指令、程序状态寄存器(PSR)传输指令、Load/Store指令、协处理器指令、异常中断产生指令
4.符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令、其他伪指令
5.在C/C++代码中嵌入汇编指令;从汇编程序中访问C程序变量;汇编程序、C/C++程序间的相互调用
6.filename.c 源文件、filename.h头文件、filename.o目标文件、filename.s汇编代码文件、filename.lst列表文件
答案-问答题
1.一条典型的ARM指令语法格式如下所示:
opcode{cond}{S}Rd,Rn, shifter_operand
其中:
opcode是指令操作符编码;
cond 是指令执行的条件编码;
S决定指令的操作是否影响CPSR的值;
Rd是目标寄存器编码;
Rn是包含第1个操作数的寄存器编码;
shifter_operand 表示第2个操作数。
2.有4种类型的堆栈,表示递增和递减的满堆栈和空堆栈的各种组合。
满递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向内含有效数据项的最高地址。指令如LDMFA,STMFA等。
空递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向堆栈上的第一个空地址。指令如LDMEA,STMEA等。
满递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向内含有效数据项的最低地址。指令如LDMFD,STMFD等。
空递增:堆栈通过减小存储器的地址
文档评论(0)