当前位置:  开发笔记 > 小程序 > 正文

x86 128位原子操作

如何解决《x86128位原子操作》经验,为你挑选了1个好方法。

你将如何在x86中实现128位原子操作?

英特尔系统编程指南,第1部分,8.1锁定原子操作指定保证16位,32位和64位原子操作.那么,你能用2个带有LOCK前缀的64位操作来实现128位原子操作吗?就像是...

LOCK mov 64bits->addr
LOCK mov 64bits->addr+64bits

显然,SSE具有128位XMM寄存器.你能用这些寄存器进行128位比较和交换吗?



1> bkausbk..:

LOCK前缀可以不与组合使用MOV指令.

LOCK前缀只能作为以下指令前缀,并且只能作为目标操作数是内存操作数的指令形式:ADD,ADC,AND,BTC,BTR,BTS,CMPXCHG,CMPXCH8B,DEC,INC,NEG, NOT,OR,SBB,SUB,XOR,XADD和XCHG.英特尔指令集参考

这样做会产生无效的操作码异常.这LOCK CMPXCHG16B是唯一的方法.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有