ARM信号量操作指令
来源:互联网 发布:c语言中删除文件 编辑:程序博客网 时间:2024/05/19 13:26
信号量操作指令
一、信号量用于进程间的同步和互斥。对信号量的操作通常是一个原子操作,即在一条指令中,完成信号量的读取和修改操作,而不能被中断。ARM中提供了两条指令完成信号量的操作(ARM v6架构之前的):
SWP(交换指令)
SWP{<cond>} Rd, Rm, [Rn]
用于将一个内存单元(内存单元地址存放在寄存器Rn中)的内容读取到一个寄存器Rd,同时将另一个寄存器Rm的内容写入到该内存单元中。当Rd,Rm为同一个寄存器是,交换该寄存器和内存单元的内容。
SWPB用于将一个内存单元(内存单元地址存放在寄存器Rn中)的内容读取到一个寄存器Rd,寄存器Rd的高24位设置为0,同时将另一个寄存器Rm的底8位数值写入到该内存单元中。当Rd,Rm为同一个寄存器是,交换该寄存器底8位和内存单元的内容。
二、ARM v6用ldrex和strex实现信号量操作,而不是SWP(交换指令)。
Loadand store exclusive //装载和存储专用指令
LDREX{<cond>} Rd, [Rn]
从Rn保存的地址中装载数据到Rd,并设置内存监视器(monitor),从内存中读取数据放入到寄存器中。
STREX{<cond>} Rd, Rm, [Rn]
Rd,保存存储状态的返回值,内存跟新成功,返回0;更新内存失败,返回1.
Rm,是需要保存到内存的值
Rn,要操作的内存地址
0 0
- ARM信号量操作指令
- arm指令中的伪操作
- GNU ARM指令伪操作
- 几个ARM指令操作的汇编实现
- ARM伪指令和伪操作
- ARM指令集中的移位操作
- ARM指令集的移位操作
- ARM基础 七、ARM伪操作和伪指令
- ARM汇编语言(4) 指令、伪操作、伪指令学习
- ARM汇编常用指令空操作NOP指令
- arm指令
- ARM指令
- arm 指令
- ARM指令
- arm指令
- arm指令
- arm指令
- ARM指令
- 复数的计算
- 给程序加上声音(迷宫游戏)多线程
- [BZOJ3506][BZOJ1552] [Cqoi2014]排序机械臂
- iOS开发--CocoaPods pod install/pod update更新慢的问题
- Fragment放置后台很久(Home键退出很长时间),返回时出现Fragment重叠解决方案
- ARM信号量操作指令
- ListActivity
- swift学习---长句部分五(第一次计划看一本完整的英文资料,你是最棒的,加油)
- fastJson使用
- hdu3652:B-number
- 黑马程序员:论反射的正确使用以及应用范围2·个人感悟 反射有啥用?
- Longest Common Prefix
- 网站(Web)压测工具Webbench源码分析
- 【Java.NIO】NIO的长连接及NIO的内存泄漏