关于BSF和BSR

竞天问 河北工业大学 2011-09-11 10:23:22
在我的电脑上执行如下代码:
void main()
{
int a = 8;
_asm
{
mov eax , a;
bsr ebx, eax;
mov a, ebx;
}

cout<<a<<endl;
}

输出是3;但是如果把bsr改成bsf输出还是3,这是什么情况?
Win7x64,VS2010 Win32编译平台
...全文
112 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
竞天问 2011-09-12
OK,我明白了,谢谢两位!
回复
fox000002 2011-09-12
扫描是一个向左一个向右

但是位的编号都是从低位起
回复
竞天问 2011-09-12
[Quote=引用 1 楼 fox000002 的回复:]

计数都是从低位计数的

8 对应为 1 的只有 3 这个位置 (00001000B)
[/Quote]
那bsf和bsr这两个指令有什么区别,不是一个从前计数一个从后计数吗?
回复
fox000002 2011-09-11
计数都是从低位计数的

8 对应为 1 的只有 3 这个位置 (00001000B)
回复
相关推荐
发帖
其它技术问题
创建于2007-09-28

3849

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2011-09-11 10:23
社区公告
暂无公告