BSF操作码不起作用
|
我使用的是Visual Studio 2010 Professional,我只是在调试模式下检查BSF无法正常工作,所以尝试了很多组合,但没有一种有效!
__asm
{
mov ebx, 0ffffffh;
bsf ecx, ebx;
};
上面的代码至少给了我一些结果,但是我在ecx寄存器上得到了0(我使用的是64位win7,应用程序是32位)
英特尔对BSF的评价如下:
搜索源操作数(第二个
最低有效集的操作数)
位(1位)。如果最低有效1
找到位,存储其位索引
在目标操作数中(第一个
操作数)。源操作数可以是
注册或存储位置;的
目标操作数是一个寄存器。的
位索引是相对于的无符号偏移
源操作数的位0。如果
源操作数的内容为0,
目标操作数的内容
未定义。
有人有什么想法吗?谢谢你们...
没有找到相关结果
已邀请:
2 个回复
替秀宝
设置为0,因为值
中的最低有效(最低?)1位是位0。其二进制数是
。 换句话说,您看到的结果是正确的。 例如,如果要在
(二进制
)上进行尝试,则应该得到2。这是因为最低有效位在二进制数的最右位置:
痰嫉