1.
2.
3.
实验内容:
使用MSR/MRS指令切换工作模式,并初始化各工作模式下的堆栈指针。
观察ARM在各种工作模式下寄存器的区别。
观察ARM在各种工作模式间切换时各寄存器的变化情况。
实验一 使用MSR/MRS指令切换工作模式实验(ARM7)(exp9_exa.s)
UNDEFINED_HANDLER
PREFETCH_HANDLER
ABORT_HANDLER
IRQ_HANDLER
FIQ_HANDLER
SWI_HANDLER
RESET_HANDLER
LDR R1,=0xF0000000
BIC R0,R0,#0x1F
STOP
本实验使用MSR/MRS指令完成系统初始化过程中从管理模式到用户模式的切换,采用ARMmulator方式调试,选用ARM7作为目标处理器。
单步运行程序,观察ARM寄存器、存储空间和工作模式的变化情况,并填入表中。
序号 | 执行指令 | 指令执行后的变化情况 | |||||||||
|
|
寄存器 | 存储空间 | 工作模式 | |||||||
|
|
R0 | R1 | R13_SVC | R14_SVC | R13_USR | R13_USR | R15 | CPSR | 0xF000000 | |
0 | |
|
|
|
|
|
|
|
|
|
|
1 | B RESET_HANDLER | |
|
|
|
|
|
|
|
|
|
2 | MOV R0,#0X000001F0 | |
|
|
|
|
|
|
|
|
|
3 | LDR R1,=0xF0000000 | |
|
|
|
|
|
|
|
|
|
4 | STR R0,[R1] | |
|
|
|
|
|
|
|
|
|
5 | MRS R0,CPSR | |
|
|
|
|
|
|
|
|
|
6 | MOV R13,#1 | |
|
|
|
|
|
|
|
|
|
7 | MOV R14,#2 | |
|
|
|
|
|
|
|
|
|
8 | MRS R0,CPSR | |
|
|
|
|
|
|
|
|
|
9 | BIC R0,R0,#0x1F | |
|
|
|
|
|
|
|
|
|
10 | ORR R0,R0,#0x10 | |
|
|
|
|
|
|
|
|
|
11 | MSR CPSR_c,R0 | |
|
|
|
|
|
|
|
|
|
12 | MOV R13,#3 | |
|
|
|
|
|
|
|
|
|
13 | MOV R14,#4 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
上一篇:ARM子程序设计
下一篇:ARM处理器的工作模式 (二)
推荐阅读最新更新时间:2024-03-16 14:50