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
|
|
|