找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 755|回复: 2

cmpxchg指令的一些疑惑

[复制链接]

40

主题

39

回帖

338

积分

至尊会员

积分
338

至尊会员

发表于 2024-5-18 09:05:49 来自手机 | 显示全部楼层 |阅读模式
指令 cmpchg [g], r0 , r1
如果在修改过程中,其它线程也把内存位置g的值给改了,只不过改来改去还是改回内存g中原来的值了,这种情况下cmpxchg指令能分析出来嘛

416

主题

315

回帖

3286

积分

管理员

积分
3286
发表于 2024-5-18 11:34:54 | 显示全部楼层
分不出来。
CMPXCHG指令的操作不是原子的。即使你改了[g],也不见得是你改的,也许是别的线程改的。
所以你必须加 lock 前缀。

40

主题

39

回帖

338

积分

至尊会员

积分
338

至尊会员

 楼主| 发表于 2024-5-18 13:40:49 | 显示全部楼层
站长 发表于 2024-5-18 11:34
分不出来。
CMPXCHG指令的操作不是原子的。即使你改了[g],也不见得是你改的,也许是别的线程改的。
所以你 ...

明白了,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2024-12-22 02:52 , Processed in 0.217903 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表