📄 abort.s
字号:
#*********************************************************************************************
# 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -