25 lines
337 B
ArmAsm
25 lines
337 B
ArmAsm
|
/*
|
||
|
Example SWI (Software Interrupt)
|
||
|
also known as SVC (go to SuperVisor)
|
||
|
*/
|
||
|
.data
|
||
|
calledme:
|
||
|
.string "fireswi() has been called\0"
|
||
|
doneme:
|
||
|
.string "fireswi() has done\0"
|
||
|
|
||
|
.text
|
||
|
.global fireswi
|
||
|
fireswi:
|
||
|
push {lr}
|
||
|
|
||
|
ldr r0, =calledme
|
||
|
bl printkl
|
||
|
swi #8
|
||
|
ldr r0, =doneme
|
||
|
bl printkl
|
||
|
|
||
|
pop {lr}
|
||
|
mov pc, lr
|
||
|
|