1
我上運行64位Windows 7,與2015年VS向相反的文檔__lzcnt返回31 - (#前導零的)
https://msdn.microsoft.com/en-us/library/bb384809.aspx
__lzcnt()將返回31 - (前導零計數)。
即 __lzcnt(2)= 1;
這是一個已知的錯誤嗎?或者我錯過了什麼?
我上運行64位Windows 7,與2015年VS向相反的文檔__lzcnt返回31 - (#前導零的)
https://msdn.microsoft.com/en-us/library/bb384809.aspx
__lzcnt()將返回31 - (前導零計數)。
即 __lzcnt(2)= 1;
這是一個已知的錯誤嗎?或者我錯過了什麼?
問題是這樣的:如果在不支持它的處理器上執行,lzcnt指令不會生成異常。相反,處理器將lzcnt編碼視爲BSR(位掃描反向),前面忽略F3前綴值。所以你的代碼在一些處理器上執行BSR,而在其他處理器上執行LZCNT。解決方案是在運行時確認處理器確實支持LZCNT指令。
我明白了。所以,我的結果與不支持LZCNT的處理器(
Jacko