abort.s
来自「s3c44b0 arm工作模式实验」· S 代码 · 共 66 行
S
66 行
#*********************************************************************************************
# NAME: ARMmode.s *
# Author: Embest *
# Desc: ARM instruction examples *
# Example for Abort mode *
# History: shw.He 2005.02.22 *
#*********************************************************************************************
/*------------------------------------------------------------------------------------------*/
/* constant define */
/*------------------------------------------------------------------------------------------*/
.global _start
/*------------------------------------------------------------------------------------------*/
/* code */
/*------------------------------------------------------------------------------------------*/
.text
_start:
/*------------------------------------------------------------------------------------------*/
/* Setup interrupt / exception vectors */
/*------------------------------------------------------------------------------------------*/
b Reset_Handler
Undefined_Handler:
b Undefined_Handler
b SWI_Handler
Prefetch_Handler:
b Prefetch_Handler
Abort_Handler:
b Abort_Handler
nop /* Reserved vector */
IRQ_Handler:
b IRQ_Handler
FIQ_Handler:
b FIQ_Handler
SWI_Handler:
mov pc, lr
Reset_Handler:
visitmen:
ldr r1,=0xf0000000 /* R1 = 0xf0000000 */
ldr r2,[r1] /* read the value in 0xf0000000 into R2 */
/*------------------------------------------------------------------------------------------*/
/* the non-exist memory access will cause cpu into Abort mode (only a real hardware) */
/*------------------------------------------------------------------------------------------*/
mrs r0,spsr /* read CPSR value */
mov r13, #1 /* initialization the register in Abort mode*/
mov r14, #2
/*------------------------------------------------------------------------------------------*/
/* into User mode */
/*------------------------------------------------------------------------------------------*/
mrs r0,cpsr /* read CPSR value */
bic r0,r0,#0x1f /* clear low 5 bit */
orr r0,r0,#0x10 /* set the mode as User mode */
msr cpsr,r0 /* write the data into CPSR */
mov r13, #3 /* initialization the register in User mode */
mov r14, #4
stop:
b stop
.end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?