Bienvenido: Ingresar
location: ASMInstruccionSWIARM

Instrucción para interrupcion por software SWI

Esta instruccion genera un excepción, esta excepción permite que desde un modo usuario sin privilegio, se pueda correr una rutina en modo sistema.

Los procesadores ARM poseen un nivel de privilegios lo cual permite al menos dos formas de trabajar

En este último caso, es necesario a veces que la aplicación requiera recursos que no le son permitido por sus restricciones, lo mas apropiado cuando esto ocurre, es crear un servicio desde el SO que efectue lo que la aplicación necesita, y luego sea llamada por esta a travez de un SWI.

una llamada SWI hará lo siguiente:

Esta instrucción posee un valor inmediato de 24bits, estos 24bits no son usados por el procesador, sirven principalmente para especificar el servicio a usar o algun parámetro del servicio, otra via para pasar el numero del servicio, es a travez de R0, pudiendo usarse los demás registros para pasar otros parámetros.

Código

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

09

08

07

06

05

04

03

02

01

00

cond

1

1

1

1

valor inmediato de 24 bits

donde

cond Es la condición que debe ser cierta para que se ejecute la instrucción.