【ARM】异常产生指令
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】异常产生指令相关推荐
- 嵌入式:ARM异常中断指令SWI、BKPT、CLZ详解
文章目录 SWI 二进制编码 汇编格式 断点指令(BKPT-仅用于v5T体系) 二进制编码 汇编格式 前导0计数 二进制编码 汇编格式 异常中断指令可以分为一下两种: 软件中断指令(SWI) 断点指令 ...
- ARM开发基础--指令,异常源及处理过程
本文主要面向初次接触ARM的初学者,主要做基础知识的讲解与科普,希望能对初学者有所帮助. 文章目录 前言 一.什么是指令?指令有哪些? 二.常用指令 1.数据处理指令 2.数据跳转指令 3.Load/ ...
- 对ARM异常(Exceptions)的理解
对ARM异常(Exceptions)的理解 1 .对 ARM 异常( Exceptions )的理解 所有的系统引导程序前面中会有一段类似的代码,如下: .globl _start ...
- 【ARM】协处理器指令
00. 目录 文章目录 00. 目录 01. 协处理器指令概述 02. ARM寄存器到协处理器寄存器的数据传送指令MCR 2.1 指令编码格式 2.2 指令的语法格式 2.3 指令举例 2.4 指令的 ...
- 【ARM】arm异常中断处理知识点
ARM处理器7种类型异常 按优先级从高到低的排列如下: 复位异常(Reset) 数据异常(Date Abort) 快速中断异常(FIQ) 外部中断异常(IRQ) 预取异常(Prefetch Abort ...
- 函数指针数组在ARM异常中断处理中的应用
介绍一种简洁.高效.灵活的ARM异常中断处理方法. 在ARM中,由于所有的中断都使用同一个异常中断入口地址,即0x00000018.因此需要在异常中断处理程序中根据相应的中断号调用对应的中 ...
- arm中clz指令_JavaScript中带有示例的Math.clz32()方法
arm中clz指令 JavaScript | Math.clz32()方法 (JavaScript | Math.clz32() Method) Math.clz32() is a function ...
- 汇编语言0x2c,ARM汇编语言(4) 指令、伪操作、伪指令学习
LDR指令与LDR伪指令的4种形式: LDR R0,[R1]:指令,将R1指向的内存地址存放的内容加载到R0中: LDR R0,LABEL:指令,将标号LABEL所代表的内存地址处存放的内容加载到R0 ...
- 【干货来袭】arm程序汇编指令总结,让你更高效的学习!
现在学嵌入式的人也是越来越多了,那当然arm程序也是必须要学的,在这里有很多人对arm程序汇编指令都或多或少的不了解,可以说不熟悉,今天就以arm程序来看,让你对arm程序汇编指令有更深入的学习. 首 ...
最新文章
- [wp7游戏]wp7~~飞行射击精品游戏~~集合贴
- C++实现一个简易的线程池
- Scala入门到精通——第三节 Array、List
- 1.Excel业务分析数据
- 电脑的虚拟服务器位置,如何配置基于IP地址的虚拟主机
- Java 实验5 T4 检验字符串是否合法
- [WebKit] JavaScriptCore解析--高级篇(一) SSA (static single assignment)
- thinkphp出现此页面不能重定向
- 冒泡排序C语言实现代码
- carsim/trucksim获取轮胎侧偏刚度、纵向刚度
- 微信小程序中 scroll-view滚动条始终在最底部
- 听歌识曲算法技术[语音识别]
- C#应用案例之打字母游戏
- 理解JavaScript设计模式
- 华为p20支持手机云闪付吗_银联云闪付支持HuaweiPay
- 729. 我的日程安排表 I
- 理论物理极础4:质点系
- JAVA毕业设计汽车美容管理计算机源码+lw文档+系统+调试部署+数据库
- html 表头单元格换行,Table组件怎样在单元格长文本不换行情况下正确对应表头与单元格?...
- linux跳板,Linux基础-case -跳板主机