我正在尋找一個函數,它提供了一個高層次的函數D在Intel x86上的atomic CAS接口。使用x86 CMPXCHG的D函數比較並交換
我知道我可以用內聯ASM來做到這一點(如果需要的話,我會的),但是我寧願只是從別人那裏抓取代碼。
我正在尋找一個函數,它提供了一個高層次的函數D在Intel x86上的atomic CAS接口。使用x86 CMPXCHG的D函數比較並交換
我知道我可以用內聯ASM來做到這一點(如果需要的話,我會的),但是我寧願只是從別人那裏抓取代碼。
從文檔:http://www.digitalmars.com/d/2.0/overview.html
內聯彙編
設備驅動程序,高性能 系統應用,嵌入式系統, 和專門的代碼有時需要 浸成彙編語言獲得 工作完成。雖然D實現是 不需要實現內聯 彙編程序,但它的定義和部分是 的語言。大多數彙編代碼需要 可以用它來處理,而不需要用於單獨的彙編程序或DLL的 。
很多d的實現也將 支持內部函數 類似於C中的支持 內在的I/O端口操作, 直接訪問專用浮 浮點運算等
所以你能理論直接使用CMPXCHG。
編輯
你可能想看看:http://www.dsource.org/projects/tango/browser/trunk/tango/core/Atomic.d?rev=4277
它確實需要一段時間來加載由於某種原因,但它使用的是CMPXCHG指令在內部,它應該是微不足道的爲了您的目的重新制作它。
我知道我可以做我的自我。我只是想知道如果我可以使用其他人使用過的東西。 – BCS 2009-03-05 19:58:22