ARM工程师认复习题.docVIP

  • 5
  • 0
  • 约1.26万字
  • 约 8页
  • 2016-10-19 发布于贵州
  • 举报
ARM工程师认复习题

复习题 基础题 (每题分) 描述C内嵌汇编中, __asm__ __volatile__ 这一句的 __volatile__ 的作用是? 不优化代码禁止编译器进行优化2. 如何在C语言的内嵌? 3. 请写出“满递减栈 存和取的指令, 每条指令都要求写出两种形式.STMIB(地址先增而后完成操作)、STMFA(满递增堆栈); STMIA(完成操作而后地址递增)、STMEA(空递增堆栈); STMDB(地址先减而后完成操作)、STMFD(满递减堆栈); STMDA(完成操作而后地址递减)、STMED(空递减堆栈)。} LDMED R13!,{R5-R6} 4. 在arm中, cpsrspsr,以及lr的作用?? CPSR:程序状态寄存器(current program status register) ,cpsr在用户级编程时用于存储条件码。CPSR包含条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息。?SPSR:程序状态保存寄存器。SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。lr就是连接寄存器(Link Register, LR),在ARM体系结构中LR的特殊用途有两种:一是用来保存子程序返回地址;二是当异常发生时,LR中保存的值等于异常发生时PC的值减4(或者减2),因此在各种异常模式下可以根据LR的值返回到异常发生前的相应位置继续执行。5. 链接器ld的--dynamic-linker选项有什么作用? -T选项是ld命令中比较重要的一个选项,可以用它直接指明代码的代码段、数据段、bss段,对于复杂的连接,可以专门写一个脚本来告诉编译器如何连接。--dynamic-linker在静态链接的时候指定动态链接器 并链接相应的共享库6. 在链接脚本中有一句: . = 0 text_start = .; 请一条指令将text_start的值装到r0中. Ldr r0,[text_start] 或 text_start=. 7. 请描述VMA 与LMA的区别.Vma是代码要运行的时候,此时对应的地址 Lma是把不同的符号,根据符号表中的信息,转换成对应的地址。 8. 在arm ATT汇编中, . 和 .关键字? .section 自定义一个段, .org 从rom的某个地址开始。 9. 用指令举例说明arm的地址对齐问题.Int v32; __packed typedef struct _test { ????? char a; ????? short c; ????? int d; } test; char????? buff[8] = {0x12, 0x34, 0x56, 0x78, 0x9a, 0xab, 0xbc, 0xcd}; test????? *p = (test *)buff; v32 =??? p-d; 10. 这5条指令: ldr r0, =label 是将label这个变量的地址放到r0中 有什么区别? ldr r0, label 把label地址中的值赋给r0 ldr r0, =0x56789 把0x56789这个地址写的到r0中 ldr r0,[r1] 将r1中的值赋给r0; adr r0,label label的地址赋给r0; 11. ARM 机器指令是 32 bits ,12. 请说明xception Vectors(异常向量表)的作用. 用来处理程序运行中硬件、软件或中断发生的问题。 硬件问题cpu遇到未定义指令,那么好,cpu硬件会自动跳到未定义指令这个地址,那个地址我们一般会设置一个跳转指令,跳转到我们异常处理的函数13. 请描述arm发生模式切换后, 返回到原来模式 14. SWI软件中断指令的作用? 是处理器模式改变为超级用户模式,CPSR寄存器保存到超级用户模式下的SPSR寄存器,并且跳转到SWI向量。 在RISC OS中使用SWI来访问操作历程或第三方生产的模块,使用模块来给其它应用提供底层外部访问。应用实例:打印机驱动器SWI,FreeNet/Acorn TCP/IP协议栈SWI。 15. cpsr中I和F位与中的中断控制器的有什么关系?16.列举中断的? 文本文档 17.在u-boot中,读取Nand Flash 内容的命令是什么? 18. mmu的是什么?物理地址的转换. 提供硬件机制的内存访问授权. 简述冯.诺依曼结构和哈佛结构的区别,并说明ARM的哈佛结构是如何实现的.哈佛结构和冯.诺依曼结构都是一种存储器结构。哈佛结构是将指令存储器和数据存储器分开的一种存储器结构;而冯.诺依曼结构将指令存储器

文档评论(0)

1亿VIP精品文档

相关文档