全球旧事资料 分类
是多少?作为指令指针的PC又指向哪条指令?这个指令与流水线执行的关系是什么?(选做)
答:1)基址加变址寻址;2)PC6.通过运行及观察“使用BX指令切换处理器状态”汇编程序实验,回答
fARM指令与Thumb指令之间是如何实现状态切换的?AXD
Debugger调试环境中的哪个寄存器指示了ARM微处理器当前
的指令状态?同时,在程序中添加从Thumb指令切换到ARM
指令的代码。(选做)
答:1)BX指令使用寄存器作为参数,当32位操作数
寄存器的第0位的值为1时,执行BX指令后,ARM处理器从
16位半字节对齐ARM指令状态切换到32位字对齐Thumb指
令状态;当32位操作数寄存器的第0位为0时,ARM处理器
从Thumb指令状态切换到32位ARM指令状态。
2)CPSR的value值为
zcvqIFt_SVC时为ARM32指令状
态;为
zcvqIFT_SVC时
为Thumb16指令状态
3)AREA
XTFCODEREADONLY声明代码段XTF
ENTRY标识程序入口CODE32声明32位ARM指令
SARTMOVR11设置参数MOVR22ADD
R0R1R2R0
I
to_ThumbMOVR53MOVR64ADD
R4R5R6LDRR3Bach_to_ARM将Back_to_ARM地址值赋
给R3产生字对齐的跳转地址,最低位被清除,即bit0为
0BXR3Bra
chExcha
ge返回到ARM状态,此时运行在
ARM指令集环境里CODE32ARM状态下的子函数
Bach_to_ARMMOVR83MOVR94ADDR7R8R9END
f7.观察“微处理器工作模式切换”程序的运行,按顺序写出ARM工作模式切换过程中依次出现的工作模式,同时,通过观察回答ARM微处理器是否能从用户模式切换到特权模式?(选做)
答:1)Usr用户Sys(系统)Fiq(快中断)Svc(管理)Abt终止Irq(中断)U
d(未定义)2)用户模式不能直接切换到其他处理模式(特权模式),特权模式可以自由切换到其他处理器模式。程序:AREAWork_mode_switchCODEREADONLY
ENTRYCODE32入口
ow_i
_svc_modeARM处理器默认工作在SVC模式M10011切换原理:CPSR最低8位I、F、T、M位用作控制位,当异常出现时改变控位。其中,中断标志位I、F;指令状态标志T;工作模式位M40通过软件控制模式位M即可控制ARM工作状态。i
to_Sys_mod系统模式下可运行具有特权的操作系统任务,与用户
f模式类似,但可以直接切换到其他模式。MRSR0CPSR复制CPSR到R0
i
to_Fiq_mode用于高速数据传输或通道处理,Fiq异常响应时进入此模式
MRSR0CPSRBICR0R00x1FORRR0R00x11MSRCPSR_cR0MOVR132
复制CPSR到R0清楚R0的后5位设定R0的最后5位为10001把R0装在到CPSR,切换到快中断模式对快中断r
好听全球资料 返回顶部