ARM 处理器工作模式实验

更新时间:2023-03-19 03:37:01 阅读量: 人文社科 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电 子 科 技 大 学

实 验 报 告

五、实验内容:本实验由 6 段汇编代码构成。每段功能类似,即首先利用 MRS 指令将当前 的 CPSR 寄存器内容读出,然后更改其中模式位为相应的值,最后利用 MSR 指令 将更改后的值重新 写入 CPSR 寄存器以实现处理器的工作模式的更改

六、实验器材(设备、元器件) :PC 机一台,arm 芯片,Jlinkarm

七、实验步骤及操作:

八、实验数据及结果分析:AREA Test2,CODE,READONLY CODE32 ENTRY START B Reset_Handler Undefined_Handler B Undefined_Handler SWI_Handler B SWI_Handler Prefetch_Handler B Prefetch_Handler Abort_Handler B Abort_Handler IRQ_Handler B IRQ_Handler FIQ_Handler

B FIQ_Handler Reset_Handler ;进入 System 模式 MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x1F MSR CPSR_c,R0 MOV R0,#1 MOV R1,#2 MOV R2,#3 MOV R3,#4 MOV R4,#5 MOV R5,#6 MOV R6,#7 MOV R7,#8 MOV R8,#9 MOV R9,#10 MOV R10,#11 MOV R11,#12 MOV R12,#13 MOV R13,#14 MOV R14,#15 ;进入 FIQ 模式 MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x11 MSR CPSR_c,R0 MOV R8,#16 MOV R9,#17 MOV R10,#18 MOV R11,#19 MOV R12,#20 MOV R13,#21 MOV R14,#22 ;进入 IRQ 模式 ;复制 CPSR 到 R0 ;清除 R0 的后 5 位 ;设定 R0 的最

后 5 位为 11111 ;把 R0 装载到 CPSR,切换到系统模式 ;对系统模式下的 R0 赋值,下面的 R1~R14 一样

;设定 R0 的最后 5 位为 10001 ;把 R0 装载到 CPSR,切换到 Fiq 模式 ;给 Fiq 模式的特有缓存器 R8 赋值,下面的 R9~R14 一样

MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x12 MSR CPSR_c,R0 MOV R13,#23 MOV R14,#24 ;进入 SVC 模式 MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x13 MSR CPSR_c,R0 MOV R13,#25 MOV R14,#26 ;进入 Abort 模式 MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x17 MSR CPSR_c,R0 MOV R13,#27 样 MOV R14,#28 ;进入 UNDEF 模式 MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x1b MSR CPSR_c,R0 MOV R13, #29 MOV R14, #30 B Reset_Handler END

;设定 R0 的最后 5 位为 10010 ;把 R0 装载到 CPSR,切换到 IRQ 模式 ;给 IRQ 模式的特有缓存器 R13 赋值,下面的 R14 一样

;设定 R0 的最后 5 位为 10011 ;把 R0 装载到 CPSR,切换到 Svc 模式 ;给 SVC 模式的特有缓存器 R13 赋值, 下面的 R14 一样

;设定 R0 的最后 5 位为 10111 ;把 R0 装载到 CPSR,切换到 Abort 模式 ;给 Abort 模式的特有缓存器 R13 赋值, 下面的 R14 一

;设定 R0 的最后 5 位为 11011 ;把 R0 装载到 CPSR,切换到 UNDEF 模式 ;给 UNDEF 模式的特有缓存器 R13 赋值, 下面的 R14 一样

;跳移到 Reset_Handler 循环

实验结果截图:

九、实验结论:

十、总结及心得体会:

十一、对本实验过程及方法、手段的改进建议:

报告评分: 指导教师签字:

本文来源:https://www.bwwdw.com/article/py2j.html

Top