我正在使用Visual Studio 2010專業版,而我只是在調試模式下檢查BSF不工作我試了很多組合,都沒有工作!BSF操作碼不起作用
__asm
{
mov ebx, 0ffffffh;
bsf ecx, ebx;
};
上面的代碼,至少可以給我一些結果,但我在ECX寄存器得到0(我使用的是64位的win7和應用是32位)
下面是英特爾說,大約BSF:
搜索所述至少顯著組 位(1位)的源操作數(第二 操作數)。如果找到最低有效位1 ,則其位索引在目標操作數(第一個 操作數)中被存儲爲 。源操作數可以是一個 寄存器或一個存儲單元;目標操作數是 是一個寄存器。位索引 是來自源操作數的位0的 的無符號偏移量。如果源操作數的內容 爲0, ,則目標操作數 的內容未定義。
有人有什麼想法嗎?謝謝大家...
+1,部分是爲了一個正確的答案(我相信),但主要是爲了發明單詞「leastmost」... ;-) – 2011-04-15 13:51:22
你讀過這個問題嗎? – MCA 2011-04-15 14:39:20
@MCA:是的,我做到了。你在抱怨它說0xffffff中最右邊的1位是0位。我不確定你爲什麼抱怨,因爲這確實是正確的值。如果你想以不那麼呆板的方式告訴我你錯在哪裏,我很樂意重新審視答案。 – paxdiablo 2011-04-15 14:56:21