arm习题(1)

上传人:wt****50 文档编号:37605268 上传时间:2018-04-19 格式:PDF 页数:29 大小:188.52KB
返回 下载 相关 举报
arm习题(1)_第1页
第1页 / 共29页
arm习题(1)_第2页
第2页 / 共29页
arm习题(1)_第3页
第3页 / 共29页
arm习题(1)_第4页
第4页 / 共29页
arm习题(1)_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《arm习题(1)》由会员分享,可在线阅读,更多相关《arm习题(1)(29页珍藏版)》请在金锄头文库上搜索。

1、ARM习题21) 说出ARM可以工作的模式名字。2) ARM核有多少个寄存器?3) 什么寄存器用于存储PC和连接寄存器?4) R13通常用来存储什么?5) 哪种模式使用的寄存器最少?6) 在Thumb 指令集中,哪些寄存器处于Low group?7) CPSR的哪一位反映了处理器的状态?8) 所有的Thumb指令采取什么对齐方式?9) ARM有哪几个异常类型。10) 为什么FIQ的服务程序地址要位于0X1C?11) 在复位后,ARM处理器处于何种模式、何种状态?41) 哪些ARM指令可以有条件的执行?2) 下面的指令完成什么工作?MOVNES r2,r3,ASR #25)Multi- ICE为

2、你完成什么工作?3) Thumb代码与ARM代码比较的两大优势?4) AMBA代表是什么?1)一条简单的算术操作( 如: ADD )要占用 几个周期?2)ARM7TDMI指令流水线有几个阶段?3)ARM7TDMI 是否使用 ALU 计算地址? 4)ARM在存储器里,可寻址几种类型的数 据?5)试举一非顺序周期的例子?6)数据总线的哪一半可被内核用作Thumb 指令?1) Harvard结构带来了哪些优势?2) ARM9TDMI流水线有几级?3)在流水线的哪一个阶段读寄存器?4)寄存器 bank由几个读或写端口?5)什么条件下会出现互锁? 1. 写一条 ARM 指令,分别完成下列操 作: a)

3、r0 = 16 b) r0 = r1 / 16(带符号的数字带符号的数字) c) r1 = r2 * 3 d) r0 = -r0 2. 下面哪些立即数是数据处理指令中有效的数 据?a) 0x00AB0000 b) 0x0000FFFF c) 0xF000000F d) 0x08000012 e) 0x00001f80 f) 0xFFFFFFFF 3. BIC指令做什么用? 4. 为什么ARM 处理器增加了一条RSB 指令?StartStopr0 = r1 ?r0 r1 ?r0 = r0 -r1r1 = r1 -r0Yes No Yes No 你只需要使用CMP、SUB和B指令。 充分使用条件执

4、行! 大家可以尝试计算大家可以尝试计算 2109 和和 4161 的的GCDAREA myarea, CODE ENTRYMOV r0, #9 MOV r1, #15 start ; your code herestop B stop END 新建一个 ARM Executable Image 项 目 新建一个 text文件 另存为 “gcd.s” 加入到项目中 Build 并执行 编写一个ARM汇编程序,累加一个队列中 的所有元素,碰上0时停止。结果放入 r4。在源文件末尾按如下方式声明队列:myarray DCD 0x11 DCD 0x22 DCD 00x2200x11r0地址增加地址增加

5、 用r0指向队列的入口ADR r0,myarray 使用LDR r1,r0,#4从队列中装载数据 累加并放入r4 循环,直到r1为0 停止,进入死循环 1. 写几条ARM 指令,使能IRQ中断 2. 下列 ARM 指令将做什么? a) LDRH r0,r1,#6 b) LDR r0, =0x999 3.在装载或存储指令中, “!”表示什么? 4. 当 执行SWI 指令时,会发生什么? 5. SWP 指令的优势是什么?1)中断向量表位于存储器的什么位置?2)IRQ或FIQ异常的返回指令是什么?3)什么类型的中断优先级最高?4)什么指令可以放在中断向量表?5)FIQ的什么特点使得它处理的速度比IR

6、Q 快?6)在嵌套的中断处理程序中,如何确保LR 没有被破坏?1)预取和数据异常之间的差别是什么?2)什么会导致未定义指令异常发生?3)为什么异常只能在arm状态下返回?4) 如何禁止中断?5)为什么在异常处理程序中,你可能想切换 到Thumb状态?1)默认的优化级别是什么?2)给tail- call优化有什么好处3) 在函数调用时,管理寄存器用法的标准 的名字是什么?4)在参数传递时,被推荐的最大的量是多 少?5)为什么在arm里要尽可能避免使用除法?6) _packed的效果是什么?1. 默认情况下,应用程序的STACK和 HEAP如何放置的?2. 如何确认在C库里没有链接进 semiho

7、sting SWI功能?3. 在scatter描述文件里,如何确定中断 向量表放在0x0?4. 哪个函数被用来放置应用stack和heap?5. 在c库初始化(main)前,使能 cache,可以避免cache相关的问题?6. 在两个区域的stack 和 heap模式,什 么符号必须引入执行?24在这个练习部分,我们将看到,C编译器的 不同优化级别对于一些简单的应用代码的 影响 (the Dhrystone 2.1 benchmark)这些信息是连接时用- info totals 选项时得到 的25这一部分里,我们可以看到由ARMulator产 生的周期信息我们将比较两种不同的内存拷贝的性能, 一 种 使 用 LDR/STR 指 令 , 令 一 种 使 用 LDM/STM(IA) 指令26这一部分主要讨论了ARMulator里的映象 文件的使用和检查了是怎样影响代码的性 能的我们将再次使用Dhrystone 2.1 代码27这一部分将会看到缓存是怎样影响代码的 性能的(利用 Dhrystone 例子).

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑机械

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号