ARM学习笔记8——通用寄存器和存储器内容交换指令和软中断指令
2014-01-25 14:06
302 查看
交换指令将一个存储单元内容与制定的寄存器内容相交换,交换指令为进程间同步提供了一种方便的解决途径。该指令产生一堆原子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
一、通用寄存器和存储器字数据交换指令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
相关文章推荐
- [国嵌笔记][025][ARM指令分类学习]
- ARM指令---学习笔记
- arm学习笔记四(arm伪指令)
- ARM学习笔记(九)--指令基本格式
- ARM学习笔记7——乘法指令
- ARM学习笔记4——加载存储指令
- ARM学习笔记6——程序状态寄存器访问指令
- ARM汇编指令学习笔记(一、二)【晚上BOOTLOAD了,速度】
- Linux学习笔记——如何使用echo指令向文件写入内容
- ARM学习笔记2——分支跳转指令
- ARM汇编指令学习笔记(一)【为明天BOOTLOADER学习准备】
- arm 汇编学习常用指令伪指令笔记汇总
- ARM汇编伪指令学习笔记
- ARM学习笔记(二)——ARM数据处理指令、加载\存储指令
- ARM学习笔记(六)--ARM指令的预取和自修改代码
- 嵌入式学习笔记--关于ARM中SWP指令的执行顺序问题【待验证】
- ARM学习笔记3——数据处理指令
- JSP学习笔记(七十五):使用HttpClient远程抓取网页内容
- 路由交换学习笔记05
- 王爽《汇编语言》(第二版) 学习笔记 (第五章 [BX]和loop指令 )