ARM学习笔记8——通用寄存器和存储器内容交换指令和软中断指令
交换指令将一个存储单元内容与制定的寄存器内容相交换,交换指令为进程间同步提供了一种方便的解决途径。该指令产生一堆原子Load/Store操作,该操作发生在一个连续的总线操作中,在操作期间阻止其他任何指令对该存储单元的读/写。
一、通用寄存器和存储器字数据交换指令SWP
1、作用
将一个内存单元(该单元地址放在寄存器Rn中)的内容读取到一个寄存器Rd中,同时将另一个寄存器Rm的内容写入到该内存单元中。
2、语法格式
SWP{<condition>} <Rd>,<Rm>,[<Rn>]
3、参数说明
3.1、<Rd>:确定指令的目标寄存器
3.2、<Rm>:该寄存器包含将要被存储到内存单元中的数据
3.3、<Rn>:内存单元地址寄存器
4、举例
将r1的内容和r0指向的存储单元的内容进行交换
SWP r1,r1,[r0]
二、通用寄存器和存储器字节数据交换指令SWPB
1、作用
将内存单元中一个字节的内容和寄存器内容进行交换
2、语法格式
SWP{<condition>}B <Rd>,<Rm>,[Rn]
3、参数说明
3.1、<Rd>:确定指令的目标寄存器
3.2、<Rm>:该寄存器包含将要被存储到内存单元中的数据
3.3、<Rn>:内存单元地址寄存器
三、软中断指令SWI
1、作用
用于产生软中断,从而实现从用户模式变换到管理模式,CPSR保存到管理模式的SPSR中,执行转移到SWI向量,在其他模式下也可以使用SWI指令,处理器同样切换到管理模式。
2、语法格式
SWI{<condition>} <immed_24>
3、参数说明
<immed_24>:指定一个24位立即数,ARM处理器不对该立即数进行任何处理,其作用是提供给操作系统,从而判断用户程序请求的服务类型。
4、举例
产生软中断,中断立即数为0
SWI 0
ARM学习笔记8——通用寄存器和存储器内容交换指令和软中断指令的更多相关文章
- Android学习笔记(十九)——内容提供器
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整 ...
- arm学习笔记
学习ARM也有一定时间了,想想还是记点东西,要不以后就忘了.这是我的第一片,简简单单.但比较基础.1. ARM中一些常见英文缩写解释MSB:最高有效位:LSB:最低有效位:AHB:先进的高性能总线:V ...
- ARM学习笔记9——ARM汇编汇编语言中的伪指令
ARN汇编器支持ARM伪指令,这些伪指令在汇编阶段被翻译成ARM或Thumb指令.ARM伪指令包含ADR.ADRL.MOV32和LDR.一.ADR伪指令 1.作用 ADR是小范围地址读取伪指令,基于P ...
- ARM学习笔记13——LED驱动程序设计
首先我们要根据开发板原理图得到控制LED灯的引脚是哪个,我们现在以LED1为例,我们已经知道LED1由S5PV210的GPC1_3控制,因此我们按如下步骤进行: 第一步是配制S5PV210的GPC1_ ...
- ARM学习笔记11——GNU ARM汇编程序设计
GNU ARM汇编程序设计中,每行的语法格式如下: [<label>:] [<instruction | directive | pseudo-instruction>] @c ...
- ARM学习笔记6——程序状态寄存器访问指令
这两条指令结合,可用于对CPSR或SPSR进行读/写操作. 当需要保存或修改当前模式下CPSR或SPSR的内容时,首先必须将这些内容传递到通用寄存器中 1.MRS指令(Move to Register ...
- ARM学习笔记1——Arm寄存器与模式的关系
ARM微处理器上有37个32位的寄存器,其中有6个状态寄存器(一个CPSR,5个SPSR),其它31个为通用寄存器.在ARM的不同模式下,可以访问的物理寄存器是不同,如下图所示: 从图中可知,用户模式 ...
- nor flash与nand flash启动的简单比较--APPLE的ARM学习笔记一
2010-10-08 22:26:00 A,nor flash与nand flash的一些区别 1)接口区别: NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来. NAND Fla ...
- 【Python学习笔记四】获取html内容之后,如何提取信息:使用正则表达式筛选
在能够获取到网页内容之后,发现内容很多,那么下一步要做信息的筛选,就和之前的筛选图片那样 而在python中可以通过正则表达式去筛选自己想要的数据 1.首先分析页面内容信息,确定正则表达式.例如想获取 ...
随机推荐
- 引用传递&值传递
下面的程序阐述了值传递与应用传递的区别. package com.liaojianya.chapter1; /** * This program demonstrates the use of arr ...
- C++类继承内存布局(一)
转自:http://blog.csdn.net/jiangyi711/article/details/4890889# 一 类布局 不同的继承方式将导致不同的内存布局 1)C结构 C++基于C,所以C ...
- 九度OJ 1084 整数拆分
题目地址:http://ac.jobdu.com/problem.php?pid=1084 题目描述: 一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 ...
- (转 部分修改) IOS 手势密码(简单版)
// // Created by wangtouwang on 15/4/7. // Copyright (c) 2015年 wangtouwang. All rights reserved. // ...
- <汇编语言系列>计算机硬件系统与汇编
寒假时,有幸拜读了卡内基-梅隆大学(CMU)的Randal E.Bryant 和 David R.O'Hallaron的名著——深入理解计算机系统(Computer System: A Program ...
- 青瓷qici - H5小游戏 抽奖机 3 效果设置
现在是万事俱备,只欠东风,好,我们一起动手,先来东风东. 烟花粒子效果 第一个来实现我们的烟花粒子效果,点击我们的粒子,按照下图方式配置. 注意此时我们已经加入了white.png作为粒子特效使用. ...
- js data日期初始化的5种方法new Date()
var objDate=new Date([arguments list]); 参数形式有以下5种: 1)new Date("month dd,yyyy hh:mm:ss"); 2 ...
- 如何处理ajax中嵌套一个ajax
在做项目的时候 遇到过第二次了 当我第二次去问'公子'的时候 被吐槽了 原来我以前遇到过 只是忘记了...他老人家竟然还记得... ajax由于他的异步特性 在第一次请求中的循环中嵌套第二个ajax会 ...
- 【转】ant命令总结
http://feiyeguohai.iteye.com/blog/1295922 ant命令总结 1 Ant是什么? Apache Ant 是一个基于 Java的生成工具. 生成工具在软件开发中用 ...
- 解决vsftpd 2.2.2读取目录列表失败的问题
该错误是由iptables的配置引起的,临时的解决方法是执行如下命令: [root@localhost soft]# modprobe ip_nat_ftp 再次登陆列表正常啦! 但当你重新启动服务器 ...