实验三ARM工作模式切换实验.docVIP

  • 245
  • 0
  • 约2.49千字
  • 约 5页
  • 2017-03-28 发布于重庆
  • 举报
实验三ARM工作模式切换实验

实验三 ARM工作模式切换实验 一、实验目的 1. 掌握ARM的各种工作模式 熟悉ARM各种工作模式下的寄存器 3. 学会使用软件编程实现ARM工作模式间的切换 二.实验内容和步骤 任务:使用MSR/MRS指令切换工作模式(ARM9) 创建项目,并添加shiyan3.s源文件,文件内容如下: 程序解读:本程序使用MSR/MRS指令完成系统初始化过程从管理模式到用户模式的切换,采用Softsim方式调试,选用ARM9TDMI作为目标处理器。 .text .global _start _start: /* 安装中断向量表 */ /*只定义了Reset_Handler 入口,其它中断跳转到自身 */ B Reset_Handler Undefined_Handler: B Undefined_Handler B SWI_Handler Prefetch_Handler: B Prefetch_Handler Abort_Handler: B Abort_Handler NOP IRQ_Handler: B IRQ_Handler FIQ_Handler: B FIQ_Handler SWI_Handler: MOV PC,LR Reset_Handler: /* into System mode */ MRS r0,CPSR BIC r0 , r0 , #0x1F ORR r0 , r0 , #0x1F MSR CPSR ,r0 /* into FIQ mode */ MRS r0,CPSR BIC r0 , r0 , #0x1F ORR r0 , r0 , #0x11 MSR CPSR ,r0 /*注意在调试器中观察该模式下的寄存器r8-r14有无发生变化 */ /* into SVC mode */ MRS r0,CPSR BIC r0 , r0 , #0x1F ORR r0 , r0 , #0x13 MSR CPSR ,r0 /*注意在调试器中观察该模式下的寄存器r13-r14有无发生变化 */ /* into Abort mode */ MRS r0,CPSR BIC r0 , r0 , #0x1F ORR r0 , r0 , #0x17 MSR CPSR ,r0 /*注意在调试器中观察该模式下的寄存器r13-r14有无发生变化 */ /* into IRQ mode */ MRS r0,CPSR BIC r0 , r0 , #0x1F ORR r0 , r0 , #0x12 MSR CPSR ,r0 /*注意在调试器中观察该模式下的寄存器r13-r14有无发生变化 */ /* into UNDEF mode */ MRS r0,CPSR BIC r0 , r0 , #0x1F ORR r0 , r0 , #0x1b MSR CPSR ,r0 /*注意在调试器中观察该模式下的寄存器r13-r14有无发生变化 */ (2)通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,记录在表1中,并读懂程序,然后阅读代码手工计算每一步的执行结果,核对和之前你在表上填的值是否一致。 表1 shiyan3.s 单步运行结果 序号 执行指令 指令执行后的变化情况(用十六进制表示) 寄存器 R0 R1 R13 R14 R15 CPSR 其他 工作模式 0 ---- 0X000000D3 000 SVC 1 0X000000D3 00X00000BA4 0 SVC 2 0X000000C0 00X00000BA4 0 SVC 3 0X000000DF 00X00000BA4 0X0000802C SVC 4 0X000000DF 00X00000BA4 0 SVC 5 0X000000DF 0000X000000DF SVC 6 0X000000DF 0000X000000DF SVC 7 0X000000C0 000X0000803C 0X000000DF USER 8 0

文档评论(0)

1亿VIP精品文档

相关文档