ARM中专用指令(异常向量表、异常源、异常返回等)

news2024/11/25 22:28:01

状态寄存器传送指令

  • CPSR寄存器
    状态寄存器传送指令:访问(读写)CPSR寄存器
    @ 读CPSR
    @ MRS R1, CPSR
    @ R1 = CPSR
    @ 写CPSR
    @ MSR CPSR, #0x10 @0x10为User模式,且开启IRQ和FRQ
    @ CPSR = 0x10
    @ 在USER模式下不能随意修改CPSR,因为USER模式属于非特权模式
    @ MSR CPSR, #0xD3

软中断指令

  • ARM异常源
    在这里插入图片描述

  • ARM异常模式
    在这里插入图片描述

  • 异常向量表在这里插入图片描述

  • ARM异常响应
    在这里插入图片描述

  • 异常返回
    在这里插入图片描述

  • 异常响应代码如下:
    状态寄存器传送指令:访问(读写)CPSR寄存器
    @ 读CPSR
    @ MRS R1, CPSR
    @ R1 = CPSR
    @ 写CPSR
    @ MSR CPSR, #0x10 @0x10为User模式,且开启IRQ和FRQ
    @ CPSR = 0x10
    @ 在USER模式下不能随意修改CPSR,因为USER模式属于非特权模式
    @ MSR CPSR, #0xD3
    @ 1.5 软中断指令:触发软中断
    @ 异常向量表
    @ B MAIN
    @ B .
    @ B SWI_HANDLER
    @ B .
    @ B .
    @ B .
    @ B .
    @ B .
    @ 应用程序
    @ MAIN:
    @ MOV SP, #0x40000020
    @ 初始化SVC模式下的栈指针
    @ MSR CPSR, #0x10
    @ 切换成USER模式,开启FIQ、IRQ
    @ MOV R1, #1
    @ MOV R2, #2
    @ SWI #1
    @ 触发软中断异常
    @ ADD R3, R2, R1
    @ B STOP
    @ 异常处理程序
    @ SWI_HANDLER:
    @ STMFD SP!,{R1,R2,LR}
    @ 压栈保护现场
    @ MOV R1, #10
    @ MOV R2, #20
    @ SUB R3, R2, R1
    @ LDMFD SP!,{R1,R2,PC}^
    @ 出栈恢复现场
    @ 将压入到栈中的LR(返回地址)出栈给PC,实现程序的返回
    @ ‘^’表示出栈的同时将SPSR的值传递给CPSR,实现CPU状态的恢复

协处理器指令

  • 协处理器指令:操控协处理器的指令
    @ 1.协处理器数据运算指令
    @ CDP
    @ 2.协处理器存储器访问指令
    @ STC 将协处理器中的数据写入到存储器
    @ LDC 将存储器中的数据读取到协处理器
    @ 3.协处理器寄存器传送指令
    @ MRC 将协处理器中寄存器中的数据传送到ARM处理器中的寄存器
    @ MCR 将ARM处理器中寄存器中的数据传送到协处理器中的寄存器

伪指令

  • 伪指令:本身不是指令,编译器可以将其替换成若干条等效指令
    @ 空指令
    @ NOP
    @ 指令
    @ LDR R1, [R2]
    @ 将R2指向的内存空间中的数据读取到R1寄存器
    @ 伪指令
    @ LDR R1, =0x12345678
    @ R1 = 0x12345678
    @ LDR伪指令可以将任意一个32位的数据放到一个寄存器
    @ LDR R1, =STOP
    @ 将STOP表示的地址写入R1寄存器
    @ LDR R1, STOP
    @ 将STOP地址中的内容写入R1寄存器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1494230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js五星评价的制作方法

方法有两种&#xff0c;1、jquer插件&#xff1b;2、图片循环&#xff1b; 第一种、效果图 代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"…

机器学习---拉格朗日乘子法、Huber Loss、极大似然函数取对数的原因

