00. 目录

文章目录

  • 00. 目录
  • 01. 异常产生指令概述
  • 02. 软件中断指令
    • 2.1 指令的语法格式
    • 2.2 应用示例
  • 03. 附录

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

【ARM】异常产生指令相关推荐

  1. 嵌入式:ARM异常中断指令SWI、BKPT、CLZ详解

    文章目录 SWI 二进制编码 汇编格式 断点指令(BKPT-仅用于v5T体系) 二进制编码 汇编格式 前导0计数 二进制编码 汇编格式 异常中断指令可以分为一下两种: 软件中断指令(SWI) 断点指令 ...

  2. ARM开发基础--指令,异常源及处理过程

    本文主要面向初次接触ARM的初学者,主要做基础知识的讲解与科普,希望能对初学者有所帮助. 文章目录 前言 一.什么是指令?指令有哪些? 二.常用指令 1.数据处理指令 2.数据跳转指令 3.Load/ ...

  3. 对ARM异常(Exceptions)的理解

    对ARM异常(Exceptions)的理解 1 .对 ARM 异常( Exceptions )的理解 所有的系统引导程序前面中会有一段类似的代码,如下: .globl _start           ...

  4. 【ARM】协处理器指令

    00. 目录 文章目录 00. 目录 01. 协处理器指令概述 02. ARM寄存器到协处理器寄存器的数据传送指令MCR 2.1 指令编码格式 2.2 指令的语法格式 2.3 指令举例 2.4 指令的 ...

  5. 【ARM】arm异常中断处理知识点

    ARM处理器7种类型异常 按优先级从高到低的排列如下: 复位异常(Reset) 数据异常(Date Abort) 快速中断异常(FIQ) 外部中断异常(IRQ) 预取异常(Prefetch Abort ...

  6. 函数指针数组在ARM异常中断处理中的应用

    介绍一种简洁.高效.灵活的ARM异常中断处理方法.       在ARM中,由于所有的中断都使用同一个异常中断入口地址,即0x00000018.因此需要在异常中断处理程序中根据相应的中断号调用对应的中 ...

  7. arm中clz指令_JavaScript中带有示例的Math.clz32()方法

    arm中clz指令 JavaScript | Math.clz32()方法 (JavaScript | Math.clz32() Method) Math.clz32() is a function ...

  8. 汇编语言0x2c,ARM汇编语言(4) 指令、伪操作、伪指令学习

    LDR指令与LDR伪指令的4种形式: LDR R0,[R1]:指令,将R1指向的内存地址存放的内容加载到R0中: LDR R0,LABEL:指令,将标号LABEL所代表的内存地址处存放的内容加载到R0 ...

  9. 【干货来袭】arm程序汇编指令总结,让你更高效的学习!

    现在学嵌入式的人也是越来越多了,那当然arm程序也是必须要学的,在这里有很多人对arm程序汇编指令都或多或少的不了解,可以说不熟悉,今天就以arm程序来看,让你对arm程序汇编指令有更深入的学习. 首 ...

最新文章

  1. [wp7游戏]wp7~~飞行射击精品游戏~~集合贴
  2. C++实现一个简易的线程池
  3. Scala入门到精通——第三节 Array、List
  4. 1.Excel业务分析数据
  5. 电脑的虚拟服务器位置,如何配置基于IP地址的虚拟主机
  6. Java 实验5 T4 检验字符串是否合法
  7. [WebKit] JavaScriptCore解析--高级篇(一) SSA (static single assignment)
  8. thinkphp出现此页面不能重定向
  9. 冒泡排序C语言实现代码
  10. carsim/trucksim获取轮胎侧偏刚度、纵向刚度
  11. 微信小程序中 scroll-view滚动条始终在最底部
  12. 听歌识曲算法技术[语音识别]
  13. C#应用案例之打字母游戏
  14. 理解JavaScript设计模式
  15. 华为p20支持手机云闪付吗_银联云闪付支持HuaweiPay
  16. 729. 我的日程安排表 I
  17. 理论物理极础4:质点系
  18. JAVA毕业设计汽车美容管理计算机源码+lw文档+系统+调试部署+数据库
  19. html 表头单元格换行,Table组件怎样在单元格长文本不换行情况下正确对应表头与单元格?...
  20. linux跳板,Linux基础-case -跳板主机

热门文章

  1. kdevelp 导入makefile工程
  2. 平台服务器测试3—接口测试工具实现
  3. ajax常见问题汇总(一)
  4. python控制台输出到文件_Python print 立即打印内容到重定向的文件
  5. 特效html布局,一些好玩的css特效
  6. vue 返回上一页传参_H5页面与微信小程序相互跳转并传参(web-view)
  7. Jmeter_简单的关联设置
  8. 二叉树前中后、层次遍历
  9. 蓝书3.7 欧拉回路
  10. mysql数据库的系统操作基本操作