交换指令将一个存储单元内容与制定的寄存器内容相交换,交换指令为进程间同步提供了一种方便的解决途径。该指令产生一堆原子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——通用寄存器和存储器内容交换指令和软中断指令的更多相关文章

  1. Android学习笔记(十九)——内容提供器

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整 ...

  2. arm学习笔记

    学习ARM也有一定时间了,想想还是记点东西,要不以后就忘了.这是我的第一片,简简单单.但比较基础.1. ARM中一些常见英文缩写解释MSB:最高有效位:LSB:最低有效位:AHB:先进的高性能总线:V ...

  3. ARM学习笔记9——ARM汇编汇编语言中的伪指令

    ARN汇编器支持ARM伪指令,这些伪指令在汇编阶段被翻译成ARM或Thumb指令.ARM伪指令包含ADR.ADRL.MOV32和LDR.一.ADR伪指令 1.作用 ADR是小范围地址读取伪指令,基于P ...

  4. ARM学习笔记13——LED驱动程序设计

    首先我们要根据开发板原理图得到控制LED灯的引脚是哪个,我们现在以LED1为例,我们已经知道LED1由S5PV210的GPC1_3控制,因此我们按如下步骤进行: 第一步是配制S5PV210的GPC1_ ...

  5. ARM学习笔记11——GNU ARM汇编程序设计

    GNU ARM汇编程序设计中,每行的语法格式如下: [<label>:] [<instruction | directive | pseudo-instruction>] @c ...

  6. ARM学习笔记6——程序状态寄存器访问指令

    这两条指令结合,可用于对CPSR或SPSR进行读/写操作. 当需要保存或修改当前模式下CPSR或SPSR的内容时,首先必须将这些内容传递到通用寄存器中 1.MRS指令(Move to Register ...

  7. ARM学习笔记1——Arm寄存器与模式的关系

    ARM微处理器上有37个32位的寄存器,其中有6个状态寄存器(一个CPSR,5个SPSR),其它31个为通用寄存器.在ARM的不同模式下,可以访问的物理寄存器是不同,如下图所示: 从图中可知,用户模式 ...

  8. nor flash与nand flash启动的简单比较--APPLE的ARM学习笔记一

    2010-10-08 22:26:00 A,nor flash与nand flash的一些区别 1)接口区别: NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来. NAND Fla ...

  9. 【Python学习笔记四】获取html内容之后,如何提取信息:使用正则表达式筛选

    在能够获取到网页内容之后,发现内容很多,那么下一步要做信息的筛选,就和之前的筛选图片那样 而在python中可以通过正则表达式去筛选自己想要的数据 1.首先分析页面内容信息,确定正则表达式.例如想获取 ...

随机推荐

  1. javaee学习-Cookie使用范例

    Java中的javax.servlet.http.Cookie类用于创建一个Cookie Cookie类的主要方法 No. 方法 类型 描述 1 Cookie(String name, String  ...

  2. HTML5中的Canvas

    1.Canvas标签的宽高一定要设置在标签上或者采用js添加属性,如果用css去设置的话,会把画布被拉伸,相当于将默认的画布拉伸到指定位置.默认为300px*100px; <canvas wid ...

  3. xml技术基础

    HTML语言缺点 :  1.标签规定好,用户不能自定义 2.标签显示样式和数据绑定在一起,数据不可复用           3.html标签没有任何含义 XML语言(Extensible Markup ...

  4. js获取get方式提交的参数返回json格式数据

    /** * 获取GET提交的参数 * @return JSON格式 * @author Terry */ function getArgs(){ var args = {}; var match = ...

  5. STM32学习内容和计划

    一.STM32学习内容(流程) 1.学习STM32开发流程 ①MDK使用.建立工程.调试等 ②库开发方法 2.学习STM32常用外设开发 ①GPIO ②中断 ③定时器 ④串口 ⑤CAN 3.学习STM ...

  6. 我终于忍不住喷一下某些书了,关于Java传引用的XX言论

    凡是说Java对象传的是引用,简直一派胡言,尤其误导我这种Java初学者,更严重的是以前用过C++的Java初学者. 我们都知道Java建立对象一般都是需要这样的格式: Object obj = ne ...

  7. Pentaho Data Integration (二) Spoon

    上一篇:Pentaho Data Integration笔记 (一):安装 介绍 Spoon Intoduction site: http://wiki.pentaho.com/display/EAI ...

  8. 菜鸟Android之路(上)

    自己为什么要学android 本人作为应届毕业生,自己进入社会前做过好多梦,可是呢,现实还是打败了无邪!!面对社会的压力和残酷的竞争力自己如何生成下去??我自己对自己说:第一步 先养活自己,才能走好以 ...

  9. Android之TextView组件学习

    一.基础学习 1.findViewById返回View类,该类是所有View组件的父类. 2.子类比父类拥有更多的属性和方法,不过子类找不到的话去父类找 3.marquee:华盖,跑马灯效果:orie ...

  10. Discuz!X3.1 全新安装图文教程

    http://www.discuz.net/thread-3456887-1-1.html