读书人

有没有一个授命就能判断从某个内存开始

发布时间: 2013-01-01 14:04:19 作者: rapoo

有没有一个指令就能判断从某个内存开始第N位是0还是1
本帖最后由 zjcqoo 于 2012-10-26 16:32:50 编辑 想用汇编写一个类似C++里的bitset的功能,检测mem开始第N比特的状态。找到一个bt指令,但长度N有限制,只能16以内。所以必须先把X = N/8 (SHR N,3), Y = N % 8 (AND N,7),再bt [mem+X], Y。

感觉很累赘。能不能一个指令搞定的?
[解决办法]
看了下 bt 指令的说明,没有这样的限制吧:
The offset operand then selects a bit position within the range -2^31 to 2^31 - 1 for a register offset and 0 to 31 for an immediate offs.
要范围大,用寄存器来指定偏移而非立即数。

读书人网 >汇编语言

热点推荐