试验意图:
1. 把握ARM的各种作业形式
2. 了解ARM各种作业形式下的寄存器
3. 学会运用软件完结ARM作业形式间的切换。
试验内容:
运用MSR/MRS指令切换作业形式,并初始化各作业形式下的仓库指针。
调查ARM在各种作业形式下寄存器的差异。
调查ARM在各种作业形式间切换时各寄存器的改变状况。
试验一 运用MSR/MRS指令切换作业形式试验(ARM7)(exp9_exa.s)
AREA INIT,CODE,READONLY
ENTRY
B RESET_HANDLER ;管理形式SVC
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
MOV R0,#0X000001F0 ;初始化R0( IFT=1;用户形式 )
LDR R1,=0xF0000000 ;
STR R0,[R1] ;保存R0
MRS R0,CPSR ;CPSR——>R0
MOV R13,#1 ;写入R13=1
MOV R14,#2 ;写入R14=2
MRS R0,CPSR ;CPSR——>R0
LDR R1,=0xF0000000 ;
STR R0,[R1] ;保存R0
BIC R0,R0,#0x1F
ORR R0,R0,#0x10 ;改写R0
MSR CPSR_c,R0 ;R0——> CPSR (切换至用户形式USR)
MOV R13,#3 ;写入R13=3
MOV R14,#4 ;写入R14=4
STOP B STOP
END
本试验运用MSR/MRS指令完结体系初始化过程中从管理形式到用户形式的切换,选用ARMmulator方法调试,选用ARM7作为方针处理器。
单步运转程序,调查ARM寄存器、存储空间和作业形式的改变状况,并填入表中。
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 | ||||||||||