ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:18.65KB ,
资源ID:30554603      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30554603.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式思考题第三章.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式思考题第三章.docx

1、嵌入式思考题第三章嵌入式思考题(第三章)嵌入式思考题(第三章)1) Arm指令是有条件执行,常用的条件助记符EQ,NE,HI,LS是何意义?条件码助记符后缀标志含义0000EQZ置位相等/是否为00001NEZ清零不相等1000HIC置位并且Z清零无符号数大于1001LSC清零或Z置位无符号数小于或等于2)一些指令不需要后缀“S”,也能更新条件码标志,是哪几个?CMP,CMN,TST,TEQ (其唯一功能就是更新条件码标志)3)第二操作数做立即数时,哪些是有效的,哪些是无效的?立即数不能做为目标操作数的,但可以作为源操作数。MOV AX,1234H这是正确的MOV 1234H,AX 这是错误的

2、4)LSL、LSR、ASL、ASR、ROR、RRX的含义?LSL:逻辑左移(按操作数所指定的数量向左移位,低位用零填充)LSR:逻辑右移ASL:算术左移指令(每执行一次,将D通道中的数据按位左移一位最高位移到CY中,0移进最低位)ASR:算术右移指令ROR:循环右移指令(每执行一次,将D通道中的数据连同CY的内容,按位循环右移一位)RRX:带扩展的循环右移(按操作数所指定的数量向右循环移位,左端用进位标志位C来填充)5)根据下面的指令,写出执行的结果:ADD R3,R2,R1,LSR#2 R3=R2+R11LDR R0,R1,R2,LSL #2 将存储器地址为R1+R22的字数据读入寄存器R0

3、中LDR R0,R1,#4! 将存储器地址为R1+4的字数据读入寄存器R0中,并将R1+4的值存入R1LDR R0,R3, R8 将存储器地址为R3的字数据读入寄存器R0中,并将R3-R8的值存入R0LDR R0,R3,R8,LSL #2 将存储器地址为R3的字数据读入寄存器R0中,并将R3+R82(即R3-R8/4),R3和R8不变LDREQSH R11,R6 (有条件地)将寄存器R6的值传送给R11,加载16位半字,带符号扩展到32位STRH R4,R0+R1 将寄存器R4的值传送给地址为R0+R1的寄存器STRD R4,R9,#24 将寄存器R4的值传送给地址为R9+24的寄存器,将寄存

4、器R5的值传送给地址为R9+28的寄存器6)根据下面的指令,写出执行的结果:LDMIA R1,R0,R2,R5 (R1)-R0,(R1)+4)-R2,(R1)+8)-R5LDMIB R1,R0,R2,R5 (R1)+4)-R0,(R1)+8)-R2,(R1)+12)-R5LDMDA R1,R0,R2,R5 (R1)-R0,(R1)-4)-R2,(R1)-8)-R5LDMDB R1,R0,R2,R5 (R1)-4)-R0,(R1)-8)-R2,(R1)-12)-R57)理解多寄存器寻址和堆栈寻之间的联系,分别写出堆栈寻找LDMFA、LDMED、STMEA、STMFD所对应的多寄存器寻找指令。多寄

5、存器寻址:LDMIA:每次传送后地址加4;LDMIB:每次传送前地址加4;LDMDA:每次传送后地址减4;LDMDB:每次传送前地址减4;堆栈寻址:LDMFA:满递减堆栈;LDMED:空递减堆栈;STMFD:满递增堆栈;STMEA:空递增堆栈。8)理解BIC、ORR、TST、EOR等指令的用途BIC:BIC(位清除)指令对 Rn 中的值 和 Operand2 值的反码按位进行逻辑“与”运算。BIC 是 逻辑”与非” 指令, 实现的 Bit Clear的功能。ORR:ORR逻辑或操作指令指令格式为ORRcondSRd,Rn,operand2。ORR指令将操作数operand2与Rn的值按逻辑或,

6、结果存放到目的寄存器Rd中。TST:Test测试指令用于将一个寄存器的值和一个算术值做比较。条件标志位根据两个操作数做“逻辑与”后的结果设置。EOR:逻辑异或EOR(Exclusive OR)指令将寄存器中的值和的值执行按位“异或”操作,并将执行结果存储到目的寄存器中,同时根据指令的执行结果更新CPSR中相应的条件标志位。9)利用MRS/MSR如何禁止或者使能IRQ和FIQ的中断?在ARM处理器中,只有MSR指令可以对状态寄存器CPSR和SPSR进行写操作。与MRS配合使用,可以实现对CPSR或SPSR寄存器的读-修改-写操作,可以切换处理器模式、或者允许/禁止IRQ/FIQ中断等。1,使能I

