首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
编程技术
发新帖
1
0
[求助]程序开发中原子操作和汇编指令执行周期的关系,疑惑中
发表于: 2013-3-22 11:32
4722
[求助]程序开发中原子操作和汇编指令执行周期的关系,疑惑中
wxjgeorge
1
2013-3-22 11:32
4722
最近在看锁无关的线程同步,提到cmpxchg是原子操作,但是这个指令执行周期应该是2,同样像inc dec等好多指令在对内存操作时也是两个甚至多个时钟执行周期,也是原子操作吗?
多线程中使用对一个内存使用inc操作,能保证多线程同步吗?谢谢。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
收藏
・
1
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
3
)
天高
雪 币:
623
活跃值:
(40)
能力值:
( LV3,RANK:30 )
在线值:
发帖
3
回帖
166
粉丝
0
关注
私信
天高
2
楼
谁规定 cmpxchg 是原子的?
2013-3-22 11:35
0
ITSailor
雪 币:
4817
活跃值:
(23)
能力值:
( LV2,RANK:10 )
在线值:
发帖
1
回帖
206
粉丝
1
关注
私信
ITSailor
3
楼
任何指令都是原子的啊,肯定不会被中断的,跟指令周期没关系的吧
cmpxchg指令,只要是指令,肯定是原子操作,关键是如果没有这个指令,你可能需要多个简单的指令去完成这个功能,这才有可能被中断呢。
inc eax,是原子操作
但是如果这样操作内存
mov eax, [0x8000000]
inc eax
mov [0x8000000], eax
那么这个内存加一的操作就不是原子操作了,涉及三条指令,可能被中断。
如果你使用lock xadd,那就是一条指令完成这个内存加一的操作,就不会被中断了
对于lock,有详细解析的
http://bbs.pediy.com/showthread.php?t=84326
PS:我也就了解一些,说错了别介意,呵呵
2013-3-22 12:00
0
wxjgeorge
雪 币:
123
活跃值:
(95)
能力值:
( LV5,RANK:60 )
在线值:
发帖
30
回帖
140
粉丝
1
关注
私信
wxjgeorge
1
4
楼
谢了,没想到这么快就有人指点了。
2013-3-22 14:30
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
wxjgeorge
1
30
发帖
140
回帖
60
RANK
关注
私信
他的文章
[求助]如何开发类似PP助手之类的Windows环境下IPHONE管理软件
9146
[求助]CRC32内存检验出现问题,多次运行时出现不同结果,请帮忙看下错在哪了
3985
[求助]函数堆溢出保护
4262
[求助]StretchBlt在Dialog上显示图片出现无法多次显示的问题
3695
[求助]PEBundle脱壳后IAT修复出现无效指针,求指导
8731
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部