嵌入式复习思考题答案.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式复习思考题答案

嵌入式复习思考题及答案(1) 0x0000000C 000x0000001C 1 6 6 5 2 4 3 5、ARM处理器对异常中断的响应及返回过程。 答:响应过程:1、将引起异常指令的下一条指令的地址保存到新的异常工作模式的R14中; 2、将CPSR的内容保存到将要执行的异常中断对应的SPSR中; 3、根据异常类型CPSR中的运行模式位; 4、将相应的矢量地址赋值给PC,开始执行异常处理程序。还可设中断禁止位。 返回过程: 1、将连接寄存器LR的值减去相应的偏移量后送到PC中; 2、将SPSR内容送回CPSR; 3、若在进入异常处理时设置了中断禁止位,要在此清除。 6、写出ARM9支持的寻址方式,各举一例。 答:略 7、写出指令LDRB/LDRH/LDR的区别。 答:LDRB将内存单元一个字节的数据扩展到32位装载到寄存器; LDRH将内存单元半字(两个字节)的数据扩展到32位装载到寄存器; LDR 将内存单元一个字的数据装载到寄存器。 8、写出LDM、STM指令用于数据块拷贝时对应的4种后缀以及用于堆栈操作对应的4种后缀。 解释各自的执行过程。 答:数据块拷贝后缀:IA操作后指针增; DA操作后指针减; IB操作前指针增; DB操作前指针减。 堆栈操作后缀: FD满递减;ED空递减;FA满递增;EA空递增。 9、ARM和Thumb两种状态下各自堆栈的生成方式有何不同?写出各自对应的入栈、出栈指令。 答:ARM堆栈有4种生成方式满递增、满递减、空递增、空递减; 入栈指令:STM(FD\ED\FA\EA 4种后缀之一) 出栈指令:LDM(FD\ED\FA\EA 4种后缀之一) Thumb堆栈采用满递减的生成方式。 入栈指令:PUSH . 出栈指令:POP 10、写出条件代码NE、EQ的判断条件。 答:NE Z=0 (不相等); EQ Z=1 (相等) 11、B、BL及BX指令有何区别?写出无嵌套的子程序调用及返回指令。 答:B是简单的转移指令,实现向目的地址的简单的跳转; BL是带链接的转移指令,将转移指令后的下一条指令抵制保存到链接寄存器LR; BX是带状态切换的转移指令。 子程序调用指令:BL DELAY; 无嵌套的子程序返回指令 MOV PC,LR 12、举例说明伪指令LDR的2个主要用途。 答:LDR R1, =0 加载32位立即数到寄存器; LDR R1, =SRC 加载一个地址值到寄存器。 13、什么是ATPCS?它有哪些规则? 答:ATPCS是ARM程序和Thumb程序中子程序调用的基本规则,使单独编译的C程序和汇编程序能相互调用。有数据栈规则、参数传递规则和子程序调用时寄存器使用规则。 二、程序阅读题(重点检测寻址方式及指令) 1、在每条语句后做简要注释,写出程序执行后R0、R1 、R2和C的值。 (知识点:算术、逻辑操作、影响标志位S) AREA SUMM , CODE , READONLY X EQU 8 Y EQU 16 ENTRY MOV R0 , #X MOV R1 , #Y ADD R2 , R0 , R1 AND R0 , R2 , #0X0F MOV R2 , #Y ADDS R2 , R0 , R1 , LSR #1 STOP B STOP 程序执行后R0=8、R1=16 、R2=16和C=0。 END 2、分析程序,按照加“//”语句的要求解答。(知识点:堆栈操作) AREA STK , CODE , READONLY ENTRY  MOV  R1 , #0X30  MOV  R2 , #0X08 MOV  SP , #0X400   STMFD SP!,{R1,R2};// ① 写出语句执行后SP和R2的值 SP= 0X3F8 ;R2=0X08  LDMFD SP!,{R5,R6};// ② 写出语句执行后SP、R5和R6的值 SP=0X400;R5=0X30;R6=0X08 LOOP B LOOP  END 3、写出程序实现的功能,并在每条语句后做简要注释。 (知识点:寻址方式[Rn] , #immediate、循环体、数据拷贝) AREA armcopy

文档评论(0)

youshen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档