关于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编译平台
...全文
198 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
竞天问 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)

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