当前位置: 代码迷 >> 汇编语言 >> 有没有什么指令能直接把某一位的二进制拿出来呢?解决方案
  详细解决方案

有没有什么指令能直接把某一位的二进制拿出来呢?解决方案

热度:1438   发布时间:2013-02-26 00:00:00.0
有没有什么指令能直接把某一位的二进制拿出来呢?
例如
100110
我要第 4位 即是 0

有没有这样的一条指令呢?
我看了看手册,里面只有 BT 比较适合
但是都是把它拿到CF去.
我还有使用ADC之类的指令才能拿出来.有没有其他更好的指令呢?
------解决方案--------------------------------------------------------
你想把位拿到哪里去?bt很适合鸟
------解决方案--------------------------------------------------------
可以用TEST+SETcc指令。
xor ecx,ecx
test eax,8  ; 测试bit4
setnz cl    ; 结果在cl/cx/ecx中


------解决方案--------------------------------------------------------
你这样要获得确切的某一位也是要三条指令的,而且BT+ADC更慢。

------解决方案--------------------------------------------------------
汇编版区好冷清啊,来学习了
------解决方案--------------------------------------------------------
用经典指令做也可以的额,如下:
mov al,00100110b
and al,00001000b
shr al,3
没必要用复杂的指令.
这里就只用了一个寄存器.够节约寄存器的了.
------解决方案--------------------------------------------------------
该回复于2012-10-18 08:37:18被版主删除

------解决方案--------------------------------------------------------
该回复于2012-10-18 08:37:18被版主删除
  相关解决方案