【ARM】异常产生指令

00. 目录

01. 异常产生指令概述

ARM 指令集中提供了两条产生异常的指令,通过这两条指令可以用软件的方法实现异常。如表 3-15 所示为 ARM 异常产生指令。

在这里插入图片描述

02. 软件中断指令

软件中断指令(Software Interrupt,SWI)用于产生软中断,从而实现从用户模式变换到管理模式,CPSR 保存到管理模式的 SPSR 中,执行转移到 SWI 向量,在其他模式下也可以使用 SWI 指令,处理器同样切换到管理模式。

2.1 指令的语法格式

SWI{<cond>} <immed_24>

2.2 应用示例

① 下面指令产生软中断,中断立即数为 0。

SWI 0;

② 产生软中断,中断立即数为 0x123456。

SWI 0x123456;

③ 使用 SWI 指令时,通常使用以下两种方法进行参数传递。

指令 24 位的立即数指定了用户请求的类型,中断服务程序的参数通过寄存器传递。

@ 下面的程序产生一个中断号为 12 的软中断。
MOV R0,#34  ;设置功能号为 34
SWI 12  ;产生软中断,中断号为 12

另一种情况,指令中的 24 位立即数被忽略,用户请求的服务类型由寄存器 R0 的值决定,参数通过其他寄存器传递。

@ 下面的例子通过 R0 传递中断号,R1 传递中断的子功能号。
MOV R0,#12 ;设置 12 号软中断
MOV R1,#34 ;设置功能号为 34
SWI 0

03. 附录

11.1 ARM Architecture Reference Manual

猜你喜欢

转载自blog.csdn.net/dengjin20104042056/article/details/106853478