zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    “访问”美术馆
    加分二叉树
    有线电视网
    二叉苹果树
    鬼子进村
    遍历问题
    最大子树和
    FBI树
    求前序遍历
    JS如何实现点击页面内任意的链接均加参数跳转?
  • 原文地址:https://www.cnblogs.com/zjzsky/p/3533262.html
Copyright © 2011-2022 走看看