- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对这两个指令有点困惑。首先让我们丢弃扫描值为 0 和 undefined/bsr 或 bitsize/lzcnt 结果时的特殊情况 - 这种差异很明显,而不是我的问题的一部分。
让我们取二进制值 0001 1111 1111 1111 1111 1111 1111 1111
根据英特尔的规范,lzcnt
的结果是 3
根据英特尔的规范,bsr
的结果是 28lzcnt
计数,bsr
返回距位 0(即 lsb)的索引或距离。
两个指令怎么可能相同,怎么可能 lzcnt
被模拟为 bsr
如果 CPU 上没有可用的 BMI?或者在 bsr
的情况下是位 0 msb?英特尔规范中的两个“代码操作”也不同,一个从左边开始计数或索引,另一个从右边开始。
也许有人可以对此有所了解,没有 BMI/lzcnt
我就没有 CPU测试是否回退到 bsr
的指令使用相同的结果(因为扫描值 0 的特殊情况永远不会发生)。
最佳答案
LZCNT
给出前导零位的数量。 BSR
给出最高有效 1 位的位索引。因此,对于非零情况,它们有效地执行相同的操作,只是结果的解释不同。因此,您只需减去 BSR
结果来自 31 以获得与 LZCNT
相同的行为,即 LZCNT == (31 - BSR)
.
关于assembly - 关于 bsr 和 lzcnt 的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25683690/
我对这两个指令有点困惑。首先让我们丢弃扫描值为 0 和 undefined/bsr 或 bitsize/lzcnt 结果时的特殊情况 - 这种差异很明显,而不是我的问题的一部分。 让我们取二进制值 0
我正在分析一些 x86 二进制代码的一些“时序 channel ”。我发布了一个问题来理解 bsf/bsr操作码。 所以从高层次上讲,这两个操作码可以被建模为一个“循环”,它计算给定操作数的前导零和尾
我是一名优秀的程序员,十分优秀!