1. 拉格朗日乘子法 拉格朗日乘子法&#xff08;Lagrange multipliers&#xff09;是一种寻找多元函数在一组约束下的极值的方法。通过引 入拉格朗日乘子&#xff0c;可将有d个变量与k个约束条件的最优化问题转化为具有d&#xff0b;k个变量的无约束优化 问题求解。本文希望通…

java工程师面试笔试题,阿里+头条+抖音+百度+蚂蚁+京东面经

前言 分布式事务主要解决分布式一致性的问题。说到底就是数据的分布式操作导致仅依靠本地事务无法保证原子性。与单机版的事务不同的是&#xff0c;单机是把多个命令打包成一个统一处理&#xff0c;分布式事务是将多个机器上执行的命令打包成一个命令统一处理。 MySQL 提供了…

软件测试计划包括哪些内容?专业第三方软件测试机构推荐

软件测试计划是为确保软件质量而制定的详细计划&#xff0c;它在软件开发周期中扮演着至关重要的角色。一个良好的软件测试计划可以确保软件在交付给最终用户之前经过全面的测试和验证&#xff0c;减少软件出现缺陷和问题的可能性。 软件测试计划一般包括以下内容&#xff1a;…

汇编程序中引用头文件

文章目录 写在前面x86汇编示例(AT&T风格ARM汇编示例运行结果 写在前面 汇编程序中也是可以使用头文件的&#xff0c;因为头文件实际上就是预处理中的一环&#xff0c;使用预处理器也对汇编程序中的头文件进行预处理 本文使用的汇编例程&#xff1a; x86版 AT&T汇编hel…

打印螺旋矩阵

打印螺旋矩阵 题目 如&#xff1a;输入 n 5&#xff1b; 输出&#xff1a; 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9解题 这种规律打印题我个人感觉是真的不好写&#xff0c;一看答案感觉也就那回事&#xff0c;真自己琢磨&#xff0c;半…

15 实战:Kaggle房价预测 + 课程竞赛:加州2020年房价预测【李沐动手学深度学习课程笔记】

15 实战&#xff1a;Kaggle房价预测 课程竞赛&#xff1a;加州2020年房价预测【李沐动手学深度学习课程笔记】https://zhuanlan.zhihu.com/p/685343754 写在前面&#xff1a;这里格式很乱&#xff0c;代码直接去知乎copy 1 实战Kaggle比赛&#xff1a;预测房价 1.1 实现几个函…

flowable使用taskService.addComment新增评论需要full_msg字段进行读取

背景 在构建创业项目JeecgFlow过程中&#xff0c;在调用taskService.addComment接口出现了异常。就是数据存储的Message信息出现了截取&#xff0c;也就是存储不完整。 效果如下. flowable版本6.7.2 问题排查 接口详解及问题代码 //新增评论的接口说明 Comment addComment(…

华为OD机试“HJ5 进制转换”Java编程解答

描述 写出一个程序&#xff0c;接受一个十六进制的数&#xff0c;输出该数值的十进制表示。 数据范围&#xff1a;保证结果在 1≤n≤231−1 输入描述&#xff1a; 输入一个十六进制的数值字符串。 输出描述&#xff1a; 输出该数值的十进制字符串。不同组的测试用例用\…

OpenAI高管联名回击:马斯克曾提议并入特斯拉,认为OpenAI注定失败

丨划重点 ① OpenAI周二发文回应马斯克提起的诉讼&#xff0c;称对双方走到这一步感到很难过。 ② 这篇博文的作者包括了OpenAI五位高管&#xff0c;其中首席科学家苏茨凯弗已经久违露面。 ③ OpenAI证实&#xff0c;只从马斯克处获得不到4500万美元资金&#xff0c;其他支持者…

企业对接Walmart平台API流程 On-request Reports API(二)

对接On-request Reports API 1、对接指南1.1 报告生成时间1.2 报告保留期1.3 请求限制1.4 报告请求工作流如何申请报告第 1 步&#xff1a;申请取消报告第 2 步&#xff1a;获取报表可用性状态第 3 步&#xff1a;下载报告 URL 2、代码实现2.1、获取访问API的token2.2、构建公共…

【记录】IDA|IDA设置text view为默认,并解决IDA7.6打开新固件卡顿的问题

版本&#xff1a;IDA Pro 7.6 Graph View&#xff08;控制流视图&#xff09;其实我真的看得很少&#xff0c;因为遇到分析难题时总是是因为间接调用&#xff0c;它根本分析不出来。但是一开IDA它就自动分析这个特别卡。所以今天想彻底解决一下&#xff0c;让默认打开为Text V…

day7-网络编程

1>基于UDP的网络聊天室 Ser.c #include <myhead.h> #define SER_IP "10.211.55.9" // 服务器IP #define SER_PORT 9999struct user {char usrName[20];struct sockaddr_in cin; }; int main(int argc, char const *argv[]) {// 1.创建用于监听的套接字int…

2024-3-6-数据库作业

作业&#xff1a;数据库操作的增、删、改完成 &#xff08;目前只能实现静态管理&#xff09; 源代码&#xff1a; #include <myhead.h> void do_add(sqlite3 *ppDb) {char *errmsg NULL;char sql[128] "insert into Worker values(1001,小张,15000);";//…

《中学综合素质》黄金卷(二)

2.对下图漫画描述不正确的是&#xff08;A &#xff09;。 A.忽视了平等待生 B.忽视了学生的个性发展 C.忽视了学生的差异性 D.违背了素质教育观 8.“任何组织或者个人不得隐匿、毁弃、非法删除未成年人的信件、日记、电子邮件或者其 他网络通讯内容”&#xff0c;对照《中华…

离散数学例题——3.计数和集合论(集合与二元关系)

幂集与子集数目 集合运算 集合的证明 集合构建符号证明 用集合成员表证明 用集合运算定律证明 无限集、等势、无限可数集和无限不可数集的基数 关系的定义、个数 关系的表示 关系的运算 使用矩阵运算实现关系的运算 关系的证明 关系的性质 自反性和反自反性&#xff08;矩阵对…

大唐杯学习笔记:Day5

1.1 小区搜索 搜索流程 PLMN选择 自动模式&#xff1a;UE根据NAS的请求或自主地向NAS报告可用的PLMN 手动模式&#xff1a;通过手动选择一个可用的VPLMN获取正常服务 频点选择 5G NR中,3GPP主要指定了两个频率范围,一个是6GHZ以下,另一个是毫米波,分别称之为FR1和FR2。 N…

CorelDRAW Graphics Suite2024订阅版费用与永久版的区别

CorelDRAW Graphics Suite的订阅版是一种按周期付费的软件使用模式&#xff0c;允许用户以一定的费用在一段时间内访问和使用CorelDRAW Graphics Suite的全部或部分功能。这种模式通常不涉及软件的所有权转让&#xff0c;而是提供使用权。 CDR2024绿色版下载链接: https://pan…

显示高考天数倒计时——vba实现

以下代码实现高考倒计时&#xff1a; Sub 高考倒计时() 高考日期 CDate("06,07," & Year(Date)) If Date > 高考日期 Then高考日期 CDate("06-07-" & Year(Date) 1) End If 年月日 Year(Date) & "年" & Month(Date) &am…

【OpenGL的着色器03】内置变量和函数(gl_Position等)

目录 一、说明 二、着色器的变量 2.1 着色器变量 2.2 着色器内置变量 三、最常见内置变量使用范例 3.1 常见着色器变量 3.2 示例1&#xff1a; gl_PointSize 3.3 示例2&#xff1a;gl_Position 3.4 gl_FragColor 3.5 渲染点片元坐标gl_PointCoord 3.6 gl_PointCoo…