7、RQ中断:ENABLE_IRQMRSR0,CPSR;将CPSR寄存器内容读出到R0BICR0,R0,#0x80;清掉CPSR中的I控制位MSRCPSR_c,R0;将修改后的值写回CPSR寄存器的对应控制域MOVPC,LR;返回上一层函数2,禁用IRQ中断:DISABLE_IRQMRSR0 CPSR;将CPSR寄存器内容读出到R0ORRR0,R0,#0x80;设置CPSR中的I控制位MSRCPSR_c,R0;将修改后的值写回CPSR寄存器的对应控制域MOVPC,LR;返回上一层函数10)软中断指令SWI的立即数如何获取?理解立即数作为中断号时,整个中断服务程序的调用过程。(结合“ucosII已移

8、植好的实验代码”)1,获取immed_24操作数:LDR R0,LR,#-4 (将链接寄存器LR的内容减去4后所获得的值作为一个地址,然后把该地址的内容装载进R0)BIC R0,R0,#0xFF000000(将R0的高8位清零,并把结果保存到R0,意思就是取R0的低24位)2,使用参数寄存器:在执行SWI指令之前,给R0赋予某个数值,然后在SWI异常处理子程序中根据R0值实现不同的分支处理。11)LDR伪指令通过何种方式实现任意立即数的赋值?1,LDR pc, =MyHandleIRQ 表示将MyHandleIRQ符号放入pc寄存器中2,LDR PC,MyHandleIRQ 表示将读取存储器中

9、MyHandleIRQ符号所表示的地址中的值,及需要多读一次存储器。12)Thumb指令与ARM指令有哪些不同?1,Thumb 指令可以看作是 ARM 指令压缩形式的子集,是针对代码密度的问题而提出的,它具有 16 位的代码密度但是它不如ARM指令的效率高。Thumb 不是一个完整的体系结构,不能指望处理只执行Thumb 指令而不支持 ARM 指令集。因此,Thumb 指令只需要支持通用功能,必要时可以借助于完善的 ARM 指令集,比如,所有异常自动进入 ARM 状态。2,Thumb 指令集没有协处理器指令,信号量指令以及访问 CPSR 或 SPSR 的指令,没有乘加指令及 64 位乘法指令等

10、,且指令的第二操作数受到限制;除了跳转指令 B 有条件执行功能外,其它指令均为无条件执行;大多数 Thumb 数据处理指令采用 2 地址格式。Thumb指令集与 ARM 指令的区别一般有如下几点:跳转指令程序相对转移,特别是条件跳转与ARM代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移。数据处理指令数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第3个寄存器中.数据处理操作比ARM状态的更少,访问寄存器R8R15受到一定限制。除MOV和ADD指令访问器R8R15外,其它数据处理指令总是更新CPSR中的ALU状态标志。访问寄存器

11、R8R15的Thumb数据处理指令不能更新CPSR中的ALU状态标志。单寄存器加载和存储指令在Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0R7。批量寄存器加载和存储指令LDM和STM指令可以将任何范围为R0R7的寄存器子集加载或存储。PUSH和POP指令使用堆栈指令R13作为基址实现满递减堆栈。除R0R7外,PUSH指令还可以存储链接寄存器R14,并且POP指令可以加载程序指令PC。13)在非特权模式下能否对 CPSR 寄存器设置?能否读取 CPSR 寄存器的值?(提示:参考实验程序有相应的代码,运行测试一下) 只有在特权模式下才允许对当前程序状态寄存器CPSR的所有控制位直接进行读/写访问,而在非特权模式下只允许对CPSR的控制位进行间接访问,但可以读取CPSR的值。14)在非特权模式下如何使能/禁止 IRQ 或 FIO 中断?(提示:可以先使用 SWI 指令切换到管理模式) 使用SWI指令切换到管理模式。15)程序中能不能通过MSR指令直接修改CPSR中的T位来实现ARM状态/Thumb状态的切换?不能。如果这样做的话不会清空流水线,是不安全的。可以使用BX指令进行状态切换,程序跳转的同时进行状态切换,当程序发生跳转时流水线会被清空,流水线中按原来处理器状态进行取指和译码的指令(与当前处理器状态不符的指令)会被清除,也就不会引起处理器的错误。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1