1

试图用一些汇编代码帮助一个朋友,但我遇到了一个小问题。

我正在尝试弄清楚如何循环遍历一个 8 位二进制字并检查特定位的值。我需要检查位 1、3、5 和 7 以查看它们是否为 1。

IE

int count = 1; 
int bitAdd = 0;
foreach (var bit in word) {
    if ((count = 1 && bit = 1) || (count = 3 && bit = 1) || (count = 5 && bit = 1) || (count = 7 && bit = 1)) {
      bitAdd += 1;
    }
    count += 1;
}

非常感谢您的帮助。

//Edit 抱歉,pusdo 代码有点模棱两可。试图让它更简洁一点。

4

1 回答 1

1

我认为 BTST 指令在这里对你有用。

http://68k.hax.com/BTST

例如:

btst #5, d0

将检查是否设置了 d0 值中的第 5 位。

(这适用于 68000,我不太确定 6800,谷歌搜索告诉我可能使用 BITA 或 BITB 指令:http ://www.textfiles.com/programming/CARDS/6800 )

于 2010-05-09T11:03:45.727 回答