首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2013-01-26 
有没有什么指令能直接把某一位的二进制拿出来呢?例如100110我要第 4位 即是 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被版主删除

热点排